2026-05-13 01:23:05 +08:00
|
|
|
|
---
|
|
|
|
|
|
name: openclaw-memory-tencentdb-setup
|
|
|
|
|
|
description: 用于在 OpenClaw 环境中安装、配置并验证 @tencentdb-agent-memory/memory-tencentdb 插件。当用户提到"安装记忆插件""配置 memory-tencentdb""开启长期记忆/召回"或出现相关报错时应触发。
|
|
|
|
|
|
version: 1.0.0
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 目的
|
|
|
|
|
|
|
|
|
|
|
|
在不依赖外部托管记忆服务的前提下,为 OpenClaw 提供可持续的本地长期记忆能力(L0→L1→L2→L3),并完成从安装、配置到验收的一次性闭环。
|
|
|
|
|
|
|
|
|
|
|
|
## 适用场景
|
|
|
|
|
|
|
|
|
|
|
|
- 用户要求在 OpenClaw 中安装或启用 `memory-tencentdb`
|
|
|
|
|
|
- 用户需要配置召回、提取、画像、清理等参数
|
|
|
|
|
|
- 用户反馈"插件已装但无记忆 / 无召回 / 无向量检索"
|
|
|
|
|
|
|
|
|
|
|
|
## 不适用场景
|
|
|
|
|
|
|
|
|
|
|
|
- 用户只需要解释 memory 理念,不要求实际落地
|
|
|
|
|
|
- 用户要接入非 OpenClaw 宿主(先确认目标框架)
|
|
|
|
|
|
|
|
|
|
|
|
## 标准工作流
|
|
|
|
|
|
|
|
|
|
|
|
### 1) 环境预检
|
|
|
|
|
|
|
|
|
|
|
|
先确认基础版本满足要求:
|
|
|
|
|
|
|
|
|
|
|
|
- OpenClaw: `>= 2026.3.13`
|
|
|
|
|
|
- Node.js: `>= 22.16.0`
|
|
|
|
|
|
|
|
|
|
|
|
执行:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
openclaw --version
|
|
|
|
|
|
node -v
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
若版本不满足,先升级再继续。
|
|
|
|
|
|
|
|
|
|
|
|
### 2) 安装插件
|
|
|
|
|
|
|
|
|
|
|
|
执行安装命令:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
如已安装则执行更新:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
openclaw plugins update memory-tencentdb
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3) 写入最小配置
|
|
|
|
|
|
|
|
|
|
|
|
编辑 `~/.openclaw/openclaw.json`,确保存在:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"memory-tencentdb": {
|
|
|
|
|
|
"enabled": true
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
说明:该插件支持零配置启动;不补充其它字段也能运行基础能力。
|
|
|
|
|
|
|
|
|
|
|
|
### 4) 按需追加推荐配置(生产常用)
|
|
|
|
|
|
|
|
|
|
|
|
根据用户需求补充如下分组:
|
|
|
|
|
|
|
|
|
|
|
|
- `capture`: 对话捕获与保留策略
|
|
|
|
|
|
- `extraction`: L1 提取与去重
|
|
|
|
|
|
- `pipeline`: L1→L2→L3 调度
|
|
|
|
|
|
- `recall`: 召回数量、阈值、策略
|
|
|
|
|
|
- `persona`: 场景与画像触发参数
|
|
|
|
|
|
- `embedding`: 向量检索配置(远端 OpenAI 兼容)
|
|
|
|
|
|
|
|
|
|
|
|
推荐模板:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"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,
|
2026-05-13 01:58:18 +08:00
|
|
|
|
"l1IdleTimeoutSeconds": 600,
|
2026-05-20 22:58:05 +08:00
|
|
|
|
"l2DelayAfterL1Seconds": 10,
|
2026-05-13 01:58:18 +08:00
|
|
|
|
"l2MinIntervalSeconds": 900,
|
|
|
|
|
|
"l2MaxIntervalSeconds": 3600,
|
2026-05-13 01:23:05 +08:00
|
|
|
|
"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
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5) 关键配置规则(避免隐性失败)
|
|
|
|
|
|
|
|
|
|
|
|
- `embedding.provider = "none"` 时,向量能力会禁用,仅保留关键词路径。
|
|
|
|
|
|
- 若配置远端 `provider`(如 `openai` / `deepseek`),必须同时提供:
|
|
|
|
|
|
- `apiKey`
|
|
|
|
|
|
- `baseUrl`
|
|
|
|
|
|
- `model`
|
|
|
|
|
|
- `dimensions`
|
|
|
|
|
|
- 上述任一缺失时,插件会继续运行,但自动降级为非向量模式。
|
|
|
|
|
|
- `l0l1RetentionDays`:
|
|
|
|
|
|
- `0` 表示不清理
|
|
|
|
|
|
- 非 `0` 时建议 `>=3`
|
|
|
|
|
|
- 若设为 `1~2`,需显式开启 `allowAggressiveCleanup`
|
|
|
|
|
|
|
|
|
|
|
|
### 6) 重启并验证生效
|
|
|
|
|
|
|
|
|
|
|
|
执行:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
openclaw gateway restart
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
检查项:
|
|
|
|
|
|
|
|
|
|
|
|
- Gateway 日志中出现 `[memory-tdai]` 前缀
|
2026-05-20 22:58:05 +08:00
|
|
|
|
- 数据目录已创建:`~/.openclaw/state/memory-tdai/`
|
2026-05-13 01:23:05 +08:00
|
|
|
|
- 至少包含:`conversations/`、`records/`、`scene_blocks/`、`vectors.db`
|
|
|
|
|
|
|
|
|
|
|
|
### 7) 功能冒烟测试
|
|
|
|
|
|
|
|
|
|
|
|
执行一次最小对话回路并验证:
|
|
|
|
|
|
|
|
|
|
|
|
1. 连续对话 2~3 轮,提供可记忆信息(偏好、约束、背景)。
|
|
|
|
|
|
2. 发起新一轮对话,观察是否出现召回上下文注入。
|
|
|
|
|
|
3. 在 Agent 中调用:
|
|
|
|
|
|
- `tdai_memory_search`
|
|
|
|
|
|
- `tdai_conversation_search`
|
|
|
|
|
|
4. 确认能检索到刚刚产生的内容。
|
|
|
|
|
|
|
|
|
|
|
|
## 故障排查速查
|
|
|
|
|
|
|
|
|
|
|
|
- 插件无日志:检查 `openclaw.json` 中 `memory-tencentdb.enabled` 是否为 `true`,并确认已重启 Gateway。
|
|
|
|
|
|
- 有记录无召回:检查 `recall.enabled`、`scoreThreshold` 是否过高。
|
|
|
|
|
|
- 无向量结果:检查 `embedding` 四元组(`apiKey/baseUrl/model/dimensions`)是否齐全。
|
|
|
|
|
|
- 清理过猛导致历史过少:检查 `l0l1RetentionDays` 与 `allowAggressiveCleanup`。
|
|
|
|
|
|
- 配置已改但行为不变:确认修改的是 `~/.openclaw/openclaw.json`,并再次重启 Gateway。
|
|
|
|
|
|
|
|
|
|
|
|
## 安全与合规约束
|
|
|
|
|
|
|
|
|
|
|
|
- 将 `apiKey` 视为敏感信息;不在聊天、日志、截图中明文扩散。
|
|
|
|
|
|
- 优先使用环境变量注入密钥;配置示例中仅保留占位符。
|
|
|
|
|
|
- 仅修改 `memory-tencentdb` 对应配置段,避免覆盖用户其它插件配置。
|
|
|
|
|
|
|
|
|
|
|
|
## 完成定义(Definition of Done)
|
|
|
|
|
|
|
|
|
|
|
|
在结束任务前,必须同时满足:
|
|
|
|
|
|
|
|
|
|
|
|
- 插件安装/更新命令执行成功
|
|
|
|
|
|
- `openclaw.json` 已存在有效 `memory-tencentdb` 配置
|
|
|
|
|
|
- Gateway 已重启
|
|
|
|
|
|
- `[memory-tdai]` 日志可见
|
|
|
|
|
|
- 数据目录与关键文件已生成
|
|
|
|
|
|
- 至少 1 次检索工具调用成功返回结果
|
|
|
|
|
|
|
|
|
|
|
|
## 交付话术模板
|
|
|
|
|
|
|
|
|
|
|
|
可在完成后向用户输出:
|
|
|
|
|
|
|
|
|
|
|
|
- 已完成 `memory-tencentdb` 安装与配置,并重启 Gateway。
|
|
|
|
|
|
- 已验证日志与数据目录生效,记忆链路可用。
|
2026-05-20 22:58:05 +08:00
|
|
|
|
- 如需下一步优化,可继续调优 `recall.scoreThreshold`、`pipeline.everyNConversations`、`persona.triggerEveryN` 与 `embedding` 模型参数。
|