Phase 7 / Ep 36: Memory 系统 —— MEMORY.md 与分层记忆架构
🎯 学习目标:掌握 OpenClaw 的分层长期记忆机制。
1. 为什么需要 Memory?
Session 是短期记忆——对话结束后就归档了。但你的 Agent 需要跨 Session 记住事情:你的名字、你的偏好、上周讨论的项目进展。
这就是 Memory 系统的作用。
2. 三层记忆模型
graph TB
subgraph Always["🔵 始终加载(每次会话)"]
SOUL["SOUL.md\n人格定义"]
USER["USER.md\n用户画像"]
IDENTITY["IDENTITY.md\n自我介绍"]
BOOTSTRAP["BOOTSTRAP.md\n启动指令"]
end
subgraph OnDemand["🟡 按需检索(memory_search)"]
MemoryMD["MEMORY.md\n记忆索引"]
Daily["memory/2026-04-06.md\n今日日记"]
People["memory/people/eric.md\n人物档案"]
Projects["memory/projects/app.md\n项目档案"]
Decisions["memory/decisions/db.md\n决策记录"]
end
subgraph Session["🟢 会话级别"]
Context["当前上下文窗口\n最近 N 轮对话"]
Compact["压缩后的历史摘要"]
end
Always -->|"每次自动加载"| Agent["🤖 Agent"]
Agent -->|"主动检索"| OnDemand
Agent -->|"实时维护"| Session3. MEMORY.md —— 记忆的目录
# 长期记忆索引
## 重要的人
- Eric: 我的主人,独立开发者,详见 people/eric.md
- Alice: Eric 的同事,后端工程师,详见 people/alice.md
## 活跃项目
- OpenClaw 教程: 正在撰写 40 期教程,详见 projects/openclaw-tutorial.md
- T-Block App: 时间管理应用,已上线,详见 projects/t-block.md
## 重要决策
- 数据库选型: 选择 PostgreSQL,详见 decisions/db-choice.md
- 部署方案: 选择 Hetzner + Docker,详见 decisions/deployment.md
## 常见问答
- Eric 喜欢简洁的回复
- Eric 的工作时间是 9:00-23:00,该时段外不要主动打扰
4. 日记系统 memory/
Agent 每天自动创建日记文件:
# 2026-04-06 日记
## 上午
- 08:30 Eric 询问了 OpenClaw v3 的新功能
- 09:15 帮 Eric 搜索了 MCP 协议文档
- 10:00 完成了教程 Ep 17 的大纲审核
## 下午
- 14:00 Eric 要求部署新版本
- 14:15 与 code-agent 协作完成测试
- 14:30 ops-agent 完成部署
## 今日学到的
- Eric 偏好用 Markdown 格式接收报告
5. 检索工具
Agent 在对话中可以主动检索记忆:
memory_search("Eric 上周讨论的项目")
→ 返回: projects/openclaw-tutorial.md 中的相关内容
memory_get("decisions/db-choice.md")
→ 返回: 完整的数据库选型决策记录
下节预告: Ep 37,MemSkill 实战——安装和配置 Memory 管理相关的 Skill,教 Agent 学会"记住"和"遗忘"。