腾讯开源 Agent 记忆中枢:分层记忆取代向量堆
TencentDB Agent Memory 是腾讯云开源的 Agent 记忆中枢,当前 18,851 颗 star,过去一周涨了 8,003 颗,TypeScript 编写,MIT 协议。它解决的问题很具体:Agent 每次对话都要重新理解你已经讲过的工作流、项目背景和输出格式,而这些信息既不该让用户反复解释,也不该被无差别地塞进上下文。
它的做法是把对话、文档和代码沉淀为四类可复用的记忆资产:Chat Memory(对话记忆)、Skill(技能)、LLM-Wiki(知识条目)、Code-Graph(代码图谱),并在多个 Agent 和框架之间共享。项目口号是 "Agents remember, Humans innovate."——让 Agent 记住该记住的,把人从重复劳动里解放出来。
一个典型的场景:一次长会话里 Agent 要执行几十次工具调用,中间日志轻松吃掉数万 token;下一次对话它又把之前的结论忘得差不多,同一个 SOP 需要重新解释一遍。记忆系统要解决的就是这两件事——任务进行中的信息过载,和跨会话的经验延续。
亮点一:记忆分层,拒绝扁平向量堆
传统记忆系统把历史切碎后倒进一个扁平向量库,召回退化成在碎片里盲搜。TencentDB Agent Memory 采用语义金字塔:L0 Conversation(原始对话)→ L1 Atom(原子事实)→ L2 Scenario(场景块)→ L3 Persona(用户画像)。上层管判断和方向,下层管证据和细节。日常偏好直接看 Persona,需要具体事实时再逐层下钻到 Atom 甚至原始对话。上层是结构化、人可读的 Markdown 文件,下层是数据库里的全量原文——"下层保留证据,上层保留结构"。回忆时先看结构,需要证据时再下钻,这种渐进式披露避免了把全部历史一次性塞进上下文。
亮点二:符号化记忆,把 token 花在刀刃上
长任务里最烧 token 的是冗长的中间日志(搜索结果、代码、报错堆栈)。它把这些日志整体卸载到外部文件,上下文里只留一张高密度的 Mermaid 任务图,每个节点带 node_id。Agent 在图上推理,需要核对细节时按 node_id 精确定位取回原文。官方基准数据:接入后 token 消耗最高下降 61.38%,任务成功率相对提升 51.52%,PersonaMem 用户画像准确率从 48% 提升到 76%。这组数据在连续长会话上测得——SWE-bench 一次跑 50 个连续任务,模拟真实世界的上下文累积压力。
亮点三:记忆是白盒,不是黑盒
大多数记忆系统召回出错时,你只能看到一堆向量相似度分数,无从排查。这里的关键中间产物全部落成可读文件:L2 场景块是纯 Markdown,L3 画像在 persona.md 里并标注了来源场景,任务画布是 Mermaid 图。调试变成一次确定的走查:Persona → Scenario → Atom → Conversation,直到根因浮出水面。
白物集实际怎么用到的
白物集的内容管线一直在用同一套思路,只是没有把它做成产品。每日新闻采集后先沉淀为知识卡片——标题、链接、摘要、分类、标签——再聚类成深度文章。知识卡片就是我们的 LLM-Wiki:结构化的知识单元,全管线共享,而不是把采集原文直接堆进上下文。
思维模型库(Obsidian)则是分层记忆的雏形。每张模型卡由一句话定义、核心机制、我的应用三部分组成,场景索引把卡片按问题场景组织,对应 L1 Atom 到 L2 Scenario 再到 L3 应用画像的层级。写作流程是双向的:动笔前从库里拉论证骨架(消费),写完后把新案例回写进卡片(充值)。文章越写,记忆越厚;记忆越厚,文章越深。这与项目理念一致——记忆不是囤积,是避免重复解释。双通道验证也遵循同一逻辑:数据锚点走项目侧的真实生产数据,论证骨架走格栅侧的模型卡片,两者互为校验源。上层论证负责判断,下层数据负责证据。
系列技能(如本系列所在的 skill-recommend-series)本身就是从重复工作中蒸馏出的 SOP,对应它的 Skill 资产。它的 Roadmap 里"自动生成 Skill"尚未完成,我们已经在手工做这件事了。
白物集的文章管线跑在 DeepSeek API 上,token 成本是真金白银。符号化记忆的思路——把长日志卸到文件、上下文只留结构——对这种按量计费的场景有直接借鉴价值。
适合什么场景、不适合什么场景
适合:长会话、长任务的重度 Agent 用户;需要跨会话延续记忆的个人或小团队;对话历史累积导致上下文爆掉的场景。本地后端默认 SQLite + sqlite-vec,零配置即可运行,白盒文件也方便检查。
不适合:纯脚本管线——没有 Agent 宿主,插件装不上,能借鉴的只有架构思路;需要企业级托管记忆的团队——本地后端是单机 SQLite,生产级接入需要自己接云向量库;在意数据落盘位置的场景——记忆默认落在本地目录的 Markdown 和 SQLite 文件里。
快速上手
以 OpenClaw 为例,四步跑通。安装插件:
openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
配置文件里开启,默认使用本地 SQLite 后端,零配置:
{
"memory-tencentdb": {
"enabled": true
}
}
可选:开启短时压缩,长日志自动卸载,上下文只留 Mermaid 任务图:
{
"memory-tencentdb": {
"config": {
"offload": { "enabled": true }
}
}
}
验证:打开 ~/.openclaw/memory-tdai/ 目录,直接查看 L1 到 L3 各层的 Markdown 文件——每一层记忆都是白盒。它同时提供 Hermes 适配器和 Docker 一键部署,接入方式不只 OpenClaw 一条。
下次你的 Agent 在长会话里"失忆"时,先别急着换更大的上下文窗口——先想想,它缺的是容量,还是结构。分层记忆和符号化记忆给出的答案,值得在下一个 Agent 项目里验证。