ai-memory: đổi coding agent mà không phải giải thích lại dự án
ai-memory là bộ nhớ dài hạn dùng chung cho coding agent, máy và nhóm. Dự án lưu tri thức trong wiki Markdown có Git hỗ trợ, hỗ trợ handoff giữa các agent và có luồng mặc định không cần gọi LLM.
Nếu từng đổi từ Claude Code sang Codex giữa lúc đang xử lý một lỗi khó, bạn hẳn biết phần tốn thời gian không chỉ là mở công cụ mới. Đó là phải kể lại kiến trúc, các hướng đã thử, giả định đã sai và câu hỏi vẫn còn bỏ ngỏ.
ai-memory trên GitHub muốn giảm phần việc đó: tạo bộ nhớ dài hạn dùng chung cho các coding agent, máy tính và nhóm làm việc. Trang giới thiệu của dự án là aimemory.sh.
Bộ nhớ chung thay vì ghi chú riêng của từng agent
Nhiều coding agent đã có cơ chế ghi nhớ riêng, nhưng các ghi chú này có thể gắn với một agent hoặc một máy cụ thể. ai-memory đặt một lớp bộ nhớ bên ngoài các agent để lưu và truy hồi ngữ cảnh công việc.
README liệt kê nhiều tích hợp first-party, gồm Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Devin CLI, Kimi Code, Kiro CLI và các công cụ khác.
Luồng hoạt động được dự án tóm tắt như sau:
text
capture → consolidate → recall → handoff
Capture: lifecycle hooks thu nhận quan sát trong phiên, gồm prompt, lời gọi công cụ và mốc phiên.
Consolidate: khi phiên kết thúc, quan sát được tổng hợp thành các trang Markdown trong wiki của dự án.
Recall: phiên sau nhận một brief có giới hạn dung lượng và có thể tìm lại kiến thức đã lưu.
Handoff: agent tiếp theo nhận bối cảnh về phần việc dang dở, hướng đã thất bại và câu hỏi còn mở.
Ý tưởng chính không chỉ là ghi nhớ codebase, mà là giữ lại dấu vết của quyết định kỹ thuật, lỗi đã gặp và trạng thái công việc chưa hoàn tất.
Wiki Markdown là nguồn dữ liệu gốc
Theo README, nguồn dữ liệu gốc của ai-memory là một wiki gồm các file Markdown có Git hỗ trợ. Cơ sở dữ liệu chỉ là chỉ mục dẫn xuất và có thể dựng lại từ các file này.
Điều đó cho phép người dùng:
Đọc và sửa ghi chú bằng trình soạn thảo quen thuộc.
Tìm nội dung bằng grep.
Mở wiki trong Obsidian.
Đồng bộ file theo quy trình riêng, chẳng hạn qua rsync.
Cách làm này giúp bộ nhớ của agent vẫn là dữ liệu có thể kiểm tra và chỉnh sửa trực tiếp, thay vì bị khóa trong một kho dữ liệu nhị phân. README cũng nêu hệ thống có audit log ghi nhận mọi thay đổi.
Đổi từ Claude Code sang Codex giữa tác vụ
Tình huống tiêu biểu trong README là dừng Claude Code giữa một tác vụ, sau đó mở Codex trong cùng thư mục:
bash
ai-memory run codex
Theo mô tả của dự án, Codex sẽ nhận workstream dùng chung và có thể dùng một bản sao tạm thời, chỉ ở máy cục bộ, của lịch sử phiên trước để tham chiếu các chi tiết chưa nằm trong brief khởi động.
README nêu rằng server từ xa chỉ nhận định danh harness và phiên làm việc, không nhận đường dẫn hoặc nội dung transcript cục bộ. Nếu khởi chạy harness trực tiếp thay vì qua ai-memory run, hành vi của harness được mô tả là không thay đổi.
Cách thử ở mức khái quát
Tư liệu được cung cấp không có đầy đủ lệnh cài đặt và cấu hình server. Vì vậy, đây chỉ là quy trình tham khảo ở mức khái quát:
Chạy server ai-memory do bạn quản lý, trên laptop, homelab hoặc một máy khác.
Dùng một harness được hỗ trợ trong thư mục dự án, chẳng hạn Claude Code hoặc Codex.
Làm việc bình thường để hooks thu nhận hoạt động và hệ thống tổng hợp chúng thành bộ nhớ dự án.
Khi cần đổi agent, mở agent mới qua ai-memory run, ví dụ ai-memory run codex.
Kiểm tra handoff và nội dung bộ nhớ trước khi tiếp tục sửa code.
Những tình huống phù hợp
Đổi agent giữa chừng
Bạn có thể để một agent khảo sát codebase rồi chuyển sang agent khác để viết test hoặc review thay đổi. README mô tả handoff là giao thức có kiểu dữ liệu: mỗi handoff có owner và chỉ được claim một lần.
Bàn giao cuối ngày
Với một bug chưa xử lý xong, bối cảnh giá trị thường là những file đã kiểm tra, lỗi đã thấy và giả thuyết đã bị loại. Đây là loại lịch sử công việc mà ai-memory hướng tới việc giữ lại.
Làm việc trên nhiều máy
Bộ nhớ nằm trên server do người dùng vận hành. Nếu nhiều máy cùng dùng server đó, bạn có thể tiếp tục dự án từ desktop sang laptop với cùng tri thức và các câu hỏi còn mở.
Chia sẻ trong nhóm
Theo README, kiến thức được chia sẻ theo từng dự án, còn handoff cá nhân vẫn riêng tư. Dự án cũng nêu khả năng xác thực nhiều người dùng, gán tác giả theo người dùng và audit log.
Hồ sơ làm việc xuyên dự án
ai-memory còn có một hồ sơ nhỏ về thói quen làm việc, chẳng hạn package manager, bố cục test hoặc phong cách kiến trúc thường dùng. Hồ sơ này có thể được đưa vào lúc bắt đầu phiên ở repository mới.
Điểm cần lưu ý: tính năng này mặc định bật với một người dùng. Trên server dùng chung, người dùng phải chủ động chọn tham gia và hồ sơ được giữ riêng theo từng người.
Không LLM hay dùng chế độ “dream”?
README phân biệt khá rõ hai hướng cấu hình:
| Chế độ | Cách hoạt động |
| --- | --- |
| Mặc định, không LLM | Thu thập, tìm kiếm và handoff hoạt động mà không cần API key. |
| Dream, tùy chọn | Khi đã cấu hình LLM, một tác vụ nền có thể hợp nhất các cụm ghi chú cũ thành trang mạch lạc hơn trong lúc bạn rảnh. |
Ở đường đi mặc định, ai-memory cho biết không cần gọi LLM. Việc truy hồi có thể kết hợp full-text search, thực thể, liên kết và vector tùy chọn trong một hệ thống xếp hạng.
Dự án cũng mô tả cơ chế “lão hóa” bộ nhớ: nội dung được dùng sẽ suy giảm chậm hơn. Ghi chú cũ có thể được nén thành thông tin bền vững như đường dẫn file, mã lỗi hoặc quyết định. Tuy nhiên, các phần có thể viết lại hoặc loại bớt nội dung, như compaction, deduplication và các đường cong lưu giữ theo tầng, được nói là tắt mặc định cho tới khi người dùng bật.
Chế độ “dream” dùng LLM cũng tắt mặc định. README cho biết nó không xóa nguồn ban đầu; các phiên bản trước vẫn có thể truy cập.
Lưu ý về dữ liệu và vận hành
Lifecycle hooks được README mô tả là có bước làm sạch dữ liệu tại một ranh giới riêng tư có kiểu dữ liệu trước khi lưu trữ. Dù vậy, đây không thay thế việc tự đánh giá chính sách bảo mật của đội ngũ.
Nếu dùng server chung, bạn vẫn cần cân nhắc quyền truy cập, dữ liệu nào được phép xuất hiện trong prompt hoặc tool call, sao lưu và quy trình quản trị dữ liệu.
Một vài giới hạn khác cần nhớ:
Handoff không thay thế review code, test hay kiểm tra thay đổi.
Agent vẫn có thể hiểu sai brief hoặc bỏ qua chi tiết quan trọng.
README nêu mức trần ghi khoảng 700 lần/giây là số liệu dự án đo được, không phải benchmark độc lập trong tư liệu này.
Native Windows được ghi là experimental, còn Windows qua WSL2 là supported.
Đáng chú ý khi ngữ cảnh là nút thắt
ai-memory không giải quyết việc agent viết code sai. Nó xử lý một vấn đề khác: ngữ cảnh bị phân mảnh giữa công cụ, máy tính và con người.
Nếu bạn thường xuyên đổi giữa Claude Code và Codex, làm việc dài ngày trên một codebase, hoặc muốn biến lịch sử xử lý sự cố thành tri thức nhóm có thể đọc được, đây là dự án đáng để khám phá. Điểm khác biệt nằm ở việc biến bộ nhớ thành các trang Markdown có thể kiểm tra, thay vì để ngữ cảnh mắc kẹt trong một phiên chat đã đóng.