基于 OpenClaw 与 TencentDB Agent Memory 的四层长期记忆插件安装配置实战指南
2026/9/10 20:15:14 网站建设 项目流程

基于 OpenClaw 与 TencentDB Agent Memory 的四层长期记忆插件安装配置实战指南

【免费下载链接】TencentDB-Agent-MemoryTencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.项目地址: https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory

本指南以 SKILL.md 为核心,完整讲解如何在 OpenClaw 中安装、配置、验证并排查@tencentdb-agent-memory/memory-tencentdb记忆插件,实现 L0→L1→L2→L3 的可持续本地长期记忆闭环(对话捕获、事实提取、场景归纳、用户画像)。读完本文,你将掌握从零到一的插件落地流程、全量生产配置模板、向量检索与 BM25 混合召回的原理,以及一整套可复现的验收与故障排查方法。

图为 memory-tencentdb 四层记忆模型的层级关系:L0 原始对话全量留存 → L1 原子记忆(事实/偏好/约束/状态)→ L2 场景块(按项目/主题聚类)→ L3 用户画像(稳定偏好与服务方式)。

一、插件是什么:OpenClaw 侧的本地长期记忆能力

memory-tencentdb是一个面向 OpenClaw 的长期记忆插件,目标是在不依赖外部托管记忆服务的前提下,为 Agent 提供可持续的本地记忆能力。它的核心是四层记忆流水线:

层级名称存储形态说明
L0原始对话每日 JSONL 分片(conversations/全量保留用户与 Agent 的原始对话流,作为证据兜底
L1结构化记忆每日 JSONL 分片(records/通过 LLM 从对话中提取事实、偏好、约束、状态等原子记忆,并做向量去重
L2场景块Markdown 文件(scene_blocks/按项目/主题/工作流聚类记忆,带上下文召回,减少单场误用
L3用户画像persona.md基于长期记忆聚合的稳定用户偏好与服务方式画像

数据目录结构(OpenClaw 场景下默认位于~/.openclaw/state/memory-tdai/,Hermes 场景下默认位于~/.memory-tencentdb/memory-tdai/):

memory-tdai/ ├── conversations/ — L0 原始对话(每日 JSONL 分片) ├── records/ — L1 结构化记忆(每日 JSONL 分片) ├── scene_blocks/ — L2 场景 Markdown 文件 ├── persona.md — L3 用户画像 ├── vectors.db — SQLite 数据库(向量 + 全文索引) ├── .metadata/ — checkpoint、scene_index.json └── .backup/ — 滚动备份

从源码结构看,该插件的命名与历史沿革如下:hermes-plugin/memory/memory_tencentdb/plugin.yaml 中声明了插件 ID 为memory_tencentdb,同时保留了tdaimemory-tencentdb两个别名,使旧配置中memory.provider: tdai仍能继续解析到本插件。SKILL 文档中提到的数据目录名memory-tdai是代码中硬编码的实际数据目录路径,与插件 ID 无关。

适用场景

  • 用户要求在 OpenClaw 中安装或启用memory-tencentdb
  • 用户需要配置召回、提取、画像、清理等参数
  • 用户反馈"插件已装但无记忆 / 无召回 / 无向量检索"

不适用场景

  • 用户只需要解释 memory 理念,不要求实际落地
  • 用户要接入非 OpenClaw 宿主(此时应先确认目标框架,例如 Hermes,可参考 hermes-plugin/memory/memory_tencentdb/README.md)

二、标准工作流:从环境预检到冒烟测试

1) 环境预检

先确认基础版本满足要求:

  • OpenClaw:>= 2026.3.13
  • Node.js:>= 22.16.0

执行:

openclaw --version node -v

若版本不满足,先升级再继续。

2) 安装插件

执行安装命令:

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

如已安装则执行更新:

openclaw plugins update memory-tencentdb

仓库还提供了封装安装脚本 scripts/install-openclaw-plugin.sh,它会自动完成:npm install(从 npm registry 拉取@tencentdb-agent-memory/memory-sdk-ts-v2SDK)、npm run build构建插件、openclaw plugins install -l本地挂载,以及写入~/.openclaw/openclaw.json(设置plugins.slots.memory、启用插件、写入 server/isolation/recall/capture 配置,并在检测到 OpenClaw>= 2026.4.24时写入 hooks 权限字段)。本地模式一行即可:

# 本地 Gateway(默认) bash MemoryCore/scripts/install-openclaw-plugin.sh

3) 写入最小配置

编辑~/.openclaw/openclaw.json,确保存在:

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

说明:该插件支持零配置启动;不补充其它字段也能运行基础能力。

4) 按需追加推荐配置(生产常用)

根据需求补充如下分组:

  • capture:对话捕获与保留策略
  • extraction:L1 提取与去重
  • pipeline:L1→L2→L3 调度
  • recall:召回数量、阈值、策略
  • persona:场景与画像触发参数
  • embedding:向量检索配置(远端 OpenAI 兼容)

推荐模板:

{ "memory-tencentdb": { "capture": { "enabled": true, "excludeAgents": [], "l0l1RetentionDays": 90, "cleanTime": "03:00" }, "extraction": { "enabled": true, "enableDedup": true, "maxMemoriesPerSession": 10, "model": "provider/model" }, "pipeline": { "everyNConversations": 5, "enableWarmup": true, "l1IdleTimeoutSeconds": 600, "l2DelayAfterL1Seconds": 10, "l2MinIntervalSeconds": 900, "l2MaxIntervalSeconds": 3600, "sessionActiveWindowHours": 24 }, "recall": { "enabled": true, "maxResults": 5, "scoreThreshold": 0.3, "strategy": "hybrid" }, "persona": { "triggerEveryN": 50, "maxScenes": 15, "backupCount": 3, "sceneBackupCount": 10, "model": "provider/model" }, "embedding": { "enabled": true, "provider": "openai", "baseUrl": "https://api.openai.com/v1", "apiKey": "${EMBEDDING_API_KEY}", "model": "text-embedding-3-small", "dimensions": 1536, "conflictRecallTopK": 5 } } }
各分组参数详解(结合仓库配置与源码)

capture组:对话捕获与保留策略

字段推荐值说明
enabledtrue是否自动捕获对话写入 L0
excludeAgents[]排除不参与捕获的 Agent 列表
l0l1RetentionDays90L0/L1 数据的保留天数;0表示不清理,非0时建议>=3
cleanTime"03:00"每日清理任务执行时间(24 小时制)

extraction组:L1 提取与去重

字段推荐值说明
enabledtrue是否启用 L1 提取
enableDeduptrue向量去重:避免同一事实被反复写入
maxMemoriesPerSession10单会话最多提取的 L1 记忆条数
modelprovider/model执行提取所用的 LLM 模型标识

在 tdai-gateway.standalone.yaml 中可以看到该分组的独立 Gateway 形态配置:maxMemoriesPerSession: 20enableDedup: true,这说明同一批引擎参数既可通过 OpenClaw 插件配置下发,也可通过 standalone Gateway 的 YAML 配置生效。

pipeline组:L1→L2→L3 调度

字段推荐值说明
everyNConversations5每 N 轮对话触发一次流水线处理
enableWarmuptrue预热:提前加载索引与模型,降低首轮延迟
l1IdleTimeoutSeconds600L1 提取的空闲超时(秒)
l2DelayAfterL1Seconds10L1 完成后延迟多久再执行 L2 场景归纳
l2MinIntervalSeconds900两次 L2 处理的最小间隔
l2MaxIntervalSeconds3600两次 L2 处理的最大间隔
sessionActiveWindowHours24会话活跃窗口(小时),决定何时认为会话结束

recall组:召回参数

字段推荐值说明
enabledtrue是否启用记忆召回
maxResults5每轮最多注入的 L1 记忆条数
scoreThreshold0.3召回相似度阈值,低于该值的结果被丢弃
strategyhybrid召回策略:hybrid表示向量 + 关键词(BM25)混合召回

standalone 配置中还补充了timeoutMs: 5000(召回超时上限)与bm25: { enabled: true, language: "zh" }(BM25 关键词检索,中文分词),可见混合召回中向量路径与 BM25 关键词路径是相互补充的:向量负责语义相似,BM25 负责关键词精确命中。

persona组:场景与画像触发参数

字段推荐值说明
triggerEveryN50每 N 轮对话触发一次画像更新
maxScenes15保留的最大场景块数量
backupCount3画像的滚动备份数量
sceneBackupCount10场景块的滚动备份数量
modelprovider/model画像合成所用 LLM 模型标识

embedding组:向量检索配置

字段推荐值说明
enabledtrue是否启用向量检索
provideropenai向量提供方;none表示禁用向量、仅走关键词路径
baseUrlhttps://api.openai.com/v1OpenAI 兼容 API 地址
apiKey${EMBEDDING_API_KEY}环境变量注入的 API Key,不要在配置里写明文
modeltext-embedding-3-small向量模型
dimensions1536向量维度,必须与模型输出维度一致
conflictRecallTopK5去重时冲突召回的最大条数

5) 关键配置规则(避免隐性失败)

  • embedding.provider = "none"时,向量能力会禁用,仅保留关键词路径(BM25)。
  • 若配置远端provider(如openai/deepseek),必须同时提供:apiKeybaseUrlmodeldimensions
  • 上述任一缺失时,插件会继续运行,但自动降级为非向量模式。
  • l0l1RetentionDays
    • 0表示不清理
    • 0时建议>=3
    • 若设为1~2,需显式开启allowAggressiveCleanup

6) 重启并验证生效

执行:

openclaw gateway restart

检查项:

  • Gateway 日志中出现[memory-tdai]前缀
  • 数据目录已创建:~/.openclaw/state/memory-tdai/
  • 至少包含:conversations/records/scene_blocks/vectors.db

7) 功能冒烟测试

执行一次最小对话回路并验证:

  1. 连续对话 2~3 轮,提供可记忆信息(偏好、约束、背景)。
  2. 发起新一轮对话,观察是否出现召回上下文注入。
  3. 在 Agent 中调用:
    • tdai_memory_search
    • tdai_conversation_search
  4. 确认能检索到刚刚产生的内容。

从 openclaw-plugin/README_CN.md 可知,这两个工具分别走 v3 SDK 的searchAtomic()(L1 结构化记忆搜索)与searchConversation()(L0 原始对话搜索),而 src/hooks/recall.ts 中的performRecall()会在构建 prompt 前并行发起L1 搜索、L3 画像读取与 L2 场景列表三个请求(Promise.allSettled),任一请求失败都不会阻断整体注入,随后由 src/format.ts 的formatRecallResult()格式化为带标签的简洁记忆上下文注入 prompt。

三、故障排查速查

现象检查项
插件无日志检查openclaw.jsonmemory-tencentdb.enabled是否为true,并确认已重启 Gateway
有记录无召回检查recall.enabledscoreThreshold是否过高
无向量结果检查embedding四元组(apiKey/baseUrl/model/dimensions)是否齐全
清理过猛导致历史过少检查l0l1RetentionDaysallowAggressiveCleanup
配置已改但行为不变确认修改的是~/.openclaw/openclaw.json,并再次重启 Gateway

需要进一步定位问题时,可以借助仓库中配套的诊断导出技能 SKILL-DIAGNOSTIC-EXPORT.md:它会把 OpenClaw 日志、记忆插件 L0~L3 数据、脱敏后的配置打包成本地压缩包,供研发团队排查。导出脚本对应仓库的scripts/export-diagnostic.sh(默认输出~/Downloads/openclaw-diagnostic-<timestamp>.tar.gz,可传参指定输出目录),脚本对openclaw.json会执行脱敏——字段名匹配apiKey/token/password/secret/credential的值替换为***REDACTED(Nchars)***,顶层modelssecretschannelsenv块整体替换为***REDACTED_SECTION***,而plugins完整配置保留原样(插件配置正是排查重点)。

导出后研发团队通常关注以下日志标签与文件:

排查方向查看位置关键信息
插件是否加载日志中搜索[memory-tdai]插件注册、配置解析日志(注:日志标签仍为[memory-tdai],与插件 ID 无关)
记忆召回是否工作日志中搜索[recall]搜索策略、耗时、命中数
L1 提取是否触发日志中搜索[pipeline]调度触发、L1/L2/L3 执行状态
向量搜索是否可用脱敏配置的plugins.entriesembedding 配置是否正确
checkpoint 状态memory-tdai/.metadata/recall_checkpoint.json进度、游标、计数器

四、安全与合规约束

  • apiKey视为敏感信息;不在聊天、日志、截图中明文扩散。
  • 优先使用环境变量注入密钥;配置示例中仅保留占位符(如${EMBEDDING_API_KEY})。
  • 仅修改memory-tencentdb对应配置段,避免覆盖用户其它插件配置。
  • 导出诊断数据时:配置文件已自动脱敏,但记忆数据(memory-tdai/)包含用户对话原文,需确认可以分享后再发送;压缩包存放在本地,不会自动上传,需手动发送给研发团队。

五、完成定义(Definition of Done)

在结束任务前,必须同时满足:

  • 插件安装/更新命令执行成功
  • openclaw.json已存在有效memory-tencentdb配置
  • Gateway 已重启
  • [memory-tdai]日志可见
  • 数据目录与关键文件已生成
  • 至少 1 次检索工具调用成功返回结果

六、交付话术模板

可在完成后向用户输出:

  • 已完成memory-tencentdb安装与配置,并重启 Gateway。
  • 已验证日志与数据目录生效,记忆链路可用。
  • 如需下一步优化,可继续调优recall.scoreThresholdpipeline.everyNConversationspersona.triggerEveryNembedding模型参数。

七、延伸:多框架接入与 Gateway 侧配置

SKILL 文档聚焦 OpenClaw 宿主,但同一套四层记忆引擎也通过 hermes-plugin/memory/memory_tencentdb/README.md 提供 Hermes(Python)侧的接入适配:Hermes 侧实现是一个"薄 HTTP 客户端 + 进程监管器"(MemoryTencentdbSdkClient+GatewaySupervisor),真正的捕获、提取、存储、召回、流水线调度全部运行在 Node.js Gateway 侧车进程中。

从 client.py 的源码可以看到 v3 数据面接口的完整映射:POST /v3/conversation/add(L0 写入)、POST /v3/conversation/search(L0 搜索)、POST /v3/atomic/search(L1 搜索)、POST /v3/scenario/ls/POST /v3/scenario/read(L2 场景)、POST /v3/core/read(L3 画像),所有接口都携带team_id / agent_id / user_id三元组做租户隔离,并通过x-tdai-service-id请求头标识服务实例;v1 的/recall/capture等接口保留为向后兼容的废弃路径。

supervisor.py 中的GatewaySupervisor则展示了健壮性设计:启动时先探测/healthok/degraded均视为可用),不可用则在单飞锁(线程锁 +fcntl跨进程锁)保护下以Popen启动侧车并轮询健康状态最长 30 秒;子进程 stdout/stderr 重定向到日志文件而非 PIPE,避免管道缓冲区(约 64KB)写满导致子进程阻塞;崩溃后通过is_process_alive() or is_running()双检查触发重新拉起;退出时以killpg发送SIGTERM到整个进程组,确保pnpm -> tsx -> node链路不会遗留孤儿监听进程。Hermes 侧还内置了熔断器(连续 5 次 Gateway 失败暂停调用 60 秒)与捕获背压(最多 4 个在途sync_turn线程)。

Gateway 侧(含存储后端、embedding、流水线节奏、召回策略)的配置在独立配置文件中管理,standalone 形态参考 tdai-gateway.standalone.yaml:支持sqlite(本地 SQLite + sqlite-vec,零外部依赖,默认)与tcvdb(腾讯云向量数据库,需填写 url/username/apiKey/database/embeddingModel/timeout)两种存储后端;LLM 通过llm.baseUrlllm.apiKey(环境变量TDAI_LLM_API_KEY注入)、llm.model配置;deployMode: standalonestateBackend: "local"意味着进程内状态管理、无需 Redis 等外部依赖,适合本地开发与单 Agent 单机部署。

结语

从环境预检、插件安装、最小配置到生产级参数模板,再到重启验证、冒烟测试与故障排查,memory-tencentdb为 OpenClaw 提供了一条完整、可验收的长期记忆落地路径。理解capture/extraction/pipeline/recall/persona/embedding六组参数各自的职责边界,尤其是 embedding 四元组齐全性与l0l1RetentionDays的清理语义,是避免"装了但没记忆"这类隐性失败的关键;配合仓库中的安装脚本、诊断导出技能与 Gateway 独立配置模板,即可在不同部署形态间平滑迁移。

【免费下载链接】TencentDB-Agent-MemoryTencentDB Agent Memory is a team-level memory hub for AI Agents — turning conversations, docs, and code into four reusable memory assets (Chat Memory, Skill, LLM-Wiki, Code-Graph) that are governed, shared, and equipped across agents and frameworks.项目地址: https://gitcode.com/GitHub_Trending/te/TencentDB-Agent-Memory

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询