Lưu trữ, nén và truy xuất bộ nhớ dài hạn với khả năng nén ngữ nghĩa không mất dữ liệu. Nay hỗ trợ đa phương thức bao gồm văn bản, hình ảnh, âm thanh & video.
Hoạt động với bất kỳ nền tảng AI nào hỗ trợ MCP (bộ nhớ văn bản) hoặc tích hợp Python (đa phương thức đầy đủ)
|
Claude Desktop |
Cursor |
LM Studio |
Cherry Studio |
Gói PyPI |
+ Bất kỳ MCP Client |
🇨🇳 中文 •
🇯🇵 日本語 •
🇰🇷 한국어 •
🇪🇸 Español •
🇫🇷 Français •
🇩🇪 Deutsch •
🇧🇷 Português
🇷🇺 Русский •
🇸🇦 العربية •
🇮🇹 Italiano •
🇻🇳 Tiếng Việt •
🇹🇷 Türkçe •
🇬🇧 English
🚀 Bắt Đầu Nhanh • 🌟 Tổng Quan • 📦 Cài Đặt • 🔌 MCP Server • 📊 Tái Tạo • 📝 Trích Dẫn
- [05/21/2026] 📦 Gói
simplememthống nhất — một lần import, tự động định tuyến! SimpleMem, Omni-SimpleMem và EvolveMem nay nằm trong một gói duy nhất.from simplemem import SimpleMemtự động chọn backend văn bản hoặc đa phương thức dựa trên phương thức đầu tiên bạn gọi, vàsimplemem.optimize(...)khai thác vòng lặp tự tiến hóa của EvolveMem. Cài đặt chỉ một bước vớipip install -e .. - [05/14/2026] 🧬 EvolveMem (v3.0) — Bộ Nhớ Tự Tiến Hóa qua AutoResearch! Hạ tầng truy xuất nay tự tiến hóa thông qua chẩn đoán vòng kín do LLM điều khiển. Trên LoCoMo, EvolveMem vượt trội hơn baseline mạnh nhất +25.7% tương đối; trên MemBench, +18.9% tương đối. Hệ thống khám phá các chiều truy xuất hoàn toàn mới không có trong thiết kế ban đầu. Xem EvolveMem →
- [04/02/2026] 🧠 Omni-SimpleMem (v2.0) — Bộ Nhớ Đa Phương Thức Đã Ra Đời! SimpleMem nay hỗ trợ bộ nhớ văn bản, hình ảnh, âm thanh & video. Đạt SOTA mới trên LoCoMo (F1=0.613, +47%) và Mem-Gallery (F1=0.810, +51%) so với kết quả tốt nhất trước đây. Xem Omni-SimpleMem →
- [02/09/2026] 🚀 Bộ Nhớ Xuyên Phiên — Vượt trội hơn Claude-Mem tới 64%! Xem Tài Liệu Bộ Nhớ Xuyên Phiên →
- [01/20/2026] 📦 SimpleMem nay có mặt trên PyPI! Cài đặt qua
pip install simplemem. Xem Hướng Dẫn Sử Dụng Gói → - [01/14/2026] 🎉 SimpleMem MCP Server đã HOẠT ĐỘNG! Được lưu trữ trên đám mây tại mcp.simplemem.cloud. Xem Tài Liệu MCP →
- [01/05/2026] Bài báo SimpleMem đã được công bố trên arXiv!
- 🚀 Bắt Đầu Nhanh
- 🌟 Tổng Quan
- 📦 Cài Đặt
- 🐳 Docker
- 🔌 MCP Server
- 📊 Tái Tạo Kết Quả Bài Báo
- 🗺️ Lộ Trình
- 📝 Trích Dẫn
Ở cấp độ tổng quan, SimpleMem hoạt động như một hệ thống bộ nhớ dài hạn cho các tác nhân dựa trên LLM. Quy trình bao gồm ba bước đơn giản:
- Lưu trữ thông tin – Các đoạn hội thoại hoặc sự kiện được xử lý và chuyển đổi thành các đơn vị bộ nhớ có cấu trúc, nguyên tử.
- Lập chỉ mục bộ nhớ – Các bộ nhớ đã lưu được tổ chức bằng nhúng ngữ nghĩa và siêu dữ liệu có cấu trúc.
- Truy xuất bộ nhớ liên quan – Khi có một truy vấn, SimpleMem lấy ra thông tin được lưu trữ liên quan nhất dựa trên ý nghĩa thay vì từ khóa.
Thiết kế này cho phép các tác nhân LLM duy trì ngữ cảnh, gọi lại thông tin quá khứ một cách hiệu quả và tránh xử lý lặp đi lặp lại lịch sử dư thừa.
SimpleMem được đóng gói dưới dạng một gói simplemem duy nhất. Mặc định mode="auto" tự động phát hiện backend cần sử dụng dựa trên những gì bạn gọi — không cần cấu hình thủ công:
from simplemem import SimpleMem
mem = SimpleMem() # mode="auto" — backend chosen by first callPhương thức đầu tiên bạn gọi sẽ quyết định backend:
| Lệnh gọi đầu tiên | Backend được chọn | Lý do |
|---|---|---|
add_dialogue() |
Văn bản (SimpleMem) | API dựa trên hội thoại → chế độ văn bản |
add_text() / add_image() / add_audio() / add_video() |
Omni (Omni-SimpleMem) | API đa phương thức → chế độ omni |
|
📝 Auto → Văn bản (đầu vào thuần văn bản) from simplemem import SimpleMem
mem = SimpleMem() # auto mode
# add_dialogue() → text backend auto-selected
mem.add_dialogue(
"Alice",
"Bob, let's meet at Starbucks tomorrow at 2pm",
"2025-11-15T14:30:00",
)
mem.add_dialogue(
"Bob",
"Sure, I'll bring the market analysis report",
"2025-11-15T14:31:00",
)
mem.finalize()
answer = mem.ask("When and where will Alice and Bob meet?")
# → "16 November 2025 at 2:00 PM at Starbucks" |
🧠 Auto → Omni (đầu vào đa phương thức) from simplemem import SimpleMem
mem = SimpleMem() # auto mode
# add_image() → omni backend auto-selected
mem.add_text(
"User loves hiking in the Rocky Mountains.",
tags=["session_id:D1"],
)
mem.add_image("photo.jpg", tags=["session_id:D1"])
mem.add_audio("voice_note.wav", tags=["session_id:D1"])
result = mem.query("What does the user enjoy?", top_k=5)
for item in result.items:
print(item["summary"])
mem.close() |
💡 Mẹo: Chế độ Auto chọn backend nhẹ nhất phù hợp với dữ liệu của bạn. Bạn vẫn có thể dùng
mode="text"hoặcmode="omni"một cách tường minh nếu muốn.
Tinh chỉnh các siêu tham số truy xuất ngoại tuyến trên tập dev của bạn, sau đó triển khai Config thu được để suy luận. Đây là một lớp bọc mỏng xung quanh vòng lặp tự tiến hóa của EvolveMem:
import simplemem
from simplemem import SimpleMem, load_config
# mem is a finalized SimpleMem instance with memories already built
dev_questions = [
("When is the meeting?", "2pm tomorrow at Starbucks"),
("What should Bob prepare?", "market analysis report"),
]
config = simplemem.optimize(mem, dev_questions, max_rounds=3)
config.save("my_config.json")
# Later, deploy with the optimized config
config = load_config("my_config.json")
mem = SimpleMem(config=config)EvolveMem chạy một chu kỳ Đánh Giá → Chẩn Đoán → Đề Xuất → Bảo Vệ do LLM điều khiển trên các câu hỏi dev của bạn, điều chỉnh các cờ truy xuất toàn cục (top_k, chế độ hợp nhất, xác minh câu trả lời, số vòng phản ánh, ...). Để xem phiên bản độc lập đầy đủ với các bộ điều hợp benchmark và ghi đè theo từng danh mục, xem
EvolveMem/.
Để xử lý hội thoại quy mô lớn, bật chế độ song song:
from simplemem import create
mem = create(
mode="text",
clear_db=True,
enable_parallel_processing=True, # ⚡ Parallel memory building
max_parallel_workers=8,
enable_parallel_retrieval=True, # 🔍 Parallel query execution
max_retrieval_workers=4
)💡 Mẹo Chuyên Gia: Xử lý song song giảm đáng kể độ trễ cho các thao tác hàng loạt!
SimpleMem là một bộ nhớ thống nhất cho các tác nhân LLM, được xây dựng trên một nguyên tắc: lưu trữ bộ nhớ ngữ nghĩa không mất dữ liệu với mật độ thông tin cao, để tác nhân gọi lại được nhiều hơn trong khi tiêu tốn ít token hơn nhiều. Gói này tập hợp ba công trình cùng chia sẻ nguyên tắc này nhưng giải quyết các phần khác nhau của vấn đề.
Hầu hết các hệ thống bộ nhớ đều buộc phải chấp nhận một sự đánh đổi tệ hại. Chúng hoặc tích lũy bị động lịch sử tương tác thô (dư thừa, tốn nhiều token) hoặc chạy các vòng lặp suy luận tốn kém để lọc nhiễu (chậm, tốn chi phí). SimpleMem thay vào đó nén các tương tác qua một quy trình ba giai đoạn:
| Giai đoạn | Chức năng |
|---|---|
| 1. Nén Có Cấu Trúc Ngữ Nghĩa | Chắt lọc các tương tác phi cấu trúc thành các đơn vị bộ nhớ nhỏ gọn (các sự kiện tự chứa với tham chiếu đã được giải quyết và nhãn thời gian tuyệt đối), mỗi đơn vị được lập chỉ mục qua nhiều góc nhìn bổ sung nhau để truy xuất linh hoạt. |
| 2. Tổng Hợp Ngữ Nghĩa Trực Tuyến | Hợp nhất ngữ cảnh liên quan trong một phiên thành các biểu diễn trừu tượng thống nhất, loại bỏ dư thừa khi xây dựng bộ nhớ thay vì tại thời điểm truy vấn. |
| 3. Lập Kế Hoạch Truy Xuất Nhận Thức Ý Định | Suy luận ý định tìm kiếm đằng sau một truy vấn để quyết định nên truy xuất gì và lắp ráp một ngữ cảnh chính xác, nhỏ gọn. |
Trên benchmark LoCoMo, điều này mang lại mức cải thiện F1 trung bình 26.4% so với các hệ thống trước, đồng thời giảm mức tiêu thụ token tại thời điểm suy luận khoảng 30 lần. Chi tiết cơ chế (các lớp chỉ mục lai, ví dụ nén, lập kế hoạch truy xuất): Bộ nhớ văn bản SimpleMem →.
Omni-SimpleMem mở rộng triết lý nén-trước cho bốn phương thức, được xây dựng trên ba nguyên tắc: Tiếp Nhận Có Chọn Lọc (lọc dựa trên entropy theo từng phương thức), Truy Xuất Lũy Tiến (FAISS + BM25 lai với mở rộng ngân sách token theo kim tự tháp), và Tăng Cường Đồ Thị Tri Thức (suy luận đa chặng xuyên phương thức). Thay vì được thiết kế thủ công, kiến trúc của nó được khám phá bởi một quy trình nghiên cứu tự động đã chạy khoảng 50 thí nghiệm trên hai benchmark, chẩn đoán các chế độ thất bại, đề xuất các thay đổi kiến trúc, và thậm chí sửa các lỗi đường ống dữ liệu mà không có sự can thiệp của con người trong vòng lặp bên trong. Đáng chú ý, các bản vá lỗi và thay đổi kiến trúc mỗi loại đóng góp nhiều hơn tất cả việc điều chỉnh siêu tham số cộng lại, đưa hệ thống từ baseline ngây thơ đến trạng thái nghệ thuật trên cả LoCoMo và Mem-Gallery. Tài liệu đầy đủ: Omni-SimpleMem →.
EvolveMem giải quyết một điểm mù được chia sẻ bởi hầu hết mọi hệ thống bộ nhớ: nội dung được lưu trữ tiến hóa, nhưng cơ chế truy xuất (hàm tính điểm, chiến lược hợp nhất, chính sách tạo câu trả lời) vẫn bị đóng băng sau khi triển khai. EvolveMem chạy một quy trình AutoResearch vòng kín (Đánh Giá → Chẩn Đoán → Đề Xuất → Bảo Vệ → Lặp Lại) trong đó một LLM chẩn đoán các lỗi theo từng câu hỏi và đề xuất các thay đổi cấu hình, được bảo vệ bởi tính năng tự động khôi phục khi có hồi quy và khuyến khích khám phá trong giai đoạn trì trệ. Nó khám phá các chiều truy xuất mới (phân rã truy vấn, hoán đổi thực thể, xác minh câu trả lời) không có trong thiết kế ban đầu, cải thiện LoCoMo 25.7% tương đối so với baseline mạnh nhất, và các cấu hình đã tiến hóa của nó chuyển giao tích cực giữa các benchmark. Tài liệu đầy đủ: EvolveMem →.
from simplemem import SimpleMem cung cấp cho bạn lõi văn bản với định tuyến tự động đến backend đa phương thức, và simplemem.optimize(...) khai thác EvolveMem để điều chỉnh truy xuất theo dữ liệu của riêng bạn. Một gói, một mô hình tư duy: nén không mất dữ liệu, truy xuất theo ý định, và để hệ thống liên tục tự cải thiện.
- Đảm bảo bạn đang dùng Python 3.10+ trong môi trường đang hoạt động, không chỉ cài đặt toàn cục.
- Khóa API tương thích OpenAI phải được cấu hình trước khi chạy bất kỳ thao tác xây dựng hoặc truy xuất bộ nhớ nào, nếu không khởi tạo có thể thất bại.
- Khi sử dụng các nhà cung cấp không phải OpenAI (ví dụ: Qwen hoặc Azure OpenAI), hãy xác minh cả tên model và
OPENAI_BASE_URLtrongconfig.py. - Đối với các tập dữ liệu hội thoại lớn, bật xử lý song song có thể giảm đáng kể thời gian xây dựng bộ nhớ.
- 🐍 Python 3.10+
- 🔑 API tương thích OpenAI (OpenAI, Qwen, Azure OpenAI, v.v.)
# 📥 Clone repository
git clone https://github.com/aiming-lab/SimpleMem.git
cd SimpleMem
# 📦 Install dependencies (pinned versions)
pip install -r requirements.txt
# — OR — install as an editable package
pip install -e . # default: text + multimodal + evolver
pip install -e ".[server]" # + MCP / HTTP server (mcp, fastapi, ...)
pip install -e ".[all]" # everything, including dev tools
# ⚙️ Configure API settings
cp config.py.example config.py
# Edit config.py with your API key and preferences# config.py
OPENAI_API_KEY = "your-api-key"
OPENAI_BASE_URL = None # or custom endpoint for Qwen/Azure
LLM_MODEL = "gpt-4.1-mini"
EMBEDDING_MODEL = "Qwen/Qwen3-Embedding-0.6B" # State-of-the-art retrievalMCP Server có thể được chạy trong Docker để có môi trường nhất quán và cách ly. Dữ liệu (LanceDB và cơ sở dữ liệu người dùng) được lưu trữ bền vững trong một volume trên máy chủ.
# From the repository root
docker compose up -d- Giao diện Web: http://localhost:8000/
- REST API: http://localhost:8000/api/
- MCP (SSE): http://localhost:8000/mcp/sse?token=<TOKEN>
Dữ liệu được lưu trong ./data trên máy chủ (được tạo tự động).
- Sao chép mẫu môi trường và chỉnh sửa:
cp .env.example .env # Edit .env: set JWT_SECRET_KEY, ENCRYPTION_KEY, LLM_PROVIDER, model URLs, etc. - Chạy với tệp env:
docker compose --env-file .env up -d
Khi LLM_PROVIDER=ollama và Ollama chạy trên máy của bạn (không phải trong Docker), hãy đặt trong .env:
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://host.docker.internal:11434/v1Trên Linux, host.docker.internal được bật tự động qua tệp Compose.
docker compose logs -f simplemem # Follow logs
docker compose down # Stop and remove containers📖 Để tự lưu trữ MCP server (Docker hoặc bare metal), xem Tài Liệu MCP.
SimpleMem có sẵn dưới dạng dịch vụ bộ nhớ được lưu trữ trên đám mây thông qua Model Context Protocol (MCP), cho phép tích hợp liền mạch với các trợ lý AI như Claude Desktop, Cursor và các MCP client tương thích khác.
🌐 Dịch Vụ Đám Mây: mcp.simplemem.cloud — hoặc tự lưu trữ MCP server cục bộ bằng Docker.
| Tính năng | Mô tả |
|---|---|
| Streamable HTTP | Giao thức MCP 2025-03-26 với JSON-RPC 2.0 |
| Cô Lập Đa Tenant | Bảng dữ liệu theo từng người dùng với xác thực token |
| Truy Xuất Lai | Tìm kiếm ngữ nghĩa + khớp từ khóa + lọc siêu dữ liệu |
| Tối Ưu Cho Sản Xuất | Thời gian phản hồi nhanh hơn với tích hợp OpenRouter |
{
"mcpServers": {
"simplemem": {
"url": "https://mcp.simplemem.cloud/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}📖 Để xem hướng dẫn cài đặt chi tiết và hướng dẫn tự lưu trữ, xem Tài Liệu MCP
Tái tạo các số liệu LoCoMo / MemBench / Mem-Gallery từ các bài báo. Mỗi trụ cột có bộ chạy benchmark riêng trong thư mục riêng của nó. Cài đặt các gói benchmark trước: pip install -e ".[benchmark]".
Chạy từ thư mục gốc của repository:
python test_locomo10.py # full LoCoMo benchmark
python test_locomo10.py --num-samples 5 # quick subset
python test_locomo10.py --result-file my_results.jsonChạy từ thư mục EvolveMem/ (xem EvolveMem/README.md):
cd EvolveMem
python run_evolution.py --data data/locomo10.json --max-rounds 7
python run_benchmark.py locomo --sample 0 --initial weak --max-rounds 3
python run_benchmark.py membench --agent FirstAgent --max-rounds 3Chạy từ thư mục OmniSimpleMem/ (xem OmniSimpleMem/README.md):
cd OmniSimpleMem
python benchmarks/locomo/run_locomo.py --data-path /path/to/locomo10.json --model gpt-4oKhả năng hiện tại theo kênh tích hợp:
| Khả năng | Python (pip install) |
MCP server (Claude Desktop, Cursor, ...) |
|---|---|---|
| Bộ nhớ văn bản | ✅ | ✅ |
| Đa phương thức (hình ảnh / âm thanh / video) | ✅ | ⬜ đang lên kế hoạch |
Truy xuất tự tiến hóa optimize() |
✅ | ⬜ đang lên kế hoạch |
Công việc đã lên kế hoạch để thu hẹp khoảng cách (MCP server là dịch vụ văn bản đa tenant độc lập; đây là các tính năng thực sự, không phải bản sửa lỗi tài liệu):
- Đa phương thức qua MCP. Thêm các công cụ
memory_add_image/memory_add_audio/memory_add_video. Cần một đường dẫn tải tệp lên (base64 hoặc URL, vì MCP không thể truyền đường dẫn tệp cục bộ), điều chỉnh đa tenant của backend lưu trữ Omni-SimpleMem, và khả năng truy cập model thị giác/âm thanh phía máy chủ. - EvolveMem qua MCP. Hiển thị
optimize()như một công cụ MCP. Khả thi hơn so với đa phương thức (văn bản vào, cấu hình JSON ra, không cần truyền tệp), nhưng bộ truy xuất MCP hiện tại chỉ hỗ trợsemantic_top_k/keyword_top_ktrong số ~10 chiều mà EvolveMem tiến hóa. Cần mở rộng bộ truy xuất MCP để hỗ trợ các nút điều chỉnh còn lại (structured top_k, chế độ/trọng số hợp nhất, hoán đổi thực thể, phân rã truy vấn, xác minh câu trả lời), bộ điều hợp để chạy vòng lặp tiến hóa trên bộ nhớ đã lưu của tenant, lưu trữ cấu hình theo từng tenant, và thực thi bất đồng bộ (vòng lặp tốn nhiều tài nguyên LLM và sẽ hết thời gian với yêu cầu đồng bộ). - Docker tự động kế thừa cả hai tính năng khi MCP server hỗ trợ chúng (thêm các phụ thuộc đa phương thức vào image và một volume lưu trữ Omni).
Để có đa phương thức đầy đủ và truy xuất tự tiến hóa ngay hôm nay, hãy sử dụng API Python (xem Bắt Đầu Nhanh).
Nếu bạn sử dụng SimpleMem trong nghiên cứu của mình, vui lòng trích dẫn:
@article{simplemem2026,
title={SimpleMem: Efficient Lifelong Memory for LLM Agents},
author={Liu, Jiaqi and Su, Yaofeng and Xia, Peng and Zhou, Yiyang and Han, Siwei and Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu},
journal={arXiv preprint arXiv:2601.02553},
year={2026},
url={https://arxiv.org/abs/2601.02553}
}@article{evolvemem2026,
title={EvolveMem: Self-Evolving Memory Architecture via AutoResearch for LLM Agents},
author={Liu, Jiaqi and Ye, Xinyu and Xia, Peng and Zheng, Zeyu and Xie, Cihang and Ding, Mingyu and Yao, Huaxiu},
journal={arXiv preprint arXiv:2605.13941},
year={2026},
url={https://arxiv.org/abs/2605.13941}
}@article{omnisimplemem2026,
title = {Omni-SimpleMem: Autoresearch-Guided Discovery of Lifelong Multimodal Agent Memory},
author = {Liu, Jiaqi and Ling, Zipeng and Qiu, Shi and Liu, Yanqing and Han, Siwei and Xia, Peng and Tu, Haoqin and Zheng, Zeyu and Xie, Cihang and Fleming, Charles and Ding, Mingyu and Yao, Huaxiu},
journal = {arXiv preprint arXiv:2604.01007},
year = {2026},
}Dự án này được cấp phép theo Giấy Phép MIT - xem tệp LICENSE để biết chi tiết.
Chúng tôi xin cảm ơn các dự án và nhóm sau:
- 🔍 Mô Hình Nhúng: Qwen3-Embedding - Hiệu năng truy xuất tiên tiến nhất
- 🗄️ Cơ Sở Dữ Liệu Vector: LanceDB - Lưu trữ dạng cột hiệu năng cao
- 📊 Benchmark: LoCoMo - Khung đánh giá bộ nhớ ngữ cảnh dài