mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-25 03:18:18 +00:00
5.9 KiB
5.9 KiB
TrulyMEM - WaterFlow 适配版
让 AI 拥有真正的长期记忆能力 - WaterFlow 框架适配版
简介
本项目是将 TrulyMEM 的图记忆能力迁移到 WaterFlow 框架的 TypeScript 实现。
作为 WaterFlow 的内置模块,提供图记忆功能:
- recall: 检索记忆
- commit: 写入记忆
- purge: 删除记忆
- introspect: 查看状态
- persona_update/clear: 人设管理
- task_create/set_state/delete: 任务管理
目录结构
ts/
├── src/runtime/core/
│ ├── graph_memory/ # 图记忆核心模块
│ │ ├── types.ts # 类型定义
│ │ ├── graph_database.ts # 图数据库
│ │ ├── memory_service.ts # 记忆服务
│ │ └── index.ts # 模块导出
│ └── tools/
│ └── builtin/
│ └── graph_memory_tool.ts # Tool 实现
│
├── bundled-skills/ # Skill 定义
│ └── graph_memory/
│ ├── SKILL.md # 记忆操作
│ ├── persona/SKILL.md # 人设管理
│ └── task/SKILL.md # 任务管理
│
├── package.json # 项目配置
└── tsconfig.json # TypeScript 配置
在 WaterFlow 中使用
本模块支持两种使用方式:作为模块直接引用 或 作为 Skill 调用。
方式一:作为模块直接引用(适合开发者集成)
步骤 1:复制源码
将本项目的 ts/ 目录复制到你的 WaterFlow 项目中,例如:
你的WaterFlow项目/
├── src/
│ └── runtime/
│ └── core/
│ └── graph_memory/ # 从 ts/src/runtime/core/ 复制
└── ts/ # 或直接放在项目根目录
└── bundled-skills/ # Skill 文件
步骤 2:编译 TypeScript
cd ts/
npm install
npm run build
编译后的文件会输出到 ts/dist/ 目录。
步骤 3:在代码中引用
import { createGraphMemoryTool } from './runtime/core/tools/builtin/graph_memory_tool';
// 创建工具实例,可以传入 sessionId 来区分不同会话
const tool = createGraphMemoryTool('my-session-id');
// 准备执行上下文
const context = {
toolCallId: 'call-123',
workingDirectory: '/project',
abortController: { signal: {} },
config: { timeout: 30000 },
logger: {
info: console.log,
warn: console.warn,
error: console.error,
debug: console.debug
}
};
// 写入记忆示例
const commitResult = await tool.handler({
action: 'commit',
params: {
triplets: [
{ subject: '用户', relation: '喜欢', object: '编程' },
{ subject: '用户', relation: '正在学习', object: 'TypeScript' }
]
}
}, context);
console.log(commitResult);
// 输出: {"success":true,"data":{"createdEntities":4,"createdRelations":2}}
// 检索记忆示例
const recallResult = await tool.handler({
action: 'recall',
params: {
queryIntent: '用户 编程'
}
}, context);
console.log(recallResult);
// 输出: {"success":true,"data":{"entities":[...],"relations":[...],"message":"找到 X 个实体, Y 条关系"}}
方式二:使用 Skill(推荐,适合 AI Agent 调用)
步骤 1:配置 Skill 来源
在你的 WaterFlow 项目中,找到 Skill 配置文件,添加 bundled 来源指向本项目的 Skill 目录:
// skill_interface.ts 或配置文件中
import { DEFAULT_SKILL_LOADER_CONFIG } from './skill_interface';
const config = {
...DEFAULT_SKILL_LOADER_CONFIG,
sources: {
...DEFAULT_SKILL_LOADER_CONFIG.sources,
bundled: './ts/bundled-skills' // 指向本项目的 Skill 目录
},
enabledSources: ['project', 'bundled']
};
步骤 2:通过 Agent 调用 Skill
在你的 Agent 或 Workflow 中,通过 Tool 调用 Skill:
使用 skill:graph_memory 进行以下操作:
1. 写入记忆: 我喜欢编程,正在学习 TypeScript
2. 检索记忆: 找出我和编程相关的记忆
或者通过代码调用:
// 通过 SkillTool 调用
const skillResult = await skillTool.handler({
skill: 'graph_memory',
args: 'recall - queryIntent: "用户 学习"'
}, context);
可用 Skill 列表
| Skill 名称 | 功能 | 使用场景 |
|---|---|---|
graph_memory |
记忆 CRUD | 读取/写入/删除记忆 |
graph_memory_persona |
人设管理 | 设置 AI 角色性格 |
graph_memory_task |
任务管理 | 创建/更新长期任务 |
API
GraphMemoryTool
const tool = new GraphMemoryTool(sessionId?: string);
Actions
| Action | 说明 | 参数 |
|---|---|---|
recall |
检索记忆 | queryIntent, seedEntities, sessionFilter |
commit |
写入记忆 | triplets, sessionId, turnId |
purge |
删除记忆 | criteria, mode |
introspect |
查看状态 | - |
persona_update |
更新人设 | attributes, mode |
persona_clear |
清除人设 | confirm |
task_create |
创建任务 | task_id, description, info_nodes |
task_set_state |
设置状态 | task_id, state |
task_delete |
删除任务 | task_id |
示例
写入记忆
{
"action": "commit",
"params": {
"triplets": [
{ "subject": "用户", "relation": "喜欢", "object": "TypeScript" },
{ "subject": "用户", "relation": "正在学习", "object": "WaterFlow" }
]
}
}
检索记忆
{
"action": "recall",
"params": {
"queryIntent": "用户 学习"
}
}
创建任务
{
"action": "task_create",
"params": {
"task_id": "Task_学习TypeScript",
"description": "学习 TypeScript 并完成项目",
"info_nodes": ["文档链接", "教程链接"]
}
}