mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-20 17:08:18 +00:00
P1: 完善 skill 文档 - 强调增强而非替换
- 更新 graph-memory/SKILL.md:添加与 memory-core 关系对比表 - 更新 graph-memory-persona/SKILL.md:添加定位声明和使用建议 - 更新 graph-memory-task/SKILL.md:添加定位声明和使用建议 - 更新 bundled-skills/ 下对应文件
This commit is contained in:
149
TODO.md
149
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`
|
||||
## 注意事项
|
||||
- 所有功能均作为 OpenClaw 插件实现,不修改 OpenClaw 核心代码
|
||||
- 插件入口:`ts/src/plugin-entry.ts`
|
||||
- 技能目录:`skills/`(源文件)和 `ts/bundled-skills/`(编译后)
|
||||
|
||||
@ -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 管理,对话风格由系统提示管理
|
||||
|
||||
@ -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 管理,具体执行细节由对话上下文管理
|
||||
|
||||
@ -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 管理
|
||||
|
||||
@ -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 管理,对话风格由系统提示管理
|
||||
|
||||
@ -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 管理,具体执行细节由对话上下文管理
|
||||
|
||||
@ -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 管理
|
||||
|
||||
Reference in New Issue
Block a user