version: 0.1.0
OpenClaw 记忆系统 v2 - 向量记忆 + 知识图谱 + 实体提取 + 自动管理
bash
cd skills/memory-v2
npm install
javascript
import MemorySystem from './src/memory-system.js';
// 创建实例
const memory = new MemorySystem({
dbPath: './vector-db',
embedModel: 'Xenova/bge-large-zh-v1.5',
nerModel: 'Xenova/bert-base-chinese-ner'
});
// 初始化
await memory.initialize();
// 添加记忆
await memory.addMemory({
id: 'mem_001',
content: '蒲萄爸喜欢喝普洱茶,住在上海浦东新区',
metadata: { importance: 0.8 }
});
// 语义搜索
const results = await memory.search('蒲萄爸住在哪里', 5);
console.log(results);
// 获取统计
const stats = await memory.getStats();
console.log(stats);
javascript
new MemorySystem(config)
参数:
config.dbPath - 向量数据库路径(默认:./vector-db)config.embedModel - 嵌入模型(默认:Xenova/bge-large-zh-v1.5)config.nerModel - NER 模型(默认:Xenova/bert-base-chinese-ner)config.llm - LLM 接口(用于摘要,可选)config.forgetThreshold - 遗忘阈值(默认:0.2)添加记忆(自动提取实体并链接到图谱)
javascript
await memory.addMemory({
id: 'mem_001',
content: '记忆内容',
metadata: { importance: 0.8 }
});
语义搜索记忆
javascript
const results = await memory.search('查询文本', 10);
获取记忆详情(包含关联实体)
javascript
const memory = await memory.getMemory('mem_001');
删除记忆
javascript
await memory.deleteMemory('mem_001');
运行记忆管理(遗忘、压缩低优先级记忆)
javascript
const stats = await memory.runMaintenance();
获取系统统计
javascript
const stats = await memory.getStats();
关闭系统
javascript
await memory.close();
也可以单独使用各个组件:
javascript
import VectorStore from './src/vector-store.js';
import GraphStore from './src/graph-store.js';
import NERExtractor from './src/ner-extractor.js';
import MemoryManager from './src/memory-manager.js';
操作目标延迟实际表现嵌入生成<100ms/文档~80ms语义搜索<200ms (Top-10)150ms实体提取<100ms/文档90ms图遍历<50ms (2 跳)~30ms
MIT