From 7314d85ac62433a594fdac6f1031cd855023239d Mon Sep 17 00:00:00 2001 From: root Date: Fri, 24 Apr 2026 14:06:22 +0800 Subject: [PATCH] =?UTF-8?q?P1:=20=E5=AE=8C=E5=96=84=20skill=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3=20-=20=E5=BC=BA=E8=B0=83=E5=A2=9E=E5=BC=BA=E8=80=8C?= =?UTF-8?q?=E9=9D=9E=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新 graph-memory/SKILL.md:添加与 memory-core 关系对比表 - 更新 graph-memory-persona/SKILL.md:添加定位声明和使用建议 - 更新 graph-memory-task/SKILL.md:添加定位声明和使用建议 - 更新 bundled-skills/ 下对应文件 --- TODO.md | 149 +++++------------- skills/graph-memory-persona/SKILL.md | 42 +++-- skills/graph-memory-task/SKILL.md | 50 ++++-- skills/graph-memory/SKILL.md | 76 +++------ .../graph-memory-persona/SKILL.md | 45 +++++- ts/bundled-skills/graph-memory-task/SKILL.md | 58 +++++-- ts/bundled-skills/graph-memory/SKILL.md | 37 ++++- 7 files changed, 238 insertions(+), 219 deletions(-) diff --git a/TODO.md b/TODO.md index d72d81d..0748c0b 100644 --- a/TODO.md +++ b/TODO.md @@ -1,121 +1,48 @@ -# TrulyMEM OpenClaw分支 TODO +# TrulyMEM 待完成事项 -## 设计决策:作为增强工具而非主记忆核心 +## 项目概述 +TrulyMEM - 真正的长期记忆系统 (True Human MEMory) +为 OpenClaw 提供图数据库形式的结构化长期记忆能力。 -### 背景分析 +## 已完成功能 -TrulyMEM main分支的设计理念: -- **图数据库作为唯一持久化记忆载体** -- **摒弃传统messages数组上下文** -- **工作记忆链(TaskNode链)代替对话历史** -- **每轮强制执行流程**:查询人设图 → 查询工作记忆链 → 处理对话 → 更新工作记忆链 +### P0 - 核心功能修复 ✅ +- [x] 确认移除 memory 插槽后的插件加载状态 +- [x] 测试与 memory-core 并存运行 +- [x] 验证工具 schema 正确传递给 Kimi -### 与OpenClaw memory-core对比 +### P1 - 功能完善 ✅ +- [x] 4. 实现完整的工具参数验证 + - 为所有 action(recall/commit/purge/persona_update/persona_clear/task_create/task_set_state/task_delete/task_link_info)实现独立验证函数 + - 验证规则:recall 必需 queryIntent 或 seedEntities;depth 1-5;commit triplets 非空且字段有效;persona_clear 需 confirm;task 需 task_id 和 description 等 +- [x] 5. 添加错误处理和日志 + - 新增 GraphMemoryLogger 日志系统(info/warn/error/action 级别) + - 敏感数据脱敏:attributes 只记录属性名,triplets 只记录数量 + - 参数验证错误返回 validation_error 类型 + - 执行错误返回 execution_error 类型 +- [x] 6. 完善 skill 文档(说明增强而非替换) + - 更新 3 个 skill 文档(graph-memory、graph-memory-persona、graph-memory-task) + - 明确说明是 OpenClaw memory-core 的增强补充,不替代核心功能 + - 添加与 memory-core 的关系对比表 -| 方面 | TrulyMEM (main分支) | OpenClaw memory-core | -|------|---------------------|---------------------| -| 核心理念 | 图数据库作为唯一持久化记忆载体 | session transcripts + memory search | -| 对话历史 | 工作记忆链(TaskNode链)代替传统messages | messages数组持久化存储 | -| 上下文管理 | 每轮从图数据库重建 + context_rewrite压缩 | compaction机制压缩历史 | -| 记忆写入 | 通过memory_commit工具写入三元组 | 自动记录对话历史 | -| 记忆检索 | memory_recall工具主动查询 | memory search索引检索 | -| 人设管理 | PersonaNode + 强制查询机制 | 无内置人设系统 | +## 进行中 / 待完成 -### 作为主记忆核心的挑战 +### P2 - 可选高级功能 +- [ ] 7. 实现 context_rewrite 工具(压缩上下文) +- [ ] 8. 实现工作记忆链机制 +- [ ] 9. 实现人设强制查询(作为 skill 而非核心) -1. **架构差异**: - - OpenClaw memory-core是完整基础设施,管理session transcripts、health monitor等 - - TrulyMEM是独立应用设计,需要重新适配OpenClaw架构 +## 技术规格 -2. **强制执行流程**: - - TrulyMEM要求每轮必须:查询人设图 → 查询工作记忆链 → 处理对话 → 更新工作记忆链 - - OpenClaw没有这种强制流程,需要修改核心逻辑 +### 测试覆盖 +- 测试文件:`ts/tests/runtime/core/tools/builtin/graph_memory_tool.test.ts` +- 当前测试数:**118 个全部通过** +- 参数验证测试:11 个(覆盖所有 action 的必填参数、范围校验等) -3. **依赖问题**: - - main分支是Python实现(TUI应用) - - openclaw分支是TypeScript插件(不完整移植) - - 需要完整移植Python版本的核心逻辑 +### 提交记录 +- 最新提交:`P1: 完整参数验证 + 错误处理/日志 + 测试覆盖` -4. **功能缺失**: - - openclaw分支缺少:context_rewrite压缩工具、强制执行流程、人设强制查询 - - 当前只是普通tool,不是完整记忆系统 - -### 设计决策 - -**短期目标**:作为增强工具 -- 提供图记忆能力作为额外工具 -- 不替换memory-core -- LLM可选调用 -- 移除 `"kind": "memory"` 配置,避免独占memory插槽 - -**长期目标**:如果要替代memory-core -- 需要深度架构重构 -- 需要完整移植main分支的核心逻辑(Python → TypeScript) -- 需要实现强制执行流程(修改OpenClaw核心) -- 需要实现context_rewrite工具 -- 需要实现工作记忆链机制 -- 需要先在独立项目中验证可行性 - ---- - -## 当前状态 - -### 已完成 -- [x] plugin-entry.ts 改为OpenClaw SDK规范格式 -- [x] 移除 `"kind": "memory"` 配置 -- [x] README.md 更新安装文档 -- [x] 插件成功加载到OpenClaw -- [x] 基本recall/commit功能测试通过 - -### 待完成(增强工具设计) - -#### 优先级 P0 - 核心功能修复 -- [ ] 确认移除memory插槽后的插件加载状态 -- [ ] 测试与memory-core并存运行 -- [ ] 验证工具schema正确传递给Kimi - -#### 优先级 P1 - 功能完善 -- [ ] 实现完整的工具参数验证 -- [ ] 添加错误处理和日志 -- [ ] 完善skill文档(说明增强而非替换) - -#### 优先级 P2 - 可选高级功能 -- [ ] 实现context_rewrite工具(压缩上下文) -- [ ] 实现工作记忆链机制 -- [ ] 实现人设强制查询(作为skill而非核心) -- [ ] 添加时间过滤和多跳遍历优化 - ---- - -## 技术细节 - -### 当前实现状态 - -**工具列表**: -- `graph_memory` - 综合工具,支持多种action - - recall: 检索记忆 - - commit: 写入记忆 - - purge: 删除记忆 - - introspect: 查看状态 - - archive: 归档记忆 - - cleanup: 清理数据 - - persona_update/clear: 人设管理 - - task_create/set_state/delete/link_info: 任务管理 - -**数据存储**: -- SQLite数据库:`~/.trulymem/graph_memory.db` -- 表结构:entities, relations - -**与main分支差异**: -- 无context_rewrite工具 -- 无强制执行流程 -- 无Python TUI界面 -- 纯TypeScript插件实现 - ---- - -## 参考 - -- main分支文档:`docs/zh/memory.md`, `docs/zh/working_memory.md` -- OpenClaw文档:https://docs.openclaw.ai/zh-CN/tools/plugin -- kimi-proxy:`/home/program/kimi-proxy/server.js` \ No newline at end of file +## 注意事项 +- 所有功能均作为 OpenClaw 插件实现,不修改 OpenClaw 核心代码 +- 插件入口:`ts/src/plugin-entry.ts` +- 技能目录:`skills/`(源文件)和 `ts/bundled-skills/`(编译后) diff --git a/skills/graph-memory-persona/SKILL.md b/skills/graph-memory-persona/SKILL.md index 5bd2bfd..05aeb8c 100644 --- a/skills/graph-memory-persona/SKILL.md +++ b/skills/graph-memory-persona/SKILL.md @@ -1,6 +1,6 @@ --- name: graph-memory-persona -description: "管理 AI 人设 - 更新或清除 AI 角色特征。使用 persona_update 更新、persona_clear 清除" +description: "管理 AI 人设 - 更新或清除 AI 角色特征。作为增强工具,通过 graph_memory 的 persona_update/clear 操作实现" metadata: {"openclaw": {"requires": {"bins": ["node"]}}} user-invocable: true --- @@ -9,6 +9,14 @@ user-invocable: true 管理 AI 的人设/角色特征。 +> **定位声明**:本 skill 通过 `graph_memory` 工具的 `persona_update`/`persona_clear` 操作实现。是 **OpenClaw 的增强功能**,不替代任何核心机制。LLM 可自主选择是否查询/更新人设。 + +## 与主系统的关系 + +- **不强制**:不会每轮自动查询人设,由 LLM 根据上下文决定 +- **可选调用**:当用户提到"记住我是..."、"你的角色是..."等场景时触发 +- **数据存储**:人设数据以三元组形式存储在图数据库中(subject=AI) + ## 操作 ### 1. persona_update - 更新人设 @@ -16,18 +24,19 @@ user-invocable: true 更新 AI 的角色特征。 **参数:** -- `attributes`: 属性数组,每个包含 attribute 和 value -- `mode`: 更新模式(merge 合并或 replace 替换) +- `attributes`: 属性数组,每个包含 `attribute`(属性名)和 `value`(属性值) +- `mode`: 更新模式,`merge`(合并,默认)或 `replace`(替换) **示例:** -``` +```yaml action: persona_update -attributes: - - attribute: "角色" - value: "猫娘" - - attribute: "性格" - value: "活泼" -mode: "merge" +params: + attributes: + - attribute: "角色" + value: "猫娘" + - attribute: "性格" + value: "活泼" + mode: "merge" ``` ### 2. persona_clear - 清除人设 @@ -35,10 +44,17 @@ mode: "merge" 清除 AI 的所有角色特征。 **参数:** -- `confirm`: 确认为 true 才能执行清除 +- `confirm`: 必须为 `true` 才能执行清除(安全措施) **示例:** -``` +```yaml action: persona_clear -confirm: true +params: + confirm: true ``` + +## 使用建议 + +1. 人设信息应简洁、持久(如"用户喜欢Python"、"我是技术助手") +2. 避免存储临时性、易变的信息到人设图 +3. 与 memory-core 配合:人设由 GraphMemory 管理,对话风格由系统提示管理 diff --git a/skills/graph-memory-task/SKILL.md b/skills/graph-memory-task/SKILL.md index 85f2203..7e16f98 100644 --- a/skills/graph-memory-task/SKILL.md +++ b/skills/graph-memory-task/SKILL.md @@ -1,6 +1,6 @@ --- name: graph-memory-task -description: "管理连续性任务 - 创建、更新、删除任务节点。使用 task_create 创建、task_set_state 更新状态" +description: "管理连续性任务 - 创建、更新、删除任务节点。作为增强工具,通过 graph_memory 的 task_* 操作实现" metadata: {"openclaw": {"requires": {"bins": ["node"]}}} user-invocable: true --- @@ -9,6 +9,14 @@ user-invocable: true 管理长期/连续性任务。 +> **定位声明**:本 skill 通过 `graph_memory` 工具的 `task_create`/`task_set_state`/`task_delete`/`task_link_info` 操作实现。是 **OpenClaw 的增强功能**,提供任务追踪能力,不替代任何核心机制。 + +## 与主系统的关系 + +- **不强制**:不会每轮自动查询任务状态,由 LLM 根据用户请求决定 +- **可选调用**:当用户提到"帮我记住这个任务"、"完成这个任务"等场景时触发 +- **数据存储**:任务数据以三元组形式存储在图数据库中(subject=task_id) + ## 操作 ### 1. task_create - 创建任务 @@ -16,16 +24,17 @@ user-invocable: true 创建新的任务节点。 **参数:** -- `task_id`: 唯一任务标识 -- `description`: 任务描述 -- `info_nodes`: 可选的相关信息节点 +- `task_id`: 唯一任务标识(必需) +- `description`: 任务描述(必需) +- `info_nodes`: 可选的相关信息节点数组 **示例:** -``` +```yaml action: task_create -task_id: "Task_学习TypeScript" -description: "学习 TypeScript 并完成项目" -info_nodes: ["TypeScript文档", "教程链接"] +params: + task_id: "Task_学习TypeScript" + description: "学习 TypeScript 并完成项目" + info_nodes: ["TypeScript文档", "教程链接"] ``` ### 2. task_set_state - 设置状态 @@ -33,20 +42,35 @@ info_nodes: ["TypeScript文档", "教程链接"] 更新任务状态。 **参数:** -- `task_id`: 任务ID -- `state`: 新状态 (进行中/已完成/已暂停/已取消) +- `task_id`: 任务ID(必需) +- `state`: 新状态,`进行中`/`已完成`/`已暂停`/`已取消`(必需) + +**示例:** +```yaml +action: task_set_state +params: + task_id: "Task_学习TypeScript" + state: "已完成" +``` ### 3. task_delete - 删除任务 删除任务节点。 **参数:** -- `task_id`: 任务ID +- `task_id`: 任务ID(必需) ### 4. task_link_info - 关联信息 将信息节点关联到任务。 **参数:** -- `task_id`: 任务ID -- `info_node`: 信息节点 +- `task_id`: 任务ID(必需) +- `info_node`: 信息节点名称(必需) + +## 使用建议 + +1. 任务ID应具有描述性(如 `Task_学习TypeScript`) +2. 任务描述应清晰说明目标和上下文 +3. 定期使用 `recall` 查询任务状态,了解进行中的任务 +4. 与 memory-core 配合:任务列表由 GraphMemory 管理,具体执行细节由对话上下文管理 diff --git a/skills/graph-memory/SKILL.md b/skills/graph-memory/SKILL.md index 1712016..467ea9a 100644 --- a/skills/graph-memory/SKILL.md +++ b/skills/graph-memory/SKILL.md @@ -1,6 +1,6 @@ --- name: graph-memory -description: "图记忆工具 - 检索、写入、删除记忆,管理人设和任务。使用 recall 检索、commit 写入、purge 删除" +description: "图记忆工具 - 检索、写入、删除记忆。作为 OpenClaw memory-core 的增强补充,不替代其核心功能" metadata: {"openclaw": {"requires": {"bins": ["node"]}}} user-invocable: true --- @@ -9,6 +9,18 @@ user-invocable: true 让 AI 拥有真正的长期记忆能力。 +> **定位声明**:本工具是 **OpenClaw memory-core 的增强补充**,而非替代。memory-core 负责 session transcripts 和历史消息管理,GraphMemory 提供图数据库形式的结构化长期记忆。两者可并存运行。 + +## 与 memory-core 的关系 + +| 功能 | memory-core | GraphMemory (本工具) | +|------|-------------|---------------------| +| 对话历史 | ✅ 自动保存 messages | ❌ 不管理对话历史 | +| 结构化记忆 | ❌ 无 | ✅ 三元组图存储 | +| 人设管理 | ❌ 无 | ✅ persona_update/clear | +| 任务追踪 | ❌ 无 | ✅ task_create/set_state | +| 自动触发 | ✅ 自动索引检索 | ❌ LLM 可选调用 | + ## 核心概念 ### 实体 (Entity) @@ -24,7 +36,7 @@ user-invocable: true 将信息写入记忆图。 **参数:** -- `triplets`: 三元组数组 `[{subject, relation, object}, ...]` +- `triplets`: 三元组数组 `[{subject, relation, object}, ...]` (必需) - `sessionId`: 会话 ID(可选) - `turnId`: 轮次 ID(可选) @@ -51,9 +63,9 @@ AI 会执行: 从记忆图中检索相关信息。 **参数:** -- `queryIntent`: 搜索关键词 -- `seedEntities`: 种子实体(可选) -- `depth`: 检索深度(默认 2) +- `queryIntent`: 搜索关键词(必需,若无则需提供 seedEntities) +- `seedEntities`: 种子实体数组(可选) +- `depth`: 检索深度 1-5(默认 2) - `sessionFilter`: 会话过滤(可选) ### 3. purge - 删除记忆 @@ -63,11 +75,11 @@ AI 会执行: **参数:** - `criteria`: 删除条件 `{subject, target, relation, sessionId}` - `mode`: 删除模式 `soft`(标记删除)、`hard`(彻底删除)或 `supersede`(纠错替代) -- `newRelation`: 替代关系(supersede 模式) +- `newRelation`: 替代关系(supersede 模式必需) ### 4. introspect - 查看状态 -查看当前记忆状态统计。 +查看当前记忆状态统计(实体数、关系数)。 ### 5. archive - 归档旧记忆 @@ -81,54 +93,7 @@ AI 会执行: 物理删除已删除超过 90 天的关系和孤立节点。 **参数:** -- `dry_run`: 仅预览不删除(默认 true) - -### 7. persona_update - 更新人设 - -更新 AI 的角色/性格特征。 - -**参数:** -- `attributes`: 属性数组 `[{attribute, value}, ...]` -- `mode`: `merge`(合并)或 `replace`(替换) - -### 8. persona_clear - 清除人设 - -清除 AI 的所有角色设定。 - -**参数:** -- `confirm`: 必须为 `true` 才能执行 - -### 9. task_create - 创建任务 - -创建长期任务节点。 - -**参数:** -- `task_id`: 唯一任务 ID -- `description`: 任务描述 -- `info_nodes`: 相关信息节点(可选) - -### 10. task_set_state - 设置任务状态 - -更新任务状态。 - -**参数:** -- `task_id`: 任务 ID -- `state`: 新状态(进行中/已完成/已暂停/已取消) - -### 11. task_delete - 删除任务 - -删除任务。 - -**参数:** -- `task_id`: 任务 ID - -### 12. task_link_info - 关联信息 - -将信息节点关联到任务。 - -**参数:** -- `task_id`: 任务 ID -- `info_node`: 信息节点 +- `dry_run`: 仅预览不删除(默认 true,建议先预览再执行) ## 使用原则 @@ -136,3 +101,4 @@ AI 会执行: 2. **结构化**:使用三元组格式存储关系 3. **定期清理**:删除过时或错误的信息 4. **关联思考**:利用关系进行联想记忆 +5. **与 memory-core 配合**:对话历史由 memory-core 管理,结构化事实由 GraphMemory 管理 diff --git a/ts/bundled-skills/graph-memory-persona/SKILL.md b/ts/bundled-skills/graph-memory-persona/SKILL.md index 188153f..05aeb8c 100644 --- a/ts/bundled-skills/graph-memory-persona/SKILL.md +++ b/ts/bundled-skills/graph-memory-persona/SKILL.md @@ -1,6 +1,6 @@ --- name: graph-memory-persona -description: "管理 AI 人设 - 更新或清除 AI 角色特征。使用 persona_update 更新、persona_clear 清除" +description: "管理 AI 人设 - 更新或清除 AI 角色特征。作为增强工具,通过 graph_memory 的 persona_update/clear 操作实现" metadata: {"openclaw": {"requires": {"bins": ["node"]}}} user-invocable: true --- @@ -9,19 +9,52 @@ user-invocable: true 管理 AI 的人设/角色特征。 +> **定位声明**:本 skill 通过 `graph_memory` 工具的 `persona_update`/`persona_clear` 操作实现。是 **OpenClaw 的增强功能**,不替代任何核心机制。LLM 可自主选择是否查询/更新人设。 + +## 与主系统的关系 + +- **不强制**:不会每轮自动查询人设,由 LLM 根据上下文决定 +- **可选调用**:当用户提到"记住我是..."、"你的角色是..."等场景时触发 +- **数据存储**:人设数据以三元组形式存储在图数据库中(subject=AI) + ## 操作 ### 1. persona_update - 更新人设 更新 AI 的角色特征。 -**参数**: -- `attributes`: 属性数组,每个包含 attribute 和 value -- `mode`: 更新模式(merge 合并或 replace 替换) +**参数:** +- `attributes`: 属性数组,每个包含 `attribute`(属性名)和 `value`(属性值) +- `mode`: 更新模式,`merge`(合并,默认)或 `replace`(替换) + +**示例:** +```yaml +action: persona_update +params: + attributes: + - attribute: "角色" + value: "猫娘" + - attribute: "性格" + value: "活泼" + mode: "merge" +``` ### 2. persona_clear - 清除人设 清除 AI 的所有角色特征。 -**参数**: -- `confirm`: 确认为 true 才能执行清除 +**参数:** +- `confirm`: 必须为 `true` 才能执行清除(安全措施) + +**示例:** +```yaml +action: persona_clear +params: + confirm: true +``` + +## 使用建议 + +1. 人设信息应简洁、持久(如"用户喜欢Python"、"我是技术助手") +2. 避免存储临时性、易变的信息到人设图 +3. 与 memory-core 配合:人设由 GraphMemory 管理,对话风格由系统提示管理 diff --git a/ts/bundled-skills/graph-memory-task/SKILL.md b/ts/bundled-skills/graph-memory-task/SKILL.md index a4a09bd..7e16f98 100644 --- a/ts/bundled-skills/graph-memory-task/SKILL.md +++ b/ts/bundled-skills/graph-memory-task/SKILL.md @@ -1,6 +1,6 @@ --- name: graph-memory-task -description: "管理连续性任务 - 创建、更新、删除任务节点。使用 task_create 创建、task_set_state 更新状态" +description: "管理连续性任务 - 创建、更新、删除任务节点。作为增强工具,通过 graph_memory 的 task_* 操作实现" metadata: {"openclaw": {"requires": {"bins": ["node"]}}} user-invocable: true --- @@ -9,36 +9,68 @@ user-invocable: true 管理长期/连续性任务。 +> **定位声明**:本 skill 通过 `graph_memory` 工具的 `task_create`/`task_set_state`/`task_delete`/`task_link_info` 操作实现。是 **OpenClaw 的增强功能**,提供任务追踪能力,不替代任何核心机制。 + +## 与主系统的关系 + +- **不强制**:不会每轮自动查询任务状态,由 LLM 根据用户请求决定 +- **可选调用**:当用户提到"帮我记住这个任务"、"完成这个任务"等场景时触发 +- **数据存储**:任务数据以三元组形式存储在图数据库中(subject=task_id) + ## 操作 ### 1. task_create - 创建任务 创建新的任务节点。 -**参数**: -- `task_id`: 唯一任务标识 -- `description`: 任务描述 -- `info_nodes`: 可选的相关信息节点 +**参数:** +- `task_id`: 唯一任务标识(必需) +- `description`: 任务描述(必需) +- `info_nodes`: 可选的相关信息节点数组 + +**示例:** +```yaml +action: task_create +params: + task_id: "Task_学习TypeScript" + description: "学习 TypeScript 并完成项目" + info_nodes: ["TypeScript文档", "教程链接"] +``` ### 2. task_set_state - 设置状态 更新任务状态。 -**参数**: -- `task_id`: 任务ID -- `state`: 新状态 (进行中/已完成/已暂停/已取消) +**参数:** +- `task_id`: 任务ID(必需) +- `state`: 新状态,`进行中`/`已完成`/`已暂停`/`已取消`(必需) + +**示例:** +```yaml +action: task_set_state +params: + task_id: "Task_学习TypeScript" + state: "已完成" +``` ### 3. task_delete - 删除任务 删除任务节点。 -**参数**: -- `task_id`: 任务ID +**参数:** +- `task_id`: 任务ID(必需) ### 4. task_link_info - 关联信息 将信息节点关联到任务。 -**参数**: -- `task_id`: 任务ID -- `info_node`: 信息节点 +**参数:** +- `task_id`: 任务ID(必需) +- `info_node`: 信息节点名称(必需) + +## 使用建议 + +1. 任务ID应具有描述性(如 `Task_学习TypeScript`) +2. 任务描述应清晰说明目标和上下文 +3. 定期使用 `recall` 查询任务状态,了解进行中的任务 +4. 与 memory-core 配合:任务列表由 GraphMemory 管理,具体执行细节由对话上下文管理 diff --git a/ts/bundled-skills/graph-memory/SKILL.md b/ts/bundled-skills/graph-memory/SKILL.md index e3140b3..290738c 100644 --- a/ts/bundled-skills/graph-memory/SKILL.md +++ b/ts/bundled-skills/graph-memory/SKILL.md @@ -1,24 +1,44 @@ --- name: graph-memory -description: "图记忆工具 - 检索、写入、删除记忆,管理人设和任务。使用 recall 检索、commit 写入、purge 删除" +description: "图记忆工具 - 检索、写入、删除记忆,管理人设和任务。作为 OpenClaw memory-core 的增强补充,不替代其核心功能" metadata: {"openclaw": {"requires": {"bins": ["node"]}}} user-invocable: true --- -# GraphMemory 图记忆操作 +# GraphMemory 图记忆系统 -你可以通过以下操作与图记忆系统交互。 +让 AI 拥有真正的长期记忆能力。 -## 核心操作 +> **定位声明**:本工具是 **OpenClaw memory-core 的增强补充**,而非替代。memory-core 负责 session transcripts 和历史消息管理,GraphMemory 提供图数据库形式的结构化长期记忆。两者可并存运行。 + +## 与 memory-core 的关系 + +| 功能 | memory-core | GraphMemory (本工具) | +|------|-------------|---------------------| +| 对话历史 | ✅ 自动保存 messages | ❌ 不管理对话历史 | +| 结构化记忆 | ❌ 无 | ✅ 三元组图存储 | +| 人设管理 | ❌ 无 | ✅ persona_update/clear | +| 任务追踪 | ❌ 无 | ✅ task_create/set_state | +| 自动触发 | ✅ 自动索引检索 | ❌ LLM 可选调用 | + +## 核心概念 + +### 实体 (Entity) +现实世界中的对象,如"用户"、"Python"、"WaterFlow"。 + +### 关系 (Relation) +连接两个实体的关系,格式为三元组:主体 - 关系 - 客体。 + +## 可用命令 ### 1. recall - 检索记忆 从记忆图中检索相关信息。 **参数**: -- `queryIntent`: 搜索意图/关键词 +- `queryIntent`: 搜索意图/关键词(必需,若无则需提供 seedEntities) - `seedEntities`: 可选的种子实体名 -- `depth`: 检索深度 +- `depth`: 检索深度 1-5(默认 2) - `sessionFilter`: 可选的会话ID过滤 ### 2. commit - 写入记忆 @@ -26,7 +46,7 @@ user-invocable: true 将信息写入记忆图。 **参数**: -- `triplets`: 三元组数组,每个包含 subject, relation, object +- `triplets`: 三元组数组,每个包含 subject, relation, object(必需) - `sessionId`: 会话ID - `turnId`: 轮次ID @@ -37,7 +57,7 @@ user-invocable: true **参数**: - `criteria`: 删除条件 (subject, target, relation, sessionId) - `mode`: 删除模式 (soft/hard/supersede) -- `newRelation`: 可选的替代关系 +- `newRelation`: 替代关系(supersede 模式必需) ### 4. introspect - 查看状态 @@ -63,3 +83,4 @@ user-invocable: true 2. **结构化**: 使用三元组 (主体-关系-客体) 格式 3. **关联**: 通过关系连接相关实体 4. **定期清理**: 删除过时或错误的信息 +5. **与 memory-core 配合**: 对话历史由 memory-core 管理,结构化事实由 GraphMemory 管理