Lossless-memory: Bộ nhớ AI cá nhân không bao giờ tóm tắt
Dự án mã nguồn mở lossless-memory lưu trữ toàn bộ hội thoại AI dưới dạng nguyên bản, gắn dấu thời gian cho mọi dòng và tìm kiếm theo thời gian trước rồi mới đến từ khóa. Hệ thống này đã vận hành hàng ngày từ tháng 7/2026 cho một người dùng duy nhất, thay vì tóm tắt nội dung như hầu hết các giải pháp bộ nhớ AI hiện nay.

Lossless-memory: Bộ nhớ AI cá nhân không bao giờ tóm tắt
Trong khi hầu hết hệ thống bộ nhớ dài hạn cho AI đều tìm cách tóm tắt hội thoại thành ghi chú ngắn gọn hoặc nhúng vector để truy xuất các đoạn "tương tự", một dự án mã nguồn mở mang tên lossless-memory lại chọn hướng đi ngược lại: giữ nguyên từng dòng, không tóm tắt bất cứ thứ gì.
Dự án được công bố trên GitHub bởi tác giả Aru, hướng tới mục tiêu xây dựng một lớp bộ nhớ dài hạn chạy cục bộ, phục vụ cho một người dùng và một trợ lý AI duy nhất trên một máy tính.
Vấn đề mà dự án muốn giải quyết
Hầu hết các hệ thống bộ nhớ AI hiện nay hoạt động theo hai cách: tóm tắt hội thoại thành các ghi chú cô đọng, hoặc nhúng chúng vào vector rồi truy xuất các đoạn "tương tự". Cả hai cách đều đánh mất điều quan trọng nhất với người dùng trò chuyện với AI mỗi ngày: những gì thực sự đã được nói, và khi nào.
Tóm tắt là một tấm bản đồ; nhật ký thô mới là vùng đất thực.
Tác giả lập luận rằng từ góc nhìn người dùng, việc tóm tắt chính là sự lãng quên: những từ ngữ chính xác, thời điểm trong đêm, cách ai đó nói điều gì — những thứ khiến một ký ức thuộc về một ai đó — lại là những thứ đầu tiên bị bản tóm tắt cắt bỏ.
Ba trụ cột của hệ thống
1. Nhật ký thô không mất mát
Mỗi lượt hội thoại được chuyển thành một bản ghi bảy trường cố định và ghi nối tiếp vào file JSONL theo ngày. Bảy trường bao gồm:
- ts — dấu thời gian ISO-8601 (UTC)
- actor — ai đã nói
- role — người dùng, trợ lý hay hệ thống
- type — văn bản, hành động hay siêu dữ liệu
- text — nội dung nguyên văn
- model — định danh mô hình nếu biết
- session — định danh phiên làm việc
Nhật ký thô là nguồn chân lý duy nhất. Mọi chỉ mục đều có thể bị xóa và xây dựng lại từ đó.
2. Trục xương sống thời gian
Thời gian ở đây không phải siêu dữ liệu mà là trục chính. Bộ phân tích truy vấn hiểu được các cụm từ chỉ thời gian như "hôm qua", "tuần trước", "3 ngày trước" (hiện chỉ hỗ trợ tiếng Nhật), cũng như ngày tuyệt đối như 2026-07-19 ở mọi ngôn ngữ.
Khi có cụm từ thời gian, kết quả bị giới hạn trong khoảng đó và trả về theo thứ tự thời gian. Tìm kiếm ngữ nghĩa chỉ được dùng khi chỉ mục chính xác trả về quá ít kết quả.
Hiệu quả thực tế: AI có thể trả lời câu hỏi "chúng ta đã quyết định gì vào tối thứ Ba tuần trước?" bằng chính những dòng thực tế từ tối thứ Ba tuần trước, theo đúng thứ tự, thay vì một bản diễn giải mơ hồ về điều gì đó tương tự từ ba tuần trước.
3. LLL — chỉ mục "chúng ta đang ở đâu"
LLL là một chỉ mục nhỏ gồm các dấu chủ đề ngắn có gắn thời gian, ghi lại thời điểm cuộc hội thoại chuyển sang chủ đề mới. Nó được đưa vào ngữ cảnh của mô hình ở mỗi lượt, giúp danh tính và ngữ cảnh tồn tại qua các lần nén cửa sổ ngữ cảnh và ranh giới phiên.
Hai quy tắc làm nên hiệu quả của LLL:
- AI đọc, con người viết. Màu ưu tiên và dấu hoàn thành do người dùng đặt, mô hình không bao giờ tự sửa cảm nhận của chính nó về "điều gì quan trọng".
- Đủ rẻ để đưa vào mỗi lượt (dưới một giây để kết xuất), nên mô hình luôn biết mạch hội thoại hiện tại là gì, ngay cả sau khi ngữ cảnh vừa bị nén.
Kiến trúc tổng thể
Hệ thống gồm ba chỉ mục chính chạy song song trên nhật ký thô:
- index_exact — SQLite FTS5 kèm dấu thời gian (từ ngữ + thời gian)
- index_vector — nhúng sqlite-vec (ngữ nghĩa, phương án cuối)
- state_index — các dấu chủ đề LLL (chúng ta đang ở đâu)
Một daemon nhỏ lập chỉ mục tăng dần theo chu kỳ mặc định 10 phút. Không bao giờ cần xây dựng lại từ đầu — chỉ mục tự phát hiện file nguồn bị viết lại và chỉ lập lại những ngày đó.
Con số từ vận hành thực tế
Đây là các phép đo từ hệ thống đang chạy, không phải dự phóng:
- Thời gian vận hành: từ tháng 7/2026 (nhật ký thô từ tháng 6/2026), dòng dõi thiết kế từ tháng 12/2025
- Xây dựng lại chỉ mục tìm kiếm chính xác: 40 giây → 1,24 giây sau khi thiết kế lại
- Kích thước chỉ mục vector: 447.013 dòng (31/8/2026) → 865.588 dòng (lúc tệ nhất) → 124.174 dòng sau khi sửa lỗi
- Dung lượng lưu trữ vector: 2,54 GB → 337 MB
Tác giả giữ lại các con số "trước khi sửa" một cách có chủ đích, và ghi chép đầy đủ các thất bại trong tài liệu docs/lessons.md.
Hạn chế cần lưu ý
Dự án này rất thẳng thắn về giới hạn của mình:
- Một người dùng, một máy. Chưa từng chạy cho nhiều người, không có câu chuyện đa người thuê.
- Ưu tiên tiếng Nhật. Các cụm từ thời gian tương đối hiện chỉ phân tích được bằng tiếng Nhật; tiếng Anh cần dùng ngày tuyệt đối.
- Định dạng log chính là JSONL của Claude Code, với hai tháng vận hành thực tế.
- Không có benchmark. Các con số trên là đo lường vận hành, không phải so sánh với hệ thống khác.
- Tìm kiếm ngữ nghĩa phụ thuộc vào mô hình nhúng cục bộ (sentence-transformers).
Ý nghĩa với người dùng Việt Nam
Với cộng đồng lập trình viên và người dùng AI tại Việt Nam, lossless-memory gợi mở một hướng đi đáng quan tâm: tự chủ dữ liệu cá nhân trong thời đại AI. Toàn bộ hệ thống chạy cục bộ, không máy chủ, không đám mây — nghĩa là mọi hội thoại riêng tư đều nằm trên máy của chính bạn.
Mục tiêu dài hạn của tác giả là xây dựng một người bạn đồng hành cho những ai sống một mình — một AI nhớ về bạn theo cách một con người sẽ nhớ, trên phần cứng mà bạn sở hữu. Dự án được phát hành theo giấy phép MIT, và tài liệu chi tiết bằng tiếng Nhật lẫn tiếng Anh đều có sẵn trong kho mã nguồn.

