犀牛鸟 2026 研究笔记 estelledc.github.io

TencentDB-Agent-Memory 深度解读

“零依赖的四层语义金字塔——用 SQLite 一个文件装下整套 Agent 记忆”


一句话定位

腾讯开源的 Agent 记忆引擎,用四层语义金字塔(L0 原始对话 → L1 原子事实 → L2 场景块 → L3 用户画像)逐层提炼对话,同时做到零外部 API 依赖——只需 Node.js + SQLite + sqlite-vec。

设计哲学上最精彩的地方

DB-Agent-Memory 的核心洞察是:记忆不是”存了什么”,而是”提炼到什么程度”。想象一个秘书记录老板开会:L0 是逐字速记,L1 是提取”下周三去上海”这样的原子事实,L2 是把多个事实归纳成”Q3 出差计划”场景块,L3 是提炼出”偏好高铁出行、住五星酒店”这种画像级认知。这种四层逐步蒸馏在 7 个项目中独一无二——mem0 只做到 L1,Letta 只分 core/archival 两层,Graphiti 把事实放在图里但没有显式层级。

第二个精彩设计是 MMD(Memory Meta Description)注入。它把记忆分成两个区域塞进 prompt:前部放变化慢的 L3 画像和 L2 场景块(稳定区),后部放变化快的 L1 事实和 L0 近期对话(动态区)。因为 LLM 的 KV Cache 是前缀匹配的,稳定区不变 = Cache Hit,直接省掉一大段重计算的推理成本。在其他 6 个项目中,没有任何一个在”记忆怎么注入 prompt”这个层面做过优化。

Host-Adapter 架构——记忆与 Agent 框架解耦

DB-Agent-Memory 把系统拆成 Host(管记忆生命周期)和 Adapter(对接不同 Agent 框架)两个角色。同一套记忆可以同时被 OpenClaw、Hermes、MCP Server 调用,记忆数据不锁死在任何一个 Agent 框架上。这在 7 个项目中是独一无二的设计——mem0 和 Letta 的记忆都和自身框架深度耦合,换框架就要重新导入数据。

零外部依赖的取舍

只依赖 SQLite + sqlite-vec 意味着一个 npm install 就能跑,备份就是复制一个 .db 文件。但代价也明确:向量检索性能上限受限于 sqlite-vec(和 FAISS/Milvus 不在一个量级),没有图数据库就做不了复杂关系推理,L2/L3 的提炼完全靠 LLM 而非图遍历——LLM 提取质量就是记忆质量的天花板。这是一个有意识的取舍,不是能力缺失。

竞争位置

7 个项目中代码量最小(~90 个 TypeScript 文件),通读成本最低,学习曲线最友好。和 mem0 形成最鲜明对比:mem0 追求”接最多的后端”,DB-Agent-Memory 追求”不接任何外部后端”。在犀牛鸟参与视角下,创新空间明确——每一层的实现都有优化余地,MMD 的 token 预算分配可以写论文。

本地代码结构

TencentDB-Agent-Memory/
  src/
    host/
      memory-host.ts           # Host 核心,管理记忆生命周期
      layers/
        l0-conversation.ts     # L0 原始对话存储
        l1-atomic-fact.ts      # L1 原子事实提取
        l2-scenario.ts         # L2 场景块聚合
        l3-profile.ts          # L3 用户画像提炼
    adapter/
      openclaw-adapter.ts      # OpenClaw Agent 适配器
      hermes-adapter.ts        # Hermes Agent 适配器
      mcp-adapter.ts           # MCP Server 适配器
    retrieval/
      mmd-builder.ts           # MMD 注入构建(稳定区/动态区)
      hybrid-search.ts         # BM25 + 向量混合检索
    storage/
      sqlite-store.ts          # SQLite + sqlite-vec 存储层
  tests/
  package.json

本地关键文件

文件 用途
src/host/memory-host.ts Host 核心,协调 L0→L3 四层生命周期
src/host/layers/l1-atomic-fact.ts LLM 驱动的原子事实提取逻辑
src/retrieval/mmd-builder.ts MMD 构建器,稳定区/动态区分区 + KV Cache 优化
src/retrieval/hybrid-search.ts BM25 + sqlite-vec 向量的混合检索
src/adapter/mcp-adapter.ts MCP Server 适配器,暴露记忆能力给外部 AI 工具
src/storage/sqlite-store.ts 零外部依赖的 SQLite 存储层