56e787a5a81c4a945e7183e9310e0e398f21e72b
Skill 格式修正: - allowed_tools → allowed-tools (kebab-case) - user_invocable → user-invocable (kebab-case) - persona skill name: graph_memory_persona → persona (匹配目录名) - task skill name: graph_memory_task → task (匹配目录名) Tool 接口优化: - installTrulyMEM: require() → ESM dynamic import - handler: 添加 abort 信号检查 - graph_database: _platform 类型 any → Platform - graph_database: 修复 fs null 检查和 ArrayBuffer 类型转换 类型声明完善: - waterflow.d.ts 从 193 行扩展到 400+ 行 - 添加 SchemaType, ToolFeatures, ToolMetadata 等完整类型 - 添加 network, tools, builtinTools 等缺失字段 - 添加 waterflow/runtime/core/tools/builtin 模块声明 - 添加 waterflow/runtime/core/tools/tool_registry 模块声明 清理: - 删除 TRACKING.md, 重构.md, migration_plan.md, todo_progress.md - 删除 docs/integration/waterflow-design.md
TrulyMEM - WaterFlow Adapter
Give AI true long-term memory capability - WaterFlow framework adapter version
Introduction
This project ports TrulyMEM's graph memory capability to TypeScript for the WaterFlow framework.
As a built-in module for WaterFlow, it provides graph memory functionality:
- recall: Retrieve memories
- commit: Commit memories
- purge: Delete memories
- introspect: Inspect status
- persona_update/clear: Persona management
- task_create/set_state/delete: Task management
Directory Structure
ts/
├── src/runtime/core/
│ ├── graph_memory/ # Graph memory core module
│ │ ├── types.ts # Type definitions
│ │ ├── graph_database.ts # Graph database
│ │ ├── memory_service.ts # Memory service
│ │ └── index.ts # Module exports
│ └── tools/
│ └── builtin/
│ └── graph_memory_tool.ts # Tool implementation
│
├── bundled-skills/ # Skill definitions
│ └── graph_memory/
│ ├── SKILL.md # Memory operations
│ ├── persona/SKILL.md # Persona management
│ └── task/SKILL.md # Task management
│
├── package.json # Project config
└── tsconfig.json # TypeScript config
Usage in WaterFlow
This module requires zero changes to WaterFlow source code. Just register it in your entry file.
Quick Start (Recommended)
Step 1: Install
npm install /path/to/TrulyMEM-TrueHumanMEM/ts
Or add to package.json:
{
"dependencies": {
"trulymem-waterflow": "file:../TrulyMEM-TrueHumanMEM/ts"
}
}
Then run:
npm install
Step 2: Register in your entry file
Just two lines, zero changes to WaterFlow:
import { getPlatform } from 'waterflow/platform';
import { installTrulyMEM } from 'trulymem/tools';
// One-line install, returns configured ToolRegistry
const registry = installTrulyMEM(getPlatform(), 'my-session-id');
// Continue assembling WaterFlow...
const toolExecutor = new ToolExecutor(registry);
Manual Registration (More control)
If you want to control ToolRegistry creation yourself:
import { getPlatform } from 'waterflow/platform';
import { initializeToolRegistry } from 'waterflow/runtime/core/tools/builtin';
import { registerGraphMemoryTool } from 'trulymem/tools';
const platform = getPlatform();
const registry = initializeToolRegistry(platform);
// Register graph memory tool
registerGraphMemoryTool(registry, 'my-session-id');
// Continue assembling...
Use Skill (AI Agent)
Step 1: Configure Skill source
const config = {
...DEFAULT_SKILL_LOADER_CONFIG,
sources: {
...DEFAULT_SKILL_LOADER_CONFIG.sources,
bundled: './node_modules/trulymem-waterflow/bundled-skills'
},
enabledSources: ['project', 'bundled']
};
Step 2: Call via Agent
AI Agent automatically reads SKILL.md and calls builtin:graph_memory tool.
Available Skills
| Skill Name | Function | Use Case |
|---|---|---|
graph_memory |
Memory CRUD | Read/Write/Delete memories |
graph_memory_persona |
Persona management | Set AI role/personality |
graph_memory_task |
Task management | Create/update long-term tasks |
API
GraphMemoryTool
const tool = new GraphMemoryTool(sessionId?: string);
Actions
| Action | Description | Parameters |
|---|---|---|
recall |
Retrieve memories | queryIntent, seedEntities, sessionFilter |
commit |
Commit memories | triplets, sessionId, turnId |
purge |
Delete memories | criteria, mode |
introspect |
Inspect status | - |
persona_update |
Update persona | attributes, mode |
persona_clear |
Clear persona | confirm |
task_create |
Create task | task_id, description, info_nodes |
task_set_state |
Set state | task_id, state |
task_delete |
Delete task | task_id |
Examples
Commit Memory
{
"action": "commit",
"params": {
"triplets": [
{ "subject": "User", "relation": "likes", "object": "TypeScript" },
{ "subject": "User", "relation": "is learning", "object": "WaterFlow" }
]
}
}
Recall Memory
{
"action": "recall",
"params": {
"queryIntent": "User learning"
}
}
Create Task
{
"action": "task_create",
"params": {
"task_id": "Task_LearnTypeScript",
"description": "Learn TypeScript and complete project",
"info_nodes": ["Documentation", "Tutorial"]
}
}
License
Description
Languages
Python
63.5%
HTML
33.5%
Shell
1.6%
CSS
0.8%
C++
0.3%
Other
0.3%