腾讯云数据库代理内存:减少 token 使用量,提升通过率和准确率!
亮点腾讯云数据库代理内存TencentDB Agent Memory 符号短期记忆 分层长期记忆。符号短期记忆能够卸载繁重的工具日志并将其浓缩为紧凑的 Mermaid 符号减少 token 使用量提高任务成功率。分层长期记忆可将碎片化的对话提炼为结构化的角色和场景而非扁平的向量堆。与 OpenClaw 集成时它最多可减少 61.38% 的 token 使用量相对提高 51.52% 的通过率并将 PersonaMem 准确率从 48% 提升至 76%。以下是记忆能力基准测试结果记忆能力基准测试OpenClaw 带插件成功率相对变化OpenClaw 带插件 token 数相对变化短期 WideSearch33%51.52%221.31M-61.38%短期 SWE - bench58.4%9.93%3474.1M-33.09%短期 AA - LCR44.0%7.95%112.0M-30.98%长期 PersonaMem48%59%——这些结果是在连续的长周期会话中测量得出的而非孤立的回合。例如SWE - bench 每个会话运行 50 个连续任务以模拟现实世界中长周期代理的上下文累积压力。概述记忆并非是将所有信息都囤积在人工智能中而是要让人类无需重复说明。在实际应用中我们常常需要不断向代理重新解释相同的标准操作程序SOP、项目背景、工具约定和输出格式。这类信息不应重复提供也不应不加区分地全部放入上下文。腾讯云数据库代理内存可帮助代理学习你的工作流程保留任务上下文并复用过往经验。我们既不采用暴力的历史累积方式也不使用不可逆的有损摘要方法而是将记忆设计为分层系统符号记忆用于应对任务中的信息过载记忆分层用于处理跨会话经验。让代理记住该记住的信息这样人们就可以专注于判断、创造和真正重要的工作。核心技术拒绝扁平存储采用分层与符号化我们的架构基于两大支柱记忆分层和符号记忆。它们共同确保代理不仅能“记住更多”还能“更好地推理”。记忆分层采用异构存储的渐进式披露传统的记忆系统会将数据分割成碎片然后存入扁平的向量存储中。回忆过程就变成了在不相关的碎片中盲目搜索缺乏宏观层面的指引。无论是长期知识、短期任务还是未来的技能能力记忆都不应是扁平的其形成和回忆过程都必须具有层次性。腾讯云数据库代理内存采用分层作为统一的架构范式短期上下文分层底层存档原始工具输出refs/*.md中层提取步骤级摘要jsonl顶层将状态浓缩为轻量级的 Mermaid 画布。代理在上下文中只需关注顶层结构出现错误时可通过 node_id 深入到下层。长期个性化分层我们构建了一个语义金字塔而非扁平的日志L0 对话原始对话→ L1 原子原子事实→ L2 场景场景块→ L3 角色用户画像。角色层承载日常偏好只有在需要细节时系统才会深入到原子层。技能生成分层分层同样适用于行动。中层从底层执行轨迹对话中推导出通用解决方案模式场景顶层提炼出可复用的技能或标准 SOP角色。异构存储和渐进式披露这种架构采用双层存储策略。底层事实、日志、轨迹存储在数据库中以实现强大的全文检索顶层角色、场景、画布以人类可读的 Markdown 文件形式存储以实现高信息密度和白盒检查。下层保留证据上层保留结构。完全可追溯性和无损恢复压缩通常会牺牲可追溯性。腾讯云数据库代理内存通过维护从高层抽象到真实证据的确定性路径避免了不可逆的压缩。无论是卸载的错误日志还是提炼的用户偏好系统都能保证完整的追溯路径“顶层符号角色 / 画布→ 中层索引场景 / jsonl→ 底层原始文本L0 对话 / refs”。符号记忆用最少符号承载最大语义Mermaid 画布在长任务中冗长的中间日志搜索结果、代码、错误轨迹是消耗 token 的大户。为解决这一问题我们将上下文卸载与符号记忆相结合Mermaid 符号图。我们不使用冗长的散文或扁平的 JSON而是用高密度的 Mermaid 语法对任务状态转换进行编码既精确到足以让大语言模型LLM解析又简洁到便于人类阅读。历史卸载完整的工具日志被卸载到外部文件上下文中仅保留轻量级的 Mermaid 任务地图。node_id 追踪代理基于符号图进行推理若要验证某个细节可通过搜索 node_id 立即检索到完整的原始文本在减少 token 成本的同时保留完全可追溯性。快速开始 演示视频OpenClaw_eg.mp4、Hermes_eg.mp4涉及 OpenClaw × 代理内存、Hermes × 代理内存。1. OpenClaw安装插件openclaw plugins install tencentdb - agent - memory/memory - tencentdbopenclaw gateway restart请使用原生的 OpenClaw 命令升级插件这种方式可防止因语义版本范围问题导致插件被禁用。openclaw plugins update tencentdb - agent - memory/memory - tencentdb零配置启用默认使用本地 SQLite sqlite - vec 后端。在 ~/.openclaw/openclaw.json 文件中添加以下内容{memory - tencentdb: {enabled: true}}启用后腾讯云数据库代理内存会自动处理对话捕获、记忆提取、场景聚合、角色生成并在下次对话前进行回忆。启用短期压缩可选需版本 ≥ 0.3.4{memory - tencentdb: {config: {offload: {enabled: true}}}}步骤 1在插件配置中注册插槽。添加 slots 字段使 OpenClaw 将上下文卸载请求路由到该插件{plugins: {slots: {contextEngine: memory - tencentdb}}}步骤 2应用运行时补丁。为获得最佳效果请运行以下补丁脚本。该脚本会在工具调用消息之后进行挂钩确保它们能被正确卸载和恢复bash scripts/openclaw - after - tool - call - messages.patch.sh 每个 OpenClaw 安装只需应用一次补丁。升级 OpenClaw 后重新运行脚本以重新应用。2. Hermes除了 OpenClaw该插件还支持 Hermes 代理。可根据部署场景选择安装路径从头开始启动支持内存的 Hermes使用 Docker 方式2.A为现有的 Hermes 安装添加内存功能采用插件方式2.B2.A Docker全新安装需版本 ≥ 0.3.4Docker 镜像将 hermes - agent 和 memory_tencentdb 提供程序捆绑在一起。网关监听端口 :8420# 配置参数MODEL_API_KEYyour - api - key # LLM API 密钥必填请替换为你自己的凭证MODEL_BASE_URLhttps://api.lkeap.cloud.tencent.com/v1 # LLM 端点默认为腾讯云大模型知识引擎LKEMODEL_NAMEdeepseek - v3.2 # 模型名称默认为 DeepSeek - V3.2MODEL_PROVIDERcustom # 提供程序类型“custom” 适用于任何兼容 OpenAI 的端点# Docker 运行标志docker run - d \ --name hermes - memory \ --restart unless - stopped \ - p 8420:8420 \ - e MODEL_API_KEYyour - api - key \ - e MODEL_BASE_URLhttps://api.lkeap.cloud.tencent.com/v1 \ - e MODEL_NAMEdeepseek - v3.2 \ - e MODEL_PROVIDERcustom \ - v hermes_data:/opt/data \ hermes - memory# 验证网关curl http://localhost:8420/health# 进入 Hermes 交互式 shelldocker exec - it hermes - memory hermes该镜像默认使用腾讯云 DeepSeek - V3.2 模型。若使用此模型可省略 MODEL_BASE_URL、MODEL_NAME 和 MODEL_PROVIDER仅传递 MODEL_API_KEY 即可。2.B 附加到现有 Hermes不使用 Docker若主机上已安装 hermes - agent只想添加内存功能则无需使用 Docker 镜像。下载插件包到统一目录mkdir - p ~/.memory - tencentdbTEMP_DIR$(mktemp - d)cd $TEMP_DIRnpm init - y --silentnpm install tencentdb - agent - memory/memory - tencentdblatest --omitdevcp - r node_modules/tencentdb - agent - memory/memory - tencentdb \ ~/.memory - tencentdb/tdai - memory - openclaw - pluginrm - rf $TEMP_DIR安装网关依赖项cd ~/.memory - tencentdb/tdai - memory - openclaw - pluginnpm install --omitdevnpm install tsx链接到 Hermes 插件目录rm - rf ~/.hermes/hermes - agent/plugins/memory/memory_tencentdbln - sf ~/.memory - tencentdb/tdai - memory - openclaw - plugin/hermes - plugin/memory/memory_tencentdb \ ~/.hermes/hermes - agent/plugins/memory/memory_tencentdb目录名称必须为 memory_tencentdb使用下划线因为 Hermes 将其用作提供程序键。memory - tencentdb使用连字符仅为配置级别的别名不能用作目录名称。在 ~/.hermes/config.yaml 中声明提供程序memory:provider: memory_tencentdb配置网关环境变量编辑 ~/.hermes/.env 文件并添加以下内容MEMORY_TENCENTDB_GATEWAY_CMDsh - c cd ~/.memory - tencentdb/tdai - memory - openclaw - plugin exec npx tsx src/gateway/server.tsMEMORY_TENCENTDB_GATEWAY_HOST127.0.0.1MEMORY_TENCENTDB_GATEWAY_PORT8420根据需要添加 LLM 凭证网关实际读取 TDAI_LLM_* 变量TDAI_LLM_API_KEYsk - your - api - key - hereTDAI_LLM_BASE_URLhttps://api.openai.com/v1TDAI_LLM_MODELgpt - 4o或者使用 ~/.memory - tencentdb/memory - tdai/tdai - gateway.json 中的网关配置文件{llm: {baseUrl: https://your - api - endpoint/v1,apiKey: your - api - key,model: your - model - name}}启动网关二选一对话自动发现推荐零配置无需手动启动网关只需开始与 Hermes 对话。提供程序会自动检测 ~/.memory - tencentdb/tdai - memory - openclaw - plugin/src/gateway/server.ts并在第一次对话时通过 Popen() 启动它。初始对话可能会有轻微延迟。手动运行提前启动独立的网关进程cd ~/.memory - tencentdb/tdai - memory - openclaw - pluginnpx tsx src/gateway/server.ts验证curl http://127.0.0.1:8420/health # 应返回 {status:ok} 或 {status:degraded}如需完整的提供程序参考环境变量、故障排除、LLM 工具模式、监控行为请参阅 hermes - plugin/memory/memory_tencentdb/README.md。在调整监控或断路器默认值之前请先阅读该文档。网关安全可选Hermes 网关监听端口 :8420并暴露捕获、搜索和回忆的 HTTP 端点。有两个可选开关可将其从“开放的本地侧车”转变为“经过身份验证的网络服务”。两者默认均为关闭状态以确保现有部署不受影响。字段环境变量默认值描述server.apiKeyTDAI_GATEWAY_API_KEY未设置当设置该值时除 GET /health 外的每个路由都需要 Authorization: Bearer 头缺少或错误的 token 将返回 HTTP 401。比较操作是常量时间的。server.corsOriginsTDAI_CORS_ORIGINS逗号分隔[]CORS 允许列表。空列表不会发出 Access - Control - Allow - * 头浏览器将阻止所有跨域请求。仅在本地开发时使用 [*]。若未设置 apiKey网关启动时会打印警告信息。若网关绑定到非回环主机如 0.0.0.0且未设置 apiKey则会发出更明显的警告。客户端使用 Bearer token 调用受保护的路由curl - H Authorization: Bearer $TDAI_GATEWAY_API_KEY \ - H Content - Type: application/json \ - d {query:...,session_key:...} \ http://127.0.0.1:8420/recallGET /health 无需 token 即可访问以便编排器探测如 Docker 健康检查、Kubernetes 存活检查正常工作。**Hermes 插件端**Hermes 的 memory_tencentdb 插件是网关的客户端。若要使其与启用了身份验证的网关通信请设置export MEMORY_TENCENTDB_GATEWAY_API_KEY插件随后会在发送给网关的每个请求中添加 Authorization: Bearer 头。若未设置该变量插件将不发送身份验证头这与网关的旧默认设置一致适用于未启用 TDAI_GATEWAY_API_KEY 的网关。重要提示插件仅处理客户端部分。网关是否实际执行 Bearer 检查由网关端TDAI_GATEWAY_API_KEY / server.apiKey决定。需在两端配置相同的密钥因为插件不会传播密钥网关可能由 Docker、systemd 或其他插件无法控制的方式启动。若未设置 MEMORY_TENCENTDB_GATEWAY_API_KEY插件还会将 TDAI_GATEWAY_API_KEY 作为备用这在两个进程共享环境文件且运维人员只想设置一个变量名时很方便。网关从不读取 MEMORY_TENCENTDB_GATEWAY_API_KEY该名称仅在插件端使用。可配置参数每个字段都有合理的默认值无需配置即可运行。若需要调整可根据需求深入不同层级进行设置。 一级日常调整涵盖 90% 的用例字段默认值描述timezonesystem用户/LLM 可见时间戳的时区system遵循进程时区/ IANA 名称如 Asia/Shanghai/ 偏移字符串如 08:00storeBackendsqlite存储后端sqliterecall.strategyhybrid回忆策略keyword / embedding / hybridRRF 融合推荐recall.maxResults5每次回忆返回的项目数量recall.maxCharsPerMemory0一次回忆的 L1 记忆注入的最大字符数0 表示禁用此限制recall.maxTotalRecallChars0自动回忆的 L1 记忆的总字符预算0 表示禁用此限制pipeline.everyNConversations5每 N 轮对话触发一次 L1 记忆提取extraction.maxMemoriesPerSession20每次 L1 处理提取的最大记忆数persona.triggerEveryN50每 N 个新记忆生成一次用户角色offload.enabledfalse是否启用短期压缩 二级高级调整长任务/长会话字段默认值描述pipeline.enableWarmuptrue预热新会话从第 1 轮开始触发每次翻倍直至达到 N1→2→4→…pipeline.l1IdleTimeoutSeconds600用户闲置此秒数后触发 L1 处理pipeline.l2MinIntervalSeconds900同一会话中两次 L2 处理的最小间隔时间recall.timeoutMs5000回忆超时时间超时后跳过注入不阻塞对话extraction.enableDeduptrueL1 向量去重/冲突检测capture.excludeAgents[]排除特定代理的全局模式如 bench - judge - *capture.l0l1RetentionDays0L0 / L1 文件的本地保留天数0 表示永不清理offload.mildOffloadRatio0.5轻度压缩触发比例上下文窗口的比例offload.aggressiveCompressRatio0.85激进压缩触发比例offload.mmdMaxTokenRatio0.2MMD 注入的 token 预算比例bm25.languagezh分词器语言zh结巴分词/ en 三级完整参数参考运维/自定义模型/远程嵌入所有字段、类型和约束请参阅 openclaw.plugin.json。**embedding.*远程嵌入服务兼容 OpenAI 的 APIembedding.sendDimensions默认 true是否在请求体中包含 dimensions 字段。OpenAI 的 text - embedding - 3 - * 模型依赖此进行嵌套截断但一些自托管/开源模型如 BGE - M3不支持自定义维度会以 HTTP 400 拒绝请求不支持嵌套表示。对于这些后端请将其设置为 false例如{embedding: {enabled: true,provider: openai,baseUrl: http://your - host:your - port/v1,apiKey: ,model: bge - m3,dimensions: 1024,sendDimensions: false}}**llm.*独立 LLM 模式绕过 OpenClaw 的内置模型使用指定 API 运行 L1/L2/L3**offload.backendUrl / backendApiKey**将 L1/L1.5/L2/L4 流程卸载到后端服务**report.*指标报告特性宏观角色 微观事实统一的追溯机制压缩过程中最大的风险是以丢失证据为代价节省 token。因此腾讯云数据库代理内存不会将历史记录压缩为不可逆的摘要而是保留从高层抽象到真实证据的清晰路径。问题类型首先查看深入查看日常偏好、语气、长期目标L3 角色 / L2 场景需要事实时查看 L1 原子 / L0 对话具体事实、日期、项目细节L1 原子 / L0 对话当结果稀疏时扩大时间范围或回退到语义回忆继续长期运行的任务活动的 Mermaid 任务画布摘要缺乏细节时查看 JSONL然后查看 refs/*.md 中的原始文本恢复历史任务元数据任务条目打开 Mermaid 画布 → 定位 node_id → 追踪 result_ref上层承载判断和方向下层承载证据和精度。短期压缩和长期记忆形成一个闭环可折叠、可扩展抽象但可审计。白盒可调试性记忆不是黑盒大多数记忆系统在此方面存在不足当回忆出错时你只能看到一个向量得分列表无法得知问题出在哪里。腾讯云数据库代理内存将关键中间结果保存为可读文件L2 场景块是普通的 Markdown 文件可直接打开查看L3 角色存储在 persona.md 中可追溯到生成它的场景短期任务画布采用 Mermaid 格式人类和代理都可读原始负载、摘要和节点通过 result_ref 和 node_id 关联。调试不再是探查不透明的数据库而是沿着“角色 → 场景 → 原子 → 对话”的链条进行确定性的追溯直到找出根本原因。所有这些分层记忆工件都存储在 ~/.openclaw/memory - tdai/ 目录下你可以随时打开该目录查看每一层的内容。生产就绪的工程能力并非演示项目能力描述OpenClaw 插件安装后自动捕获、提取和回忆记忆Hermes 网关适配器TdaiCore 主机适配器与主机框架解耦本地后端SQLite sqlite - vec开箱即用混合检索BM25 向量 RRF支持关键词和语义回忆代理工具tdai_memory_search / tdai_conversation_search文档scripts/README.memory - tencentdb - ctl.md操作与管理工具CHANGELOG.md发布说明和版本历史openclaw.plugin.jsonOpenClaw 插件清单和配置模式社区与贡献我们欢迎各种形式的贡献包括 bug 报告、功能建议、文档修复、基准测试复现、生态系统集成或提交 Pull Request。代理记忆问题远未得到彻底解决我们希望能与大家共同探索。 发现 bug 或有问题在 [GitHub Issues](https://github.com/your - repo/issues) 上提交问题我们会在 24 小时内回复。 有想法要分享在 [GitHub Discussions](https://github.com/your - repo/discussions) 上发起讨论。️ 想贡献代码请先阅读 CONTRIBUTING.md。 想和我们交流加入我们的 Discord 社区直接与早期开发者交流。路线图长期个性化记忆L0 → L3短期上下文压缩上下文卸载 Mermaid 画布本地 SQLite 后端和腾讯云向量数据库TCVDB后端OpenClaw 插件和 Hermes 网关集成便携式记忆跨代理/跨框架/跨设备导入、导出和实时迁移自动技能生成可视化调试和记忆可观测性仪表盘如果腾讯云数据库代理内存对你有帮助请给项目点个 ⭐ 支持我们。如有任何建议欢迎提交 issue 展开讨论。你对腾讯云数据库代理内存有什么看法呢