@TencentAI_News: 我们花了6个月解决一个问题:AI Agent在长时间会话中丢失上下文。最终构建并开源了一个Agent……
摘要
腾讯开源了 TencentDB-Agent Memory,这是一种面向AI Agent的符号短期记忆与分层长期记忆系统,可将Token使用量降低高达61%,并将角色一致性准确率从48%提升至76%。
查看缓存全文
缓存时间: 2026/05/15 02:56
我们用6个月攻一个问题:智能体在长会话中丢失上下文。最终构建并开源了一套智能体记忆系统。几点心得:在会话中间压缩陈旧上下文,将token用量降低61%;给智能体一张结构化任务地图(基于Mermaid),让它们在30步以上的工作流中不容易跑偏;人格一致性从48%提升到76%,得益于添加了专用人格记忆仓库。https://github.com/Tencent/TencentDB-Agent-Memory… 智能体记忆真的很难,我们也没有所有答案。欢迎深入讨论架构、基准测试、权衡取舍等。AMA @TencentDBAbxo2团队在此交流。— # Tencent/TencentDB-Agent-Memory 来源:https://github.com/Tencent/TencentDB-Agent-Memory ### 智能体记忆,人类创新。npm (https://www.npmjs.com/package/@tencentdb-agent-memory/memory-tencentdb) 许可证:MIT Node (https://nodejs.org/) OpenClaw (https://github.com/openclaw/openclaw) Hermes (https://hermes-agent.nousresearch.com/docs/) Discord (https://discord.gg/kDtHb5RW2) 亮点 · 概述 · 核心技术 · 特性 · 快速开始 English · 简体中文 — ## ✨ 亮点 > 腾讯云数据库智能体记忆 = 符号化短期记忆 + 分层长期记忆。 > > - 符号化短期记忆将繁重的工具日志卸载,并将其浓缩为紧凑的Mermaid符号,降低token用量并提升任务成功率。 > - 分层长期记忆将碎片化对话提炼为结构化的人物和场景,而非扁平的向量堆。与OpenClaw集成后,token用量降低高达61.38%,通过率相对提升51.52%,PersonaMem准确率从48%提升至76%。 | 记忆能力 | 基准测试 | OpenClaw成功率 | 启用插件 | 相对变化 | OpenClaw token数 | 启用插件token数 | 相对变化 | | :— | :— | :—: | :—: | :—: | :—: | :—: | :—: | | 短期 | 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个任务,以模拟真实世界长时段智能体的上下文累积压力。 — ## 概述 记忆不是让AI囤积一切——而是让人类不必重复自己。 实践中,我们不断向智能体重复解释相同的标准操作流程、项目背景、工具约定和输出格式。这些信息不应需要重复,也不应被不加区分地塞入上下文。腾讯云数据库智能体记忆帮助智能体学习你的工作流程、保留任务上下文并复用过往经验。我们反对暴力累积历史,也反对不可逆的有损摘要。相反,我们将记忆设计为分层系统:符号记忆应对任务内信息过载,记忆分层应对跨会话经验。 > 让智能体记住该记住的,让人专注于判断、创造和真正重要的工作。 — ## 核心技术:摒弃扁平存储,拥抱分层与符号化 我们的架构建立在两大支柱上:记忆分层和符号化记忆。两者共同确保智能体不仅仅是“记住更多”,而是“推理更好”。 ### 1. 记忆分层:异构存储的渐进式揭示 传统记忆系统将数据切碎并丢入扁平向量存储。回忆退化为跨断开碎片的盲目搜索,缺乏宏观指导。无论是长期知识、短期任务还是未来技能能力,记忆绝不应该是扁平的——其形成和回忆必须具有层次性。 腾讯云数据库智能体记忆采用分层作为统一架构范式: * 短期上下文分层。 底层归档原始工具输出(refs/*.md);中层提取步骤级摘要(jsonl);顶层将状态浓缩为轻量级Mermaid画布。智能体只需在上下文中关注顶层结构,出错时通过node_id向下钻取底层。 * 长期个性化分层。 取代扁平日志,构建语义金字塔:L0会话(原始对话)→ L1原子(原子事实)→ L2场景(场景块)→ L3人物(用户画像)。人物层承载日常偏好;当细节重要时,系统向下钻取到原子。 * 技能生成分层。 分层同样适用于动作。中层从底层执行轨迹(会话)中推导出常见解决方案模式(场景),顶层提炼出可复用的技能或标准操作流程(人物)。 异构存储与渐进式揭示。 双存储层策略支撑该架构。底层(事实、日志、轨迹)持久化到数据库,实现强健的全文本检索;顶层(人物、场景、画布)以人类可读的Markdown文件存储,实现高信息密度和白盒检查。底层保留证据;顶层保留结构。 全程可追溯与无损恢复。 压缩往往牺牲可追溯性。腾讯云数据库智能体记忆通过维护从高层抽象到真实证据的确定性路径,避免不可逆压缩。无论是卸载的错误日志还是提炼的用户偏好,系统保证完整的向下钻取路径:“顶层符号(人物/画布)→ 中层索引(场景/jsonl)→ 底层原始文本(L0会话/refs)”。 ### 2. 符号化记忆:用最少符号表达最大语义(Mermaid画布) 在长任务中,最大的token消耗者是冗长的中间日志(搜索结果、代码、错误追踪)。为解决此问题,我们结合上下文卸载与符号化记忆: * Mermaid符号图。 我们使用高密度的Mermaid语法编码任务状态转换,而非冗长文本或扁平JSON——对LLM足够精确,对人类足够简洁。 * 历史卸载。 完整工具日志被卸载到外部文件;上下文中仅保留轻量级Mermaid任务地图。 * node_id追踪。 智能体在符号图上推理;要验证细节,通过node_id搜索并立即检索完整原始文本——既降低token成本,又保留完整可追溯性。 mermaid graph LR Log["冗长日志(数十万token)"] -->|"1. 卸载全文"| FS[("外部文件系统(refs/*.md)")] Log -->|"2. 提取关系"| MMD["Mermaid画布(含node_id)"] MMD -->|"3. 轻量注入"| Agent(("智能体上下文(数百token)")) 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 × 智能体记忆 Hermes × 智能体记忆 — ### 1. OpenClaw ### 1.1 安装插件 bash openclaw plugins install @tencentdb-agent-memory/memory-tencentdb openclaw gateway restart ### 1.2 零配置启用 默认使用本地 SQLite + sqlite-vec 后端。 jsonc // ~/.openclaw/openclaw.json { "memory-tencentdb": { "enabled": true } } 启用后,腾讯云数据库智能体记忆自动处理会话捕获、记忆提取、场景聚合、人物生成以及下一轮对话前的回忆。 ### 1.3 启用短期压缩(可选,需版本 ≥ 0.3.4) jsonc { "memory-tencentdb": { "config": { "offload": { "enabled": true } } } } #### 步骤1——在插件配置中注册插槽 添加 slots 字段,让OpenClaw将上下文卸载请求路由到此插件: jsonc { "plugins": { "slots": { "contextEngine": "openclaw-context-offload" } } } #### 步骤2——应用运行时补丁 为获得最佳效果,运行以下补丁脚本。它会钩住 after-tool-call 消息,使其能被正确卸载和恢复: bash 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) 智能体。你可以通过一条命令启动启用了记忆的Hermes: bash # ============ 配置参数 ============ # MODEL_API_KEY LLM API密钥(必填)——替换为你自己的凭证 # MODEL_BASE_URL LLM端点,默认为腾讯云LKE(大模型知识引擎) # MODEL_NAME 模型名称,默认为DeepSeek-V3.2 # MODEL_PROVIDER 提供商类型:"custom"适用于任何兼容OpenAI的端点 MODEL_API_KEY="你的-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网关) # -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="你的-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 # 验证网关 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 | [] | 全局模式排除特定智能体(如 bench-judge-*) | | capture.l0l1RetentionDays | 0 | L0/L1文件的本地保留天数;0表示从不清理 | | offload.mildOffloadRatio | 0.5 | 温和压缩触发比例(相对于上下文窗口) | | offload.aggressiveCompressRatio | 0.85 | 激进压缩触发比例 | | offload.mmdMaxTokenRatio | 0.2 | MMD注入的token预算比例 | | bm25.language | "zh" | 分词器语言:zh(jieba) / en | 🔴 三级 · 完整参数参考(运维/自定义模型/远程嵌入) 所有字段、类型和约束详见 openclaw.plugin.json。 - embedding.* — 远程嵌入服务(兼容OpenAI的API) - llm.* — 独立LLM模式(绕过OpenClaw内置模型,通过指定API运行L1/L2/L3) - offload.backendUrl / backendApiKey — 将L1/L1.5/L2/L4流程卸载到后端服务 - report.* — 指标上报 — ## 🤔 特性 ### 1. 宏观画像 + 微观事实:统一的向下钻取机制 压缩的最大风险是节省token却丢失证据。因此,腾讯云数据库智能体记忆不会将历史折叠成不可逆的摘要——它保留了从高层抽象到真实证据的清晰路径。 | 问题类型 | 首先查看 | 向下钻取 | | :— | :— | :— | | 日常偏好、语气、长期目标 | L3人物 / L2场景 | 需要事实时钻取L1原子 / L0会话 | | 特定事实、日期、项目细节 | L1原子 / L0会话 | 扩大时间范围,或当结果稀疏时回退到语义回忆 | | 继续进行中的长任务 | 活跃的Mermaid任务画布 | 摘要缺少细节时检查JSONL,然后通过refs/*.md查看原始文本 | | 恢复历史任务 | 元数据任务条目 | 打开Mermaid画布 → 定位node_id → 追踪result_ref | 上层承载判断和方向;下层承载证据和精度。短期压缩和长期记忆形成一个闭环:可折叠可展开,既抽象又可审计。 ### 2. 白盒可调试性:记忆不是黑盒 大多数记忆系统在此方面不足:当回忆出错时,你只能看到一堆向量分数,无法判断问题所在。腾讯云数据库智能体记忆将关键中间产物保留为可读文件: - L2场景块是纯Markdown——打开即可检查。 - L3人物存放在persona.md中,并可追溯至产生它的人物。 - 短期任务画布是Mermaid——人类和智能体均可阅读。 - 原始载荷、摘要、节点通过result_ref和node_id链接。 调试不再是探测不透明数据库——它变成了沿着“人物→场景→原子→会话”链的确定性遍历,直到根本原因浮出水面。 所有这些分层记忆工件都位于~/.openclaw/memory-tdai/下——欢迎打开目录,自行检查每一层。 ### 3. 生产就绪的工程:不是演示 | 能力 | 描述 | | :— | :— | | OpenClaw插件 | 安装后自动捕获、提取和回忆记忆 | | Hermes网关适配器 | TdaiCore + HostAdapter,与宿主框架解耦 | | 本地后端 | SQLite + sqlite-vec,开箱即用 | | 混合检索 | BM25 + 向量 + RRF —— 同时支持关键词和语义回忆 | | 智能体工具 | tdai_memory_search / tdai_conversation_search | — ## 文档 | 文档 | 内容 | | :— | :— | | scripts/README.memory-tencentdb-ctl.md | 运维管理工具 | | CHANGELOG.md | 发布说明和版本历史
相似文章
@servasyy_ai: https://x.com/servasyy_ai/status/2057463627255570937
腾讯云数据库团队开源了 TencentDB Agent Memory,一个解决 AI Agent 长任务上下文退化问题的运行时系统,通过三层回溯与动态压缩机制将短期上下文压缩纳入记忆系统,并整合了长期记忆流水线,是 AI Agent 记忆系统从“数据库”走向“运行时”的标志性尝试。
@wsl8297: 用 AI Agent 跑复杂任务,最难受的往往不是模型不够强,而是对话一变长,上下文就开始爆仓。 你还得一遍遍补背景、重讲流程,再加上工具调用吐出来的冗余日志,Token 像开了口子一样往外流。 最近看到腾讯开源的 TencentDB A…
腾讯开源了 TencentDB Agent Memory,通过分层记忆管理(符号化短期记忆+分层长期记忆)解决AI Agent长对话上下文爆仓问题,实测Token消耗最高降低61%,任务通过率提升超50%。
@GoSailGlobal: 腾讯也下场了 做agent memory 代理记忆项目 开源链接: https://github.com/Tencent/TencentDB-Agent-Memory…
Tencent 开源了 TencentDB Agent Memory,一个采用符号化短期记忆和分层长期记忆的代理记忆项目,可显著降低 token 使用量并提升任务成功率。
@berryxia: Agent 记忆真是太特么卷了啊! 不得不说,这个赛道越多人加入越爽啊! Tencent AI团队花了整整6个月,就死磕一个问题:AI agent长会话里疯狂丢上下文。 他们最后把一套记忆系统做完,直接开源了。 我看完他们的分享,最大的感…
腾讯AI团队开源了Agent记忆系统,通过实时上下文压缩、Mermaid任务地图和Persona记忆三种方法,显著提升长对话中的token效率和agent一致性,token消耗降低61%,人格一致性从48%提升至76%。
TencentDB 的智能体内存非常适合压缩,但我不确定压缩就是全部问题
对比 TencentDB 的智能体内存(擅长压缩混乱的执行记录以节省 token)与 Memos 本地插件(专注于通过反馈循环将执行历史转化为可复用的习惯和长期学习)。