Memlord
chính thứcMáy chủ bộ nhớ MCP tự lưu trữ dành cho sử dụng cá nhân và nhóm
Bạn có thể làm gì với Memlord MCP?
- Lưu một bộ nhớ với loại và thẻ — Sử dụng
store_memoryđể lưu một sự kiện, sở thích, hướng dẫn, phản hồi, quyết định hoặc hiểu biết, tùy chọn đặt thời gian hết hạn. - Tìm kiếm bộ nhớ bằng truy xuất kết hợp — Yêu cầu
retrieve_memorytìm các bộ nhớ liên quan bằng cách kết hợp tìm kiếm toàn văn BM25 và tìm kiếm ngữ nghĩa vector, trả về các đoạn trích ngắn gọn. - Nhớ lại bộ nhớ theo biểu thức thời gian — Sử dụng
recall_memoryđể tìm các bộ nhớ khớp với truy vấn thời gian bằng ngôn ngữ tự nhiên như "tuần trước" hoặc "hôm qua." - Duyệt và lọc tất cả bộ nhớ — Gọi
list_memoriesvới bộ lọc loại và thẻ để phân trang qua các bộ nhớ đã lưu. - Hợp nhất bộ nhớ thông qua dreaming — Chạy lời nhắc
dreamđể trợ lý xem xét các ứng viêndream_report, hợp nhất các bản sao gần giống thành các hiểu biết, và loại bỏ các bộ nhớ bị thay thế một cách không phá hủy.
Tài liệu
Máy chủ bộ nhớ MCP tự lưu trữ cho cá nhân và nhóm
Bắt đầu nhanh • Cách thức hoạt động • Công cụ MCP • Cấu hình • Yêu cầu hệ thống • Giấy phép
✨ Tính năng
- 🔍 Tìm kiếm lai — BM25 (toàn văn) + vector KNN (pgvector) kết hợp qua Reciprocal Rank Fusion
- 📂 Đa người dùng — mỗi người dùng chỉ thấy ký ức của riêng mình; không gian làm việc cho kiến thức nhóm chia sẻ
- 🛠️ 11 công cụ MCP — lưu trữ, truy xuất, gợi nhớ, liệt kê, tìm kiếm theo thẻ, lấy, cập nhật, xóa, di chuyển, liệt kê không gian làm việc, báo cáo mơ
- 💤 Mơ — một lượt củng cố có hướng dẫn (prompt MCP
dream+ công cụdream_report): tìm các ký ức gần trùng lặp và xung đột, hợp nhất chúng thành thông tin chi tiết một cách không phá hủy, do LLM khách điều khiển - 🌐 Giao diện Web — duyệt, tìm kiếm, chỉnh sửa và xóa ký ức trong trình duyệt; xuất/nhập JSON
- 🔒 OAuth 2.1 — máy chủ ủy quyền trong tiến trình đầy đủ, luôn được bật
- 🐘 PostgreSQL — pgvector cho embedding, tsvector cho tìm kiếm toàn văn
- 📊 Tiết lộ tiến triển — tìm kiếm trả về đoạn trích ngắn gọn theo mặc định; chỉ gọi
get_memory(name)cho những gì bạn cần, giảm sử dụng token - 🔁 Loại bỏ trùng lặp — tự động phát hiện ký ức gần giống hệt trước khi lưu, ngăn tích tụ nhiễu
🆚 So sánh Memlord
| Memlord | OpenMemory | mcp-memory-service | basic-memory | |
|---|---|---|---|---|
| Tìm kiếm | BM25 + vector + RRF | Chỉ vector (Qdrant) | BM25 + vector + RRF | BM25 + vector |
| Embedding | ONNX cục bộ, không cần cấu hình | OpenAI mặc định; Ollama tùy chọn | ONNX cục bộ, không cần cấu hình | FastEmbed cục bộ |
| Lưu trữ | PostgreSQL + pgvector | PostgreSQL + Qdrant | SQLite-vec / Cloudflare Vectorize | SQLite + tệp Markdown |
| Đa người dùng | ✅ | ❌ thực tế là đơn người dùng | ⚠️ phạm vi agent-ID, không cô lập | ❌ |
| Không gian làm việc | ✅ chia sẻ + cá nhân, liên kết mời | ⚠️ Không gian tên "Apps" | ⚠️ thẻ + conversation_id | ✅ cờ mỗi dự án |
| Xác thực | ✅ OAuth 2.1 | ❌ không có (tự lưu trữ) | ✅ OAuth 2.0 + PKCE | ❌ |
| Giao diện Web | ✅ duyệt, chỉnh sửa, xuất | ✅ Bảng điều khiển Next.js | ✅ Giao diện phong phú, trực quan hóa đồ thị, điểm chất lượng | ❌ cục bộ; chỉ đám mây |
| Công cụ MCP | 11 | 5 | 15+ | ~20 |
| Tự lưu trữ | ✅ tiến trình đơn | ✅ Docker (3 container) | ✅ | ✅ |
| Đầu vào bộ nhớ | Thủ công (lưu trữ rõ ràng) | Tự động trích xuất bởi LLM | Thủ công | Thủ công (ghi chú Markdown) |
| Loại bộ nhớ | sự kiện / sở thích / hướng dẫn / phản hồi / quyết định / thông tin chi tiết | sự kiện tự động trích xuất | — | quan sát + liên kết wiki |
| Tìm kiếm theo thời gian | ✅ ngày tháng ngôn ngữ tự nhiên | ⚠️ Chỉ REST, không có trong công cụ MCP | — | ✅ recent_activity |
| Hiệu quả token | ✅ tiết lộ tiến triển | ❌ | — | ✅ duyệt build_context |
| Nhập / Xuất | ✅ JSON | ✅ ZIP (JSON + JSONL) | — | ✅ Markdown (con người đọc được) |
| Giấy phép | AGPL-3.0 / Thương mại | Apache 2.0 | Apache 2.0 | AGPL-3.0 |
Điểm mạnh thực sự của đối thủ:
- OpenMemory — tự động trích xuất ký ức từ văn bản hội thoại thô; không cần quyết định lưu gì thủ công; nhập/xuất tốt
- mcp-memory-service — giao diện web phong phú hơn (trực quan hóa đồ thị, chấm điểm chất lượng, 8 tab); giấy phép dễ dãi hơn (Apache 2.0); nhiều tùy chọn truyền tải (stdio, SSE, HTTP)
- basic-memory — ký ức là tệp Markdown con người đọc được, bạn có thể chỉnh sửa, kiểm soát phiên bản và đọc mà không cần máy chủ; liên kết thực thể kiểu wiki tạo thành đồ thị tri thức cục bộ; ~20 công cụ MCP
Khi nào chọn Memlord:
- Bạn muốn embedding cục bộ không cần cấu hình — mô hình ONNX đi kèm máy chủ, không cần Ollama hoặc API bên ngoài
- Bạn chạy máy chủ nhóm đa người dùng với xác thực OAuth 2.1 chuẩn và không gian làm việc dựa trên lời mời
- Bạn muốn cơ sở dữ liệu cấp sản xuất (PostgreSQL) có khả năng mở rộng vượt ra ngoài SQLite của một máy đơn
- Bạn quản lý ký ức một cách rõ ràng — lưu chính xác những gì quan trọng, được đánh kiểu và gắn thẻ, không phải mọi thứ LLM quyết định trích xuất
- Bạn muốn giao diện Web tự lưu trữ với CRUD đầy đủ và xuất JSON, không cần đăng ký đám mây
🚀 Bắt đầu nhanh
🐳 Docker
cp .env.example .env
docker compose up
Máy chủ HTTP (đa người dùng, giao diện Web, OAuth)
# Install dependencies
uv sync --dev
# Download ONNX model (~23 MB)
uv run python scripts/download_model.py
# Run migrations
alembic upgrade head
# Start the server
memlord
Mở http://localhost:8000 cho giao diện Web. Điểm cuối MCP ở /mcp.
🔍 Cách thức hoạt động
Mỗi yêu cầu tìm kiếm chạy BM25 và vector KNN song song, sau đó hợp nhất kết quả qua Reciprocal Rank Fusion:
flowchart TD
Q([query]) --> BM25["BM25\nsearch_vector @@ websearch_to_tsquery"]
Q --> EMB["ONNX embed\nparaphrase-multilingual-MiniLM-L12-v2 · 384d · local"]
EMB --> KNN["KNN\nembedding <=> query_vector\ncosine distance"]
BM25 --> RRF["RRF fusion\nscore = 1/(k+rank_bm25) + 1/(k+rank_vec)\nk=60"]
KNN --> RRF
RRF --> R([top-N results])
⚙️ Cấu hình
Tất cả cài đặt sử dụng tiền tố MEMLORD_. Xem .env.example để có danh sách đầy đủ.
| Biến | Mặc định | Mô tả |
|---|---|---|
MEMLORD_DB_URL | postgresql+asyncpg://postgres:postgres@localhost/memlord | URL kết nối PostgreSQL |
MEMLORD_PORT | 8000 | Cổng máy chủ |
MEMLORD_BASE_URL | http://localhost:8000 | URL công khai cho OAuth (chế độ HTTP) |
MEMLORD_OAUTH_JWT_SECRET | memlord-dev-secret-please-change | Bí mật ký JWT (chế độ HTTP) |
Đặt MEMLORD_BASE_URL thành URL công khai của bạn và thay đổi MEMLORD_OAUTH_JWT_SECRET trước khi triển khai.
🛠️ Công cụ MCP
| Công cụ | Mô tả |
|---|---|
store_memory | Lưu một ký ức (lũy đẳng theo nội dung); báo lỗi nếu gần trùng lặp; expires_at tùy chọn |
retrieve_memory | Tìm kiếm lai ngữ nghĩa + toàn văn; trả về đoạn trích theo mặc định |
recall_memory | Tìm kiếm theo biểu thức thời gian ngôn ngữ tự nhiên; trả về đoạn trích theo mặc định |
list_memories | Danh sách phân trang với bộ lọc loại/thẻ |
search_by_tag | Tìm kiếm thẻ AND/OR |
get_memory | Lấy một ký ức đơn theo tên với nội dung đầy đủ (bao gồm cả đã hết hạn) |
update_memory | Cập nhật nội dung, loại, thẻ, siêu dữ liệu hoặc hết hạn theo tên (và tùy chọn đổi tên) |
delete_memory | Xóa theo tên |
move_memory | Di chuyển một ký ức sang không gian làm việc khác |
list_workspaces | Liệt kê các không gian làm việc bạn là thành viên (bao gồm cá nhân) |
dream_report | Ứng viên củng cố chỉ đọc: các cặp ký ức tương tự, ký ức đã hết hạn và sắp hết hạn |
Prompt MCP dream hướng dẫn LLM khách qua một lượt củng cố đầy đủ trên đầu ra dream_report: phân loại các cặp tương tự (trùng lặp / bổ sung / xung đột), hợp nhất thành ký ức insight, loại bỏ những cái bị thay thế qua expires_at — không bao giờ phá hủy.
Quản lý không gian làm việc (tạo, mời, tham gia, rời) được xử lý qua giao diện Web.
💻 Yêu cầu hệ thống
- Python 3.12
- PostgreSQL ≥ 15 với tiện ích mở rộng pgvector
- uv — Trình quản lý gói Python
👨💻 Phát triển
pyright src/ # type check
ruff format . # format
pytest # run tests
alembic-autogen-check # verify migrations are up to date
📄 Giấy phép
Memlord được cấp phép kép:
- AGPL-3.0 — miễn phí cho sử dụng mã nguồn mở. Nếu bạn chạy phiên bản đã sửa đổi như một dịch vụ mạng, bạn phải công bố mã nguồn của mình.
- Giấy phép Thương mại — cho triển khai độc quyền hoặc mã nguồn đóng. Liên hệ sergey@memlord.com hoặc dmitry@memlord.com để mua.