@GoSailGlobal: 腾讯也下场了 做agent memory 代理记忆项目 开源链接: https://github.com/Tencent/TencentDB-Agent-Memory…

X AI KOLs Timeline 工具

摘要

Tencent 开源了 TencentDB Agent Memory,一个采用符号化短期记忆和分层长期记忆的代理记忆项目,可显著降低 token 使用量并提升任务成功率。

腾讯也下场了 做agent memory 代理记忆项目 开源链接: https://github.com/Tencent/TencentDB-Agent-Memory…
查看原文
查看缓存全文

缓存时间: 2026/05/14 10:34

✨ 亮点

TencentDB Agent Memory = 符号化短期记忆 + 分层长期记忆。

  • 符号化短期记忆将繁重的工具日志卸载并压缩为紧凑的 Mermaid 符号,减少令牌消耗并提升任务成功率。
  • 分层长期记忆将碎片化的对话提炼为结构化的画像和场景,而非扁平向量堆。与 OpenClaw 集成后,令牌消耗最多降低 61.38%,通过率相对提高 51.52%,PersonaMem 准确率从 48% 提升至 76%
记忆能力基准OpenClaw 成功率启用插件后相对变化OpenClaw 令牌数启用插件后令牌数相对变化
短期WideSearch33%50%+51.52%221.31M85.64M−61.38%
短期SWE-bench58.4%64.2%+9.93%3474.1M2375.4M−33.09%
短期AA-LCR44.0%47.5%+7.95%112.0M77.3M−30.98%
长期PersonaMem48%76%+59%

以上结果基于连续长周期会话测量,而非单轮交互。例如,SWE-bench 每轮会话连续运行 50 个任务,以模拟真实长周期 agent 面临的上下文累积压力。


概述

记忆不是让 AI 囤积一切——而是避免人类反复重复自己。 实践中,我们不断向 Agent 重复解释相同的 SOP、项目背景、工具规则和输出格式。这些信息本无需重复,更不应该被不加区分地塞入上下文。

TencentDB Agent Memory 帮助 Agent 学习你的工作流程、保留任务上下文并复用过往经验。我们拒绝暴力的历史堆积和不可逆的有损摘要,而是将记忆设计为分层系统:符号化内存应对任务内的信息过载,内存分层应对跨会话的经验积累。

让 Agent 记住该记住的内容,让人类专注于判断、创造和真正重要的工作。


核心技术:摒弃平面存储,拥抱分层与符号化

我们的架构基于两大支柱:内存分层符号化内存。二者共同确保 Agent 不仅仅是“记得更多”,而是“推理更优”。

1. 内存分层:异构存储下的渐进式披露

传统记忆系统将数据切碎后倒入平面向量存储。回忆退化为在碎片中盲搜,缺乏宏观指引。无论是长期知识、短期任务还是未来技能,记忆都不应是扁平的——其形成和检索都必须分层。

TencentDB Agent Memory 采用分层作为统一的架构范式:

  • 短期上下文分层: 底层归档原始工具输出(refs/*.md);中层提取步骤级摘要(jsonl);顶层将状态浓缩为轻量化的 Mermaid 画布。Agent 在上下文中只需关注顶层结构,出错时通过 node_id 钻取到底层。
  • 长期个性化分层: 摒弃平面日志,构建语义金字塔:L0 对话(原始对话)→ L1 原子(原子事实)→ L2 场景(场景块)→ L3 画像(用户画像)。画像层承载日常偏好;当需要细节时,系统钻取到原子层。
  • 技能生成分层: 分层同样适用于动作。中层从底层执行轨迹(对话)中提取通用解决模式(场景),顶层提炼为可复用的技能或标准 SOP(画像)。

异构存储与渐进式披露。 双存储策略支撑这一架构:底层(事实、日志、轨迹)持久化到数据库,支持健壮的全文本检索;顶层(画像、场景、画布)存储为人类可读的 Markdown 文件,具有高信息密度和可白盒检查性。底层保留证据,顶层保留结构。

完整可追溯和可无损恢复。 压缩往往会牺牲可追溯性。TencentDB Agent Memory 通过维护从高层抽象到地面真实证据的确定性路径,避免不可逆压缩。无论是卸载的错误日志还是提炼的用户偏好,系统都保证完整的钻取路径:“顶层符号(画像/画布) → 中层索引(场景/jsonl) → 底层原始文本(L0 对话/refs)”。

2. 符号化内存:最少符号承载最大语义(Mermaid 画布)

在长任务中,最大的令牌消耗者是冗长的中间日志(搜索结果、代码、错误轨迹)。为此,我们将上下文卸载符号化内存结合:

  • Mermaid 符号图。 我们使用高密度的 Mermaid 语法编码任务状态转换——LLM 足以解析,人类也能阅读。
  • 历史卸载。 完整的工具日志被卸载到外部文件;上下文中仅保留轻量化的 Mermaid 任务图。
  • node_id 追溯。 Agent 在符号图上进行推理;需要验证细节时,通过 node_id 搜索即可立即获取完整原始文本——既降低了令牌成本,又保留了完整可追溯性。

mermaid graph LR Log["冗长日志(数十万令牌)"] -->|"1. 卸载全文"| FS[("外部文件系统 (refs/*.md)")] Log -->|"2. 提取关系"| MMD["Mermaid 画布(含 node_id)"] MMD -->|"3. 轻量注入"| Agent(("Agent 上下文(数百令牌)")) Agent -. "4. 通过 node_id 召回" .-> FS style Log fill:#f1f5f9,stroke:#94a3b8,stroke-dasharray: 5 5,color:#475569 style FS fill:#f8fafc,stroke:#cbd5e1,stroke-width:2px,color:#334155 style MMD fill:#eff6ff,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a style Agent fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#92400e


快速开始

🎬 演示

OpenClaw × Agent Memory | Hermes × Agent Memory


1. OpenClaw

1.1 安装插件

openclaw plugins install @tencentdb-agent-memory/memory-tencentdb  
openclaw gateway restart  

1.2 零配置启用

默认使用本地 SQLite + sqlite-vec 后端。

// ~/.openclaw/openclaw.json  
{  
  "memory-tencentdb": {  
    "enabled": true  
  }  
}  

启用后,TencentDB Agent Memory 自动处理对话捕获、记忆提取、场景聚合、画像生成以及下一轮之前的召回。

1.3 启用短期压缩(可选,需版本 ≥ 0.3.4)

{  
  "memory-tencentdb": {  
    "config": {  
      "offload": {  
        "enabled": true  
      }  
    }  
  }  
}  

步骤 1 — 在插件配置中注册插槽

添加 slots 字段,使 OpenClaw 将上下文卸载请求路由到此插件:

{  
  "plugins": {  
    "slots": {  
      "contextEngine": "openclaw-context-offload"  
    }  
  }  
}  

步骤 2 — 应用运行时补丁

为获得最佳效果,请运行以下补丁脚本。它会 Hook after-tool-call 消息,使其能被正确卸载和恢复:

bash scripts/openclaw-after-tool-call-messages.patch.sh  

💡 每个 OpenClaw 安装只需应用一次补丁。升级 OpenClaw 后,重新运行脚本以重新应用。

2. Hermes(Docker,需版本 ≥ 0.3.4)

除了 OpenClaw,此插件还支持 Hermes (https://github.com/NousResearch/hermes-agent) Agent。你可以通过一条命令启动启用记忆的 Hermes:

# ============ 配置参数 ============  
# MODEL_API_KEY LLM API 密钥(必填)——请替换为你自己的凭证  
# MODEL_BASE_URL LLM 端点,默认为腾讯云 LKE(大模型知识引擎)  
# MODEL_NAME 模型名称,默认为 DeepSeek-V3.2  
# MODEL_PROVIDER 提供商类型:"custom" 适用于任何兼容 OpenAI 的端点  
MODEL_API_KEY="your-api-key"  
MODEL_BASE_URL="https://api.lkeap.cloud.tencent.com/v1"  
MODEL_NAME="deepseek-v3.2"  
MODEL_PROVIDER="custom"  

# ============ docker run 参数 ============  
# -d 后台运行容器  
# --name hermes-memory 容器名称,便于后续 docker exec / logs / stop  
# --restart unless-stopped 崩溃或主机重启时自动重启  
# -p 8420:8420 主机端口 ↔ 容器端口(Hermes Gateway)  
# -e MODEL_* 将上述配置参数注入为环境变量  
# -v hermes_data:/opt/data 将记忆数据持久化到命名卷(重启后存活)  

# 构建  
docker build -f Dockerfile.hermes -t hermes-memory .  

# 运行  
docker run -d \  
  --name hermes-memory \  
  --restart unless-stopped \  
  -p 8420:8420 \  
  -e MODEL_API_KEY="your-api-key" \  
  -e MODEL_BASE_URL="https://api.lkeap.cloud.tencent.com/v1" \  
  -e MODEL_NAME="deepseek-v3.2" \  
  -e MODEL_PROVIDER="custom" \  
  -v hermes_data:/opt/data \  
  hermes-memory  

# 验证 Gateway  
curl http://localhost:8420/health  

# 进入 Hermes 交互式 Shell  
docker exec -it hermes-memory hermes  

镜像默认搭载腾讯云 DeepSeek-V3.2。如果使用该模型,可省略 MODEL_BASE_URL / MODEL_NAME / MODEL_PROVIDER,仅传入 MODEL_API_KEY


🔧 可配置参数

每个字段都有合理的默认值——零配置即可运行。 当你想调优时,根据深入程度逐层剥离。

🟢 第一级 · 日常调优(覆盖 90% 使用场景)

字段默认值描述
storeBackend"sqlite"存储后端:sqlite
recall.strategy"hybrid"召回策略:keyword / embedding / hybrid(RRF 融合,推荐)
recall.maxResults5每次召回返回的项目数
pipeline.everyNConversations5每 N 轮触发一次 L1 记忆提取
extraction.maxMemoriesPerSession20每次 L1 提取的最大记忆数
persona.triggerEveryN50每新增 N 条记忆生成一次用户画像
offload.enabledfalse是否启用短期压缩

🟡 第二级 · 高级调优(长任务/长会话)

字段默认值描述
pipeline.enableWarmuptrue预热:新会话从第 1 轮开始触发,每次翻倍直到 N(1→2→4→…)
pipeline.l1IdleTimeoutSeconds600用户空闲超过此秒数时触发 L1
pipeline.l2MinIntervalSeconds900同一会话中两次 L2 之间的最小间隔
recall.timeoutMs5000召回超时;超时后跳过注入,不阻塞对话
extraction.enableDeduptrueL1 向量去重/冲突检测
capture.excludeAgents[]排除特定 agent 的 glob 模式(如 bench-judge-*
capture.l0l1RetentionDays0L0/L1 文件的本地保留天数;0 表示从不清理
offload.mildOffloadRatio0.5温和压缩触发比例(相对于上下文窗口)
offload.aggressiveCompressRatio0.85激进压缩触发比例
offload.mmdMaxTokenRatio0.2MMD 注入的令牌预算比例
bm25.language"zh"分词器语言:zh(jieba)/ en

🔴 第三级 · 完整参数参考(运维/自定义模型/远程 Embedding)

所有字段、类型和约束详见 openclaw.plugin.json

  • embedding.* — 远程 embedding 服务(兼容 OpenAI API)
  • llm.* — 独立 LLM 模式(绕过 OpenClaw 内置模型,用指定 API 执行 L1/L2/L3)
  • offload.backendUrl / backendApiKey — 将 L1/L1.5/L2/L4 流程卸载到后端服务
  • report.* — 指标上报

🤔 功能

1. 宏观画像 + 微观事实:统一的钻取机制

压缩的最大风险是以丢失证据为代价节省令牌。因此 TencentDB Agent Memory 不会将历史压缩为不可逆的摘要——它保留了从高层抽象回到地面真实证据的清晰路径。

问题类型首先查看钻取到
日常偏好、语气、长期目标L3 画像 / L2 场景需要事实时钻取到 L1 原子 / L0 对话
具体事实、日期、项目细节L1 原子 / L0 对话扩大时间范围,或结果稀疏时回退到语义召回
继续长时间运行的任务活跃的 Mermaid 任务画布当摘要缺乏细节时检查 JSONL,然后 refs/*.md 获取原始文本
恢复历史任务元数据任务条目打开 Mermaid 画布 → 定位 node_id → 追踪 result_ref

上层承载判断和方向,下层承载证据和精度。短期压缩与长期记忆形成一个闭环:可折叠可展开,既抽象又可审计。

2. 白盒可调试性:记忆不是黑盒

大多数记忆系统在此方面不足:当召回错误时,你看到的只是一堆向量分数,无从得知问题所在。TencentDB Agent Memory 将关键中间产物保留为可读文件:

  • L2 场景块是纯 Markdown——打开即可检查。
  • L3 画像位于 persona.md,并可追溯回生成它的场景。
  • 短期任务画布是 Mermaid——人类和 Agent 均可阅读。
  • 原始载荷、摘要和节点通过 result_refnode_id 互相链接。
    调试不再是探查不透明的数据库——而是沿着“画像 → 场景 → 原子 → 对话”链进行确定性追踪,直至根因浮出水面。

所有这些分层记忆产物都位于 ~/.openclaw/memory-tdai/ 下——随时打开目录,自己检查每一层。

3. 生产级工程:不止是演示

能力描述
OpenClaw 插件安装后自动捕获、提取和召回记忆
Hermes Gateway 适配器TdaiCore + HostAdapter,与宿主框架解耦
本地后端SQLite + sqlite-vec,开箱即用
混合检索BM25 + 向量 + RRF —— 同时支持关键词和语义召回
Agent 工具tdai_memory_search / tdai_conversation_search

文档

文档内容
scripts/README.memory-tencentdb-ctl.md运维管理工具
CHANGELOG.md发布说明和版本历史
openclaw.plugin.jsonOpenClaw 插件清单和配置模式

社区与贡献

我们欢迎各种形式的贡献——错误报告、功能建议、文档修正、基准复现、生态集成,或直接提交 Pull Request。Agent 记忆远未解决,我们期待与你一同探索。

  • 🐞 发现了 bug 或有问题? 在 GitHub Issues (https://github.com/Tencent/TencentDB-Agent-Memory/issues) 新建 issue —— 我们会在 24 小时内回复。
  • 💡 有想法要分享? 同样欢迎通过 issue 提出。

相似文章

@berryxia: Agent 记忆真是太特么卷了啊! 不得不说,这个赛道越多人加入越爽啊! Tencent AI团队花了整整6个月,就死磕一个问题:AI agent长会话里疯狂丢上下文。 他们最后把一套记忆系统做完,直接开源了。 我看完他们的分享,最大的感…

X AI KOLs Timeline

腾讯AI团队开源了Agent记忆系统,通过实时上下文压缩、Mermaid任务地图和Persona记忆三种方法,显著提升长对话中的token效率和agent一致性,token消耗降低61%,人格一致性从48%提升至76%。

rohitg00/agentmemory

GitHub Trending (daily)

agentmemory 是一个开源的持久化记忆层,专为 AI 编程智能体(Claude Code、Cursor、Gemini CLI、Codex CLI 等)设计。它通过知识图谱、置信度评分和混合搜索技术,借助 MCP、Hooks 或 REST API,为智能体提供跨会话的长期记忆能力。该项目基于 iii 引擎构建,无需外部数据库,提供 51 个 MCP 工具。