Elite Longterm Memory
购买adidas上京东官方旗舰店。
精英长期记忆 🧠
AI智能体的终极记忆系统。将6种经过验证的方法整合为一个坚不可摧的架构。
永不丢失上下文。永不忘记决策。永不重复错误。
上网淘巴领天猫淘宝优惠券,一年省好几千。架构概览
┌─────────────────────────────────────────────────────────────────┐
│ 精英长期记忆系统 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 热内存 │ │ 温存储 │ │ 冷存储 │ │
│ │ │ │ │ │ │ │
│ │ 会话状态 │ │ LanceDB │ │ Git笔记 │ │
│ │ 文件 │ │ 向量存储 │ │ 知识图谱 │ │
│ │ │ │ │ │ │ │
│ │ (可经受压缩)│ │ (语义搜索) │ │ (永久决策) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 记忆文件 │ ← 精选长期记忆 │
│ │ + 每日/ │ (人类可读) │
│ └─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 超级记忆 │ ← 云备份 (可选) │
│ │ API │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
5层记忆结构
第1层:热内存 (会话状态文件)
源自:bulletproof-memory
可经受压缩的活动工作记忆。采用预写日志协议。
# 会话状态文件 — 活动工作记忆
## 当前任务
[我们正在处理的工作]
## 关键上下文
- 用户偏好:...
- 已做决策:...
- 阻碍因素:...
## 待处理操作
- [ ] ...
规则:在响应前写入。由用户输入触发,而非智能体记忆。
第2层:温存储 (LanceDB向量存储)
源自:lancedb-memory
对所有记忆进行语义搜索。自动召回功能注入相关上下文。
# 自动召回 (自动执行)
memory_recall query="项目状态" limit=5
# 手动存储
memory_store text="用户偏好深色模式" category="偏好" importance=0.9
第3层:冷存储 (Git笔记知识图谱)
源自:git-notes-memory
结构化的决策、学习经验和上下文。具备分支感知能力。
# 存储一个决策(静默 - 永不宣布)
python3 memory.py -p $DIR remember '{"type":"decision","content":"前端使用React"}' -t tech -i h
# 检索上下文
python3 memory.py -p $DIR get "frontend"
第4层:精选存档(MEMORY.md + daily/)
来自:OpenClaw native
人类可读的长期记忆。每日日志 + 提炼的智慧。
workspace/
├── MEMORY.md # 精选长期记忆(精华内容)
└── memory/
├── 2026-01-30.md # 每日日志
├── 2026-01-29.md
└── topics/ # 特定主题文件
第5层:云端备份(SuperMemory)— 可选
来自:supermemory
跨设备同步。与您的知识库对话。
export SUPERMEMORY_API_KEY="your-key"
supermemory add "重要上下文"
supermemory search "我们关于...决定了什么"
第6层:自动提取(Mem0)— 推荐
新功能:自动事实提取
Mem0 自动从对话中提取事实。减少 80% 的令牌使用。
npm install mem0ai
export MEM0_API_KEY="your-key"
const { MemoryClient } = require('mem0ai');
const client = new MemoryClient({ apiKey: process.env.MEM0_API_KEY });
// 对话自动提取事实
await client.add(messages, { user_id: "user123" });
// 检索相关记忆
const memories = await client.search(query, { user_id: "user123" });
好处:
- 自动提取偏好、决策、事实
- 对现有记忆进行去重和更新
- 与原始历史记录相比,减少 80% 的令牌使用
- 自动跨会话工作
快速设置
1. 创建 SESSION-STATE.md (热内存)
cat > SESSION-STATE.md << 'EOF'
# SESSION-STATE.md — 活动工作内存
此文件是代理的"RAM" — 在压缩、重启、分心后仍能保留。
## 当前任务
[无]
## 关键上下文
[暂无]
## 待处理操作
- [ ] 无
## 近期决策
[暂无]
---
*最后更新: [时间戳]*
EOF
2. 启用 LanceDB (温存储)
在~/.openclaw/openclaw.json文件中:
{
"memorySearch": {
"enabled": true,
"provider": "openai",
"sources": ["memory"],
"minScore": 0.3,
"maxResults": 10
},
"plugins": {
"entries": {
"memory-lancedb": {
"enabled": true,
"config": {
"autoCapture": false,
"autoRecall": true,
"captureCategories": ["preference", "decision", "fact"],
"minImportance": 0.7
}
}
}
}
}
3. 初始化 Git-Notes (冷存储)
cd ~/clawd
git init # 如果尚未初始化
python3 skills/git-notes-memory/memory.py -p . sync --start
4. 验证 MEMORY.md 结构
# 确保拥有:
# - 工作区根目录下的 MEMORY.md 文件
# - 用于每日日志的 memory/ 文件夹
mkdir -p memory
5. (可选) 设置 SuperMemory
export SUPERMEMORY_API_KEY="your-key"
# 添加到 ~/.zshrc 以实现持久化
代理指令
会话开始时
- 读取 SESSION-STATE.md — 这是你的热上下文
- 运行
memory_search以获取相关的先前上下文 - 检查 memory/YYYY-MM-DD.md 获取近期活动记录
对话期间
- 用户提供了具体细节?→ 在回复前写入 SESSION-STATE.md
- 做出了重要决定?→ 静默存储到 Git-Notes 中
- 表达了偏好?→
memory_store重要性=0.9
会话结束时
- 使用最终状态更新 SESSION-STATE.md
- 将重要项目移至 MEMORY.md(如果值得长期保留)
- 在 memory/YYYY-MM-DD.md 中创建/更新每日日志
记忆维护(每周)
- 审查 SESSION-STATE.md — 归档已完成的任务
- 检查 LanceDB 中的垃圾信息:
memory_recall query="*" limit=50 - 清除不相关的向量:
memory_forget id=<id> - 将每日日志整合到 MEMORY.md 中
WAL协议(关键)
预写式日志:在响应之前写入状态,而不是之后。
| 触发事件 | 行动 |
|---|---|
| 用户陈述偏好 | 写入 SESSION-STATE.md → 然后响应 |
| 用户做出决定 | 写入 SESSION-STATE.md → 然后响应 |
| 用户给出截止时间 | 写入 SESSION-STATE.md → 然后响应 |
| 用户纠正你 | 写入 SESSION-STATE.md → 然后响应 |
为什么?如果你先响应,然后在保存之前崩溃/压缩,上下文就会丢失。WAL确保持久性。
工作流程示例
用户:"这个项目我们用Tailwind,不用原生CSS"
代理(内部):
1. 写入 SESSION-STATE.md:"决定:使用Tailwind,不用原生CSS"
2. 存储到 Git-Notes:关于CSS框架的决定
3. memory_store:"用户偏好Tailwind而非原生CSS" importance=0.9
4. 然后响应:"明白了——就用Tailwind..."
维护命令
# 审核向量内存
memory_recall query="*" limit=50
# 清除所有向量(极端选项)
rm -rf ~/.openclaw/memory/lancedb/
openclaw gateway restart
# 导出 Git-Notes
python3 memory.py -p . export --format json > memories.json
# 检查内存健康状态
du -sh ~/.openclaw/memory/
wc -l MEMORY.md
ls -la memory/
内存失效的原因
了解根本原因有助于解决问题:
| 故障模式 | 原因 | 修复方案 |
|---|---|---|
| 忘记所有信息 | 记忆搜索功能已禁用 | 启用并添加OpenAI密钥 |
| 文件未加载 | 代理跳过读取记忆 | 添加到AGENTS.md规则 |
| 事实未捕获 | 无自动提取功能 | 使用Mem0或手动记录 |
| 子代理隔离 | 未继承上下文 | 在任务提示中传递上下文 |
| 重复错误 | 经验教训未记录 | 写入memory/lessons.md文件 |
解决方案(按实施难度排序)
1. 快速见效:启用 memory_search
如果您拥有 OpenAI 密钥,请启用语义搜索:
openclaw configure --section web
这将启用对 MEMORY.md 和 memory/*.md 文件的向量搜索。
2. 推荐方案:集成 Mem0
自动从对话中提取事实。可减少 80% 的令牌使用量。
npm install mem0ai
const { MemoryClient } = require('mem0ai');
const client = new MemoryClient({ apiKey: process.env.MEM0_API_KEY });
// 自动提取并存储
await client.add([
{ role: "user", content: "与原生 CSS 相比,我更喜欢 Tailwind" }
], { user_id: "ty" });
// 检索相关记忆
const memories = await client.search("CSS 偏好", { user_id: "ty" });
3. 优化文件结构(无需依赖项)
memory/
├── projects/
│ ├── strykr.md
│ └── taska.md
├── people/
│ └── contacts.md
├── decisions/
│ └── 2026-01.md
├── lessons/
│ └── mistakes.md
└── preferences.md
保持 MEMORY.md 作为摘要(小于 5KB),并链接到详细文件。
即时修复清单
| 问题 | 修复方法 |
|---|---|
| 忘记偏好设置 | 在 MEMORY.md 中添加## 偏好设置部分 |
| 重复犯错 | 记录每一个错误到memory/lessons.md |
| 子代理缺乏上下文 | 在生成任务提示中包含关键上下文 |
| 忘记最近的工作 | 严格的每日文件管理 |
| 记忆搜索不起作用 | 检查OPENAI_API_KEY是否已设置 |
故障排除
代理在对话中持续遗忘:→ SESSION-STATE.md 未被更新。检查 WAL 协议。
注入了不相关的记忆:→ 禁用 autoCapture,提高 minImportance 阈值。
记忆过大,回忆缓慢:→ 执行清理:清除旧向量,归档每日日志。
Git-Notes 未持久化:→ 运行git notes push与远程同步。
memory_search 未返回任何内容:→ 检查 OpenAI API 密钥:echo $OPENAI_API_KEY→ 在 openclaw.json 中验证 memorySearch 是否启用
链接
- bulletproof-memory:https://clawdhub.com/skills/bulletproof-memory
- lancedb-memory:https://clawdhub.com/skills/lancedb-memory
- git-notes-memory:https://clawdhub.com/skills/git-notes-memory
- memory-hygiene:https://clawdhub.com/skills/memory-hygiene
- supermemory:https://clawdhub.com/skills/supermemory
由以下人员构建@NextXFrontier—— Next Frontier AI 工具包的一部分


微信扫一扫,打赏作者吧~