@GoSailGlobal: 腾讯也下场了 做agent memory 代理记忆项目 开源链接: https://github.com/Tencent/TencentDB-Agent-Memory…
摘要
Tencent 开源了 TencentDB Agent Memory,一个采用符号化短期记忆和分层长期记忆的代理记忆项目,可显著降低 token 使用量并提升任务成功率。
查看缓存全文
缓存时间: 2026/05/14 10:34
✨ 亮点
TencentDB Agent Memory = 符号化短期记忆 + 分层长期记忆。
- 符号化短期记忆将繁重的工具日志卸载并压缩为紧凑的 Mermaid 符号,减少令牌消耗并提升任务成功率。
- 分层长期记忆将碎片化的对话提炼为结构化的画像和场景,而非扁平向量堆。与 OpenClaw 集成后,令牌消耗最多降低 61.38%,通过率相对提高 51.52%,PersonaMem 准确率从 48% 提升至 76%。
| 记忆能力 | 基准 | OpenClaw 成功率 | 启用插件后 | 相对变化 | OpenClaw 令牌数 | 启用插件后令牌数 | 相对变化 |
|---|---|---|---|---|---|---|---|
| 短期 | WideSearch | 33% | 50% | +51.52% | 221.31M | 85.64M | −61.38% |
| 短期 | SWE-bench | 58.4% | 64.2% | +9.93% | 3474.1M | 2375.4M | −33.09% |
| 短期 | AA-LCR | 44.0% | 47.5% | +7.95% | 112.0M | 77.3M | −30.98% |
| 长期 | PersonaMem | 48% | 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.maxResults | 5 | 每次召回返回的项目数 |
pipeline.everyNConversations | 5 | 每 N 轮触发一次 L1 记忆提取 |
extraction.maxMemoriesPerSession | 20 | 每次 L1 提取的最大记忆数 |
persona.triggerEveryN | 50 | 每新增 N 条记忆生成一次用户画像 |
offload.enabled | false | 是否启用短期压缩 |
🟡 第二级 · 高级调优(长任务/长会话)
| 字段 | 默认值 | 描述 |
|---|---|---|
pipeline.enableWarmup | true | 预热:新会话从第 1 轮开始触发,每次翻倍直到 N(1→2→4→…) |
pipeline.l1IdleTimeoutSeconds | 600 | 用户空闲超过此秒数时触发 L1 |
pipeline.l2MinIntervalSeconds | 900 | 同一会话中两次 L2 之间的最小间隔 |
recall.timeoutMs | 5000 | 召回超时;超时后跳过注入,不阻塞对话 |
extraction.enableDedup | true | L1 向量去重/冲突检测 |
capture.excludeAgents | [] | 排除特定 agent 的 glob 模式(如 bench-judge-*) |
capture.l0l1RetentionDays | 0 | L0/L1 文件的本地保留天数;0 表示从不清理 |
offload.mildOffloadRatio | 0.5 | 温和压缩触发比例(相对于上下文窗口) |
offload.aggressiveCompressRatio | 0.85 | 激进压缩触发比例 |
offload.mmdMaxTokenRatio | 0.2 | MMD 注入的令牌预算比例 |
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_ref和node_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.json | OpenClaw 插件清单和配置模式 |
社区与贡献
我们欢迎各种形式的贡献——错误报告、功能建议、文档修正、基准复现、生态集成,或直接提交 Pull Request。Agent 记忆远未解决,我们期待与你一同探索。
- 🐞 发现了 bug 或有问题? 在 GitHub Issues (https://github.com/Tencent/TencentDB-Agent-Memory/issues) 新建 issue —— 我们会在 24 小时内回复。
- 💡 有想法要分享? 同样欢迎通过 issue 提出。
相似文章
@berryxia: Agent 记忆真是太特么卷了啊! 不得不说,这个赛道越多人加入越爽啊! Tencent AI团队花了整整6个月,就死磕一个问题:AI agent长会话里疯狂丢上下文。 他们最后把一套记忆系统做完,直接开源了。 我看完他们的分享,最大的感…
腾讯AI团队开源了Agent记忆系统,通过实时上下文压缩、Mermaid任务地图和Persona记忆三种方法,显著提升长对话中的token效率和agent一致性,token消耗降低61%,人格一致性从48%提升至76%。
@TencentAI_News: 我们花了6个月解决一个问题:AI Agent在长时间会话中丢失上下文。最终构建并开源了一个Agent……
腾讯开源了 TencentDB-Agent Memory,这是一种面向AI Agent的符号短期记忆与分层长期记忆系统,可将Token使用量降低高达61%,并将角色一致性准确率从48%提升至76%。
@QingQ77: 给多个 AI 编码 agent 共享记忆和任务状态,单 Go 二进制跑本地 SQLite,搜索混搭关键词和语义。 https://github.com/mathomhaus/guild… Guild 是个 Go 单二进制 MCP 服务器,…
Guild 是一个基于 Go 的单二进制 MCP 服务器,支持多个 AI 编码 agent 共享记忆、任务状态和本地 SQLite 存储,结合关键词与语义搜索。
rohitg00/agentmemory
agentmemory 是一个开源的持久化记忆层,专为 AI 编程智能体(Claude Code、Cursor、Gemini CLI、Codex CLI 等)设计。它通过知识图谱、置信度评分和混合搜索技术,借助 MCP、Hooks 或 REST API,为智能体提供跨会话的长期记忆能力。该项目基于 iii 引擎构建,无需外部数据库,提供 51 个 MCP 工具。
@elliotchen100: 锤这篇是我最近看到讲 Agent 记忆讲得最清楚的中文文章。 利益相关,文章里那个 EverOS 就是我们 @EverMind 做的,补三个点: 1. 那个 93.05% 的 LoCoMo 准确率不是论文宣传数字,是开源仓库里就能跑的脚本…
该文章讨论了AI Agent记忆的实现,介绍了EverOS系统的LoCoMo准确率93.05%可复现,及Skill自进化机制,并预告月底有新酷炫产品上线。