TL;DR

Mọi builder AI agent đều đến lúc va vào cùng một bức tường: agent vẫn quên. Mở rộng context window không giải quyết được gốc rễ. Giải pháp thực sự là cho agent hai thứ: GBrain (wiki công ty - bộ nhớ xuyên conversation) và Lossless (bản ghi cuộc họp - bộ nhớ trong một session). Bài này giải thích từng thứ là gì và khi nào nên dùng cái nào.

Bức tường mà mọi builder đều gặp

Hãy tưởng tượng context window là mặt bàn làm việc. Bàn càng rộng, càng chứa được nhiều giấy tờ hơn. Nhưng dù rộng đến đâu, mặt bàn vẫn không phải thư viện và cũng không phải bản ghi âm cuộc họp hôm qua.

Đây là tình huống điển hình:

Bạn: "Nhớ lần trước với Acme không? Mình đã quyết định không giảm giá dưới mức X."

Agent: "Acme là khách hàng nào? Quyết định nào vậy?"

Agent đọc hết mọi thứ bạn gõ vào. Nhưng nó không có nơi nào để tra cứu thông tin đó. Bàn rộng hơn không giải quyết được vấn đề này - nó chỉ làm bàn to hơn mà thôi.

Ba lớp bộ nhớ agent: Context Window, GBrain và Lossless
Ba lớp bộ nhớ của agent: context window (những gì đang thấy), GBrain (wiki xuyên conversation), Lossless (bản ghi trong session)

GBrain là gì - Wiki cho agent

GBrain là lớp search/index nằm trên wiki công ty hoặc markdown repo của bạn. Được open-source bởi Garry Tan - CEO Y Combinator - vào ngày 5/4/2026, MIT license. Trong 24 giờ đầu đạt ~5,000 GitHub stars, hiện tại khoảng 14,000 stars.

Ý tưởng cốt lõi rất đơn giản: khi nhân viên mới đến, bạn không bắt họ đọc hết toàn bộ lịch sử Slack. Bạn đưa cho họ link Notion: danh sách khách hàng ở đây, chính sách ở đó, mục tiêu quý trước ở kia. Wiki giữ các sự kiện. GBrain làm cho wiki đó có thể query được từ agent.

Cách GBrain hoạt động:

  • Mỗi trang trong brain repo theo cấu trúc compiled truth + timeline: phần trên là "điều tôi tin là đúng", phần dưới là trail bằng chứng append-only
  • Retrieval hybrid: HNSW vector search (1536-dim OpenAI embeddings) kết hợp Postgres tsvector keyword search, merge bằng RRF fusion
  • BrainBench benchmark: P@5 đạt 49.1%, R@5 đạt 97.9% - typed-edge graph layer đóng góp +31.4 điểm P@5 so với khi tắt
  • Nightly "Dream Cycle": agent chạy lúc bạn ngủ, làm giàu trang, sửa citation, hợp nhất bộ nhớ

Bộ nhớ không bị khóa trong database mờ đục - toàn bộ là file markdown trong git repo, diffable và human-readable.

Lossless là gì - Bản ghi cuộc họp

Hình dung một cuộc họp 2 tiếng. Thư ký ghi tóm tắt 5 phút. Tóm tắt đó mất 95% chi tiết - nhưng đủ để skim qua. Rồi 30 phút sau sếp hỏi: "Cái con số bạn nói ở phút 47 là 12 hay 21?" Tóm tắt không cứu được bạn. Bạn cần tua lại bản ghi.

Lossless chính là bản ghi đó. Dựa trên paper LCM của Voltropy PBC (tháng 2/2026), được implement thành plugin cho agent runtimes:

  • lossless-claw cho OpenClaw (4.7k stars, Node.js 22+)
  • hermes-lcm cho Hermes Agent (532 stars, Python 3.11+)

Cơ chế hoạt động: mọi message trong conversation đều được lưu vào SQLite trước khi bị compact. Khi context window đầy (default: 75% threshold), LCM nén các message cũ thành summary DAG - nhưng bản gốc vẫn còn đó, có thể tìm lại. Agent có thêm các tool như lcm_greplcm_expand để drill vào phần đã bị nén.

Kết quả trong thực tế:

Không có Lossless: "Schema nào? Bạn nói lại đi." (cũ bị nén mất)

Có Lossless: "Ý bạn là đoạn 35 phút trước. Lúc đầu mình dùng UUID, sau đó 12 phút sau bạn chuyển sang ULID. Áp dụng ULID nhé?"

Hai hiểu lầm phổ biến

"Tôi đã nhét 30 ngày conversation vào model, vậy là đủ rồi"
Cách này làm được một nửa của Lossless (giữ conversation) và không làm gì được cho GBrain (không có gì được tổ chức theo người, dự án, hay quyết định cả). Model đọc được, nhưng không tìm được dòng quan trọng.

"Tôi đang dùng vector DB để lưu lịch sử"
Vector DB là storage/search layer. GBrain và Lossless là hai pattern được xây dựng trên top của storage - không phải storage bản thân chúng.

Khi nào dùng cái nào

GBrain - dùng khi "giữa các conversation":

  • Agent mới tiếp nhận khách hàng cũ lần đầu
  • Cùng agent quay lại task sau nhiều ngày
  • Nhiều agent phối hợp: agent A bàn giao cho agent B
  • Đổi agent trên cùng project - agent mới không cần onboarding lại từ đầu

Lossless - dùng khi "trong một conversation":

  • Conversation dài 50+ lượt
  • Model tự compress history (context đầy)
  • User reference lại chi tiết từ 30 phút trước
  • Debug: muốn biết agent đang dựa vào context nào để ra quyết định

Nếu agent của bạn wrap up trong vài lượt - Lossless không thay đổi gì nhiều. Nếu agent chỉ phục vụ một khách hàng hoặc một project - GBrain không cần thiết. Khi cả hai layer thực sự phát huy: agent phải làm việc xuyên conversation, xuyên task, xuyên team - giống như một đồng nghiệp thực sự.

Kết

Context window lớn hơn không sửa được bug về bộ nhớ. Nó chỉ làm mặt bàn rộng hơn. Giải pháp thực sự là cho agent hai thứ còn thiếu: GBrain là wiki công ty (bộ nhớ xuyên conversation), Lossless là bản ghi cuộc họp (bộ nhớ trong session hiện tại). Hai thứ cộng lại làm agent cảm giác như một đồng nghiệp thực sự - biết cách công ty vận hành và nhớ nơi bạn vừa dừng lại.

Phần 2 sẽ đi vào chi tiết: cách tích hợp GBrain và Lossless vào agent của bạn, so sánh kỹ thuật với RAG, và 5 câu hỏi diagnostic khi agent vẫn quên. via Vox (@Voxyz_ai), Vectorize, Gamgee Blog.