Repo Tencent-Hunyuan/Hy-Memory vừa được mở mã nguồn tháng 10/2026, hiện có 497 sao, viết chủ yếu bằng Python. Đây là engine bộ nhớ nhận thức cho LLM agent, kèm SDK Python tên hy-memory và một sản phẩm desktop/CLI gọi là MemHub. Nghe tên “memory” thì nhiều người nghĩ ngay tới mấy cái vector store gắn thêm vào chatbot. Cái này đi xa hơn ở chỗ nó chia bộ nhớ theo ba cảnh huống tác vụ khác nhau: Chat, Working, Coding.
Nó giải quyết bài toán gì cụ thể
Agent hiện nay bị mất trí nhớ theo nhiều kiểu. Với chat, nó không nhớ người dùng thích gì qua nhiều phiên, hoặc nhớ sai khi có thông tin mâu thuẫn. Với tác vụ dài, nó không rút ra được “kinh nghiệm tái sử dụng” để lần sau làm nhanh hơn. Với coding, nó sửa code xong rồi quên mất vì sao mình chọn cách sửa đó, lần sau đọc lại repo thì lặp lại sai lầm cũ.
Hy Memory xử lý từng kiểu bằng một pipeline riêng. Với Chat, nó tổ chức bộ nhớ cá nhân thành hệ thống phân tầng 8 lớp gồm hội thoại thô, fact nguyên tử, tóm tắt, schema, và ý định tương lai, có cơ chế hoà giải xung đột và quy nạp schema xuyên lĩnh vực. Với Working, nó dùng bộ nhớ hai lớp: fact và kinh nghiệm tái sử dụng. Với Coding, nó theo dõi chuỗi diff theo phiên bản, giữ lại cả kinh nghiệm kỹ thuật lẫn đúng đường đi của từng lần sửa code qua các tác vụ xen kẽ.
Phần MemHub là thứ tôi thấy thực dụng hơn cả. Nó gom lịch sử hội thoại và trace code từ các app AI mà người dùng đã cấp quyền (Claude Code, Cursor, Codex, OpenCode, Qwen Code) vào một runtime và thư mục dữ liệu local duy nhất. Tức là bộ nhớ của bạn không nằm rải rác trong từng app nữa, mà có một chỗ để recall chéo ứng dụng.
Vì sao repo này đang được chú ý
497 sao chưa phải con số lớn, nhưng nhìn vào tốc độ và bối cảnh thì đáng để ý. Repo tạo ngày 15/10/2026, cập nhật ngày 17/10, tức là mới vài ngày. Cùng lúc đó Tencent thả một loạt thứ: bản Hy Memory 2.0 (hy-memory==2.0.3) lên PyPI, open-source monorepo kèm MemHub, và model Hy-Memory-30B-A3B trên Hugging Face với technical report về attributed reinforcement learning cho việc viết bộ nhớ dài hạn.
Nền tảng học thuật cũng có. Bài “Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents” đã được nhận tại EMNLP 2026. Benchmark CMB (Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents) thì đang submit ICLR 2027. Một repo mới mở mà đã có paper accepted, có model riêng, có benchmark riêng, lại đến từ một lab lớn thì khó mà lướt qua.
Điểm khác biệt so với đám memory framework đang có: phần lớn chỉ dừng ở “lưu và retrieve”. Hy Memory chia theo scene và có khái niệm mode (lite, pro, ultra), trong đó lite bỏ qua scene và lưu tất cả như raw memory, còn pro/ultra mới kích hoạt pipeline chuyên biệt cho Working và Coding. Cách đóng gói theo bậc như vậy khá thực dụng cho người mới thử.
Cài và chạy thử
Cài bản core, mặc định kèm ChromaDB và Kuzu:
pip install hy-memory==2.0.3
Muốn thêm backend khác thì chọn extra:
pip install "hy-memory[qdrant]==2.0.3" # + Qdrant
pip install "hy-memory[faiss]==2.0.3" # + FAISS
pip install "hy-memory[graph]==2.0.3" # + Neo4j
pip install "hy-memory[mysql]==2.0.3" # + MySQL cache
pip install "hy-memory[rerank]==2.0.3" # + local multilingual cross-encoder rerank
pip install "hy-memory[all]==2.0.3" # everything
Cấu hình chỉ cần một LLM endpoint và một embedding endpoint, cả hai đều chỉ cần tương thích OpenAI:
export MEMORY_LLM_API_KEY="sk-your-key"
export MEMORY_LLM_BASE_URL="https://api.deepseek.com"
export MEMORY_LLM_MODEL="deepseek-chat"
export MEMORY_EMBEDDER_API_KEY="sk-your-key"
export MEMORY_EMBEDDER_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export MEMORY_EMBEDDER_MODEL="text-embedding-v3"
export MEMORY_EMBEDDING_DIMS=1024
Hoặc dùng mặc định OpenAI với một key duy nhất:
export OPENAI_API_KEY="sk-your-key"
Chat memory, đoạn này chạy được ngay:
from hy_memory import HyMemoryClient
client = HyMemoryClient(mode="pro")
# Write: plain text or OpenAI-format messages
client.add("I love sci-fi movies, especially Interstellar", user_id="user_1")
client.add([
{"role": "user", "content": "Recommend a movie"},
{"role": "assistant", "content": "Try Interstellar, a sci-fi masterpiece by Nolan"},
], user_id="user_1")
# Search: returns the profile / normal / proactive channels
results = client.search("What movies does the user like?", user_ids=["user_1"], limit=10)
for mem in results["memories"]["normal"]:
print(f" [{mem['score']:.2f}] {mem['content']}")
client.close()
Coding và Working memory thì bắt buộc phải có tool-call trace trong messages, và chỉ có tác dụng ở mode pro hoặc ultra:
messages = [
{"role": "user", "content": "Fix the timeout in the search client."},
{"role": "assistant", "content": "", "tool_calls": [{
"id": "call_1", "type": "function",
"function": {"name": "apply_patch", "arguments": '{"path":"src/search.py"}'},
}]},
{"role": "tool", "tool_call_id": "call_1", "name": "apply_patch",
"content": "Patch applied successfully"},
]
client.add(
messages,
scene="coding", # or "working"
user_id="user_123",
workspace_id="github.com/example/service", # optional: isolate by repository / project
branch="fix/search-timeout", # optional: requires workspace_id
)
result = client.search(
"Which timeout implementation was finally kept?",
scene="coding",
user_ids=["user_123"],
workspace_id="github.com/example/service",
branch="fix/search-timeout",
limit=5,
)
Để ý hai tham số workspace_id và branch. Đây là cách nó cô lập bộ nhớ theo từng repo và từng nhánh, đúng kiểu mình cần khi làm nhiều dự án song song. branch yêu cầu phải có workspace_id đi kèm, cái này README ghi rõ.
Ai nên dùng, dùng vào việc gì
Nếu bạn đang build agent coding như kiểu tự động sửa lỗi, refactor, hoặc chạy task dài qua nhiều phiên, phần Coding memory là chỗ đáng thử nhất. Cụ thể: giữ lại được vì sao lần trước chọn cách sửa timeout kiểu A thay vì kiểu B, để lần sau không lặp lại. Với agent chạy nhiều repo, tách theo workspace_id giúp tránh việc kinh nghiệm của repo này rò sang repo khác.
Nếu bạn làm trợ lý cá nhân hoặc chatbot có yêu cầu nhớ người dùng lâu dài, phần Chat với 8 tầng bộ nhớ và cơ chế hoà giải xung đột giải quyết đúng cái đau: người dùng đổi sở thích, hoặc nói hai điều mâu thuẫn ở hai thời điểm khác nhau. Cái này nhiều vector store thuần không làm được vì nó không có khái niệm “fact cũ bị thay thế”.
Còn MemHub hướng tới người dùng cuối hơn: dev hay dùng cả Cursor lẫn Claude Code lẫn Codex, muốn gom lịch sử lại một chỗ local. Nó là desktop app và CLI, dữ liệu nằm local, chạy trên máy bạn.
Lưu ý trước khi nhảy vào
Repo không ghi license. Đây là điểm cần kiểm tra trước khi dùng trong sản phẩm thương mại. Không có trường license rõ ràng thì mặc định là bạn không có quyền dùng thoải mái, dù mã nguồn công khai. Nếu định tích hợp vào pipeline production thì nên đọc file LICENSE trong repo hoặc liên hệ maintainer trước.
Repo mới tạo vài ngày, tài liệu chủ yếu nằm trong README, chưa có nhiều ví dụ ngoài. Vài chi tiết trong README cho thấy API còn đang siết dần (ví dụ rule branch phải đi kèm workspace_id), nên khả năng breaking change trong thời gian tới không thấp. Version đã lên 2.0.3 khá nhanh sau 2.0 cũng là tín hiệu cần pin version cụ thể khi deploy.
README cũng bị cắt giữa phần Coding search ở bản rút gọn tôi đọc, nên một số chi tiết output của search theo scene bạn sẽ phải đọc trực tiếp trong repo. Có một điểm nữa: phần lớn sức mạnh nằm ở mode pro/ultra, tức là bạn phải gọi LLM cho mỗi lần write lẫn embedding, chi phí token khi chạy nhiều agent sẽ không nhỏ. Đừng thử nghiệm trên dữ liệu lớn với key trả tiền trước khi đo lại chi phí.
Tôi chưa có benchmark độc lập nào để đối chiếu với các lựa chọn khác như Mem0 hay Zep, vì repo mới quá và CMB là benchmark do chính nhóm tác giả đề xuất. Kết quả trên benchmark của họ thì đọc cho biết, đừng coi là so sánh trung lập.
Nếu bạn đang cần một giải pháp bộ nhớ có paper, có model riêng và quan trọng nhất là tách được Chat với Coding ra hai pipeline khác nhau, thì Hy Memory là cái đáng clone về chạy thử cuối tuần này. Còn nếu chỉ cần lưu vài fact của user thì nó hơi nặng. Repo đây: Tencent-Hunyuan/Hy-Memory, 497 sao tính đến lúc tôi viết bài.
