Key highlights:
• Four asset types replace flat chat logs: Chat Memory, Skill, Wiki, CodeGraph
• ACL-governed sharing — private / team / restricted / agent visibility, private by default
• Self-hosted, one-command Docker deploy, no vendor API dependency
• Layered memory (L0→L3) with BM25 + vector + RRF retrieval under strict budget caps
• Protocol-native: speaks both Anthropic and OpenAI APIs, integrates with Claude Code, OpenClaw, Hermes, CodeBuddy
Every team building with coding agents hits the same wall twice.
First wall: the context window is not memory. You can jam the last 20 messages back in on every turn, but that's a rolling buffer, not recall. Knowledge learned in session 1 evaporates by session 100.
Second wall — the one nobody else is solving: memory is per-person. Your agent slowly learns "don't refactor the old auth module — mobile still uses it." Then your teammate spins up their own agent, which cheerfully refactors it, because that hard-won context lived in your chat history, not the team's.
Instead of one undifferentiated blob of "memory," everything registers as one of four typed Memory Assets:
The distinction between Skill and a plain prompt snippet matters. A Skill isn't just text you paste — it carries versions, resource files, trigger boundaries, execution steps, and validation rules. It's closer to a versioned runbook than a system-prompt fragment. (The Skill machinery borrows from Nous Research's Hermes Agent, credited in the README.)
CodeGraph is the one that surprised me most. Standard RAG over a codebase tells the agent "the code is here." CodeGraph tells it "changing this might affect those." Before an agent modifies a function, it can inspect callers/callees and run impact analysis — which is exactly the safety check human reviewers do and agents usually skip. (The CodeGraph module builds on the open-source [codegraph](https://github.com/colbymchenry/codegraph) project.)
Chat Memory isn't stored flat. Raw conversations save as L0, then an async pipeline refines them into progressively more distilled layers:
Retrieval is layered too, and this is the clever bit for context-window economics. Normally L2/L3 give a fast context bootstrap — a compact summary that gets the agent oriented. Only when specific facts are needed does the system fall back to L1/L0 using BM25 + vector retrieval + RRF (reciprocal rank fusion). Every result set is capped by item count, character budget, and a timeout, so memory never crowds out the actual task in the context window.
That "budgeted retrieval" design is a direct answer to the most common failure mode of naive memory systems: dumping 8K tokens of half-relevant history into every prompt and calling it recall.
This is a condensed version. The full article includes architecture diagrams, code examples, comparison tables, and practical use cases.
👉 Read the complete analysis on andrew.ooo
Topics: tencentdb-agent-memory, ai-memory, ai-agents, coding-agents, knowledge-graph
No posts

Comments
Nothing yet. Say the first thing.
Sign in to join the conversation.