MemRosetta -- công cụ bộ nhớ dài hạn cục bộ cho các công cụ AI
(github.com/obst2580)Khi dùng các công cụ coding AI như Claude Code, Cursor, Codex, Gemini..., ngữ cảnh thường biến mất mỗi khi phiên làm việc thay đổi.
Kiến trúc đã quyết định hôm qua, kết quả debug tuần trước, phong cách code tôi ưa thích -- lần nào cũng phải giải thích lại.
MemRosetta là một engine bộ nhớ dài hạn cục bộ để giải quyết vấn đề này.
Cài đặt chỉ với một dòng:
npm install -g memrosetta && memrosetta init --claude-code
Nó hoạt động như thế nào
Mọi ký ức đều được lưu trong một file SQLite cục bộ duy nhất (~/.memrosetta/memories.db). Claude Code, Cursor,
Codex, Gemini cùng chia sẻ một DB, nên ký ức được lưu từ một công cụ có thể được truy xuất từ công cụ khác.
Thay vì chia tài liệu thành các mảnh văn bản (chunk) như RAG truyền thống, nó lưu theo đơn vị ký ức nguyên tử (atomic memory).
Một sự kiện tương ứng với một bản ghi.
// Phiên thứ Hai — Claude tự động gọi MCP trong lúc trò chuyện
store({
"content": "Xác thực được quyết định là OAuth2 + PKCE",
"memoryType": "decision",
"keywords": ["auth", "oauth2", "pkce"]
})
// Phiên mới vào thứ Ba — Claude tìm kiếm qua MCP
search({ "query": "auth" })
→ [0.95] Xác thực được quyết định là OAuth2 + PKCE (decision, 2026-03-31)
→ [0.82] API rate limit là 100req/min cho mỗi người dùng (fact, 2026-03-31)
→ [0.41] UI trang đăng nhập đã hoàn thành (event, 2026-03-28)
Ngay cả khi đã tích lũy 100 ký ức, hệ thống chỉ trả về 5 mục liên quan nhất bằng cách tổng hợp keyword matching + semantic similarity + điểm kích hoạt ACT-R. Cách này giống như bộ não con người gợi nhớ các ký ức liên quan — những ký ức được nhớ lại thường xuyên sẽ dễ xuất hiện hơn, còn những ký ức lâu không dùng sẽ mờ dần một cách tự nhiên nhưng không biến mất.
Tính năng chính
- Tìm kiếm lai: FTS5 keyword matching + vector semantic similarity + hợp nhất Convex Combination
- Phát hiện mâu thuẫn: mô hình NLI cục bộ (71MB) tự động phát hiện mâu thuẫn giữa dữ kiện mới và ký ức hiện có rồi liên kết chúng bằng quan hệ
- Quên thích ứng: dựa trên mô hình ACT-R của khoa học nhận thức. Ký ức được tìm lại thường xuyên sẽ tăng điểm kích hoạt, còn ký ức ít dùng sẽ tự nhiên phai dần (không bị xóa)
- Mô hình thời gian: mỗi ký ức có 4 timestamp -- thời điểm lưu, thời điểm cuộc trò chuyện diễn ra, thời điểm sự kiện thực tế xảy ra, thời điểm bị vô hiệu hóa
- Đồ thị quan hệ:
updates,extends,derives,contradicts,supports-- kết nối giữa các ký ức - Không cần LLM: engine lõi chạy cục bộ mà không gọi API bên ngoài. Cả embedding (33MB) và NLI (71MB) đều chạy local
Tích hợp theo từng công cụ
memrosetta init --claude-code # Claude Code: hooks + CLAUDE.md + MCP
memrosetta init --cursor # Cursor: MCP + .cursorrules
memrosetta init --codex # Codex: config.toml + AGENTS.md
memrosetta init --gemini # Gemini: settings.json + GEMINI.md
Thông qua MCP (Model Context Protocol), AI có thể trực tiếp lưu/truy xuất ký ức trong suốt phiên làm việc. Với Claude Code, trong phiên Claude sẽ tự lưu trực tiếp qua MCP (chất lượng cao nhất, chi phí $0), còn khi phiên kết thúc thì Stop Hook đóng vai trò lưới an toàn để bổ sung những gì bị bỏ sót.
So với sản phẩm cạnh tranh
Các giải pháp bộ nhớ AI hiện có như Mem0, Zep, Letta đều dựa trên cloud và phụ thuộc vào LLM. MemRosetta hoạt động chỉ với một SQLite cục bộ, còn các tính năng như phát hiện mâu thuẫn, mô hình quên ACT-R, mô hình thời gian, đồ thị quan hệ... là những thứ không có trong các giải pháp hiện tại.
- GitHub: https://github.com/obst2580/memrosetta
- Trang chủ: https://memrosetta.liliplanet.net
- npm:
npm install -g memrosetta - 696+ bài kiểm thử, giấy phép MIT
1 bình luận
Xin chào, tôi nghĩ đây là một ý tưởng hay.
Bạn có dự định phân tách theo từng dự án không?