前言:为什么你的 AI 总是"失忆"?
你有没有遇到过这种情况:
用户:"我昨天说的那个项目,进展怎么样了?"
AI:"抱歉,我不记得您说过什么项目..."
这不是 AI 笨,而是记忆系统设计的问题。
普通 Chatbot 是"金鱼记忆"——对话结束,一切清零。
OpenClaw 是"大象记忆"——有长期记忆、短期记忆、还有记忆检索机制。
但记忆不是自动工作的。你需要像养虾一样,定期"换水"、"喂食"、"清理",记忆系统才能健康运转。
这篇教程,我会手把手教你:
•🧠 记忆系统的分层设计原理
•📝 如何设计 MEMORY.md 的知识结构
•🔄 每日记忆 vs 长期记忆的同步策略
•🔍 记忆搜索的语义匹配技巧
•📊 实战案例:从聊天记录到结构化知识
一、记忆系统的分层架构
1.1 三层记忆模型
OpenClaw 的记忆系统分为三层:
┌─────────────────────────────────────────┐ │L3: 场景记忆 (Scene)│ │情境化、主题化的知识块(如用户画像、项目背景)│ └─────────────────────────────────────────┘ ↕ 按需加载 ┌─────────────────────────────────────────┐ │L2: 长期记忆 (MEMORY.md)│ │curated 的核心知识、偏好、决策│ └─────────────────────────────────────────┘ ↕ 定期同步 ┌─────────────────────────────────────────┐ │L1: 短期记忆 (Session)│ │对话历史、临时上下文、工具调用│ └─────────────────────────────────────────┘ |
每层的职责:
层级 | 存储位置 | 更新频率 | 生命周期 | 用途 |
L3 场景记忆 | memory/scene_blocks/*.md | 按需 | 长期 | 情境化知识(用户画像、项目背景) |
L2 长期记忆 | MEMORY.md | 每周 | 长期 | 核心偏好、重要决策、红线规则 |
L1 短期记忆 | memory/YYYY-MM-DD.md | 每日 | 短期 | 原始对话日志、临时事件 |
1.2 为什么需要分层?
问题:为什么不把所有记忆都塞进一个文件?
答案:三个原因——
1.性能:每次对话都加载全部记忆,Token 消耗巨大
2.精度:记忆太多会稀释关键信息,AI 找不到重点
3.维护:分层后,每层有明确的更新策略和责任人
类比:
•L3 场景记忆 = 图书馆的专题书架(按主题分类,按需查阅)
•L2 长期记忆 = 图书馆的核心藏书(精挑细选,长期保存)
•L1 短期记忆 = 图书馆的报刊架(每日更新,定期清理)
二、MEMORY.md 的设计艺术
2.1 标准结构
经过实战验证,以下结构最有效:
Markdown # MEMORY.md - Long-Term Memory _这是 curated 的长期记忆,不是原始日志。_ --- ## 🚫 用户红线 (绝对不能做的事) **记录时间**: 2026-03-28 1. **不泄露主人的隐私数据** - 隐私数据必须严格保密,绝不外泄 2. **不在群聊中过度发言** - 群聊中保持克制,不参与无关闲聊 3. **不在没有确认的情况下执行破坏性操作** - 删除、修改、外部发送必须先确认 --- ## 重要事件与决策 _(按时间倒序,只记录改变认知/行为的事件)_ - **2026-03-31**: 完成微信公众号配置,建立自动化文章发布工作流 - **2026-03-30**: AI Coding 项目经理 L1 培训第 1 场(线下,用户亲自担任讲师) - **2026-03-29**: 确定 AI 智能体协作系统 5 职能架构(项目经理、培训师、数据分析师、技术顾问、变革推动者) --- ## 学到的教训 _(踩过的坑、犯过的错、避免重复)_ - **GitHub 网络问题**: 国内服务器克隆 GitHub 仓库容易超时,建议使用镜像或代理 - **公众号发布服务**: wenyan-mcp 服务需确保 3000 端口开放且服务运行中 - **群聊发言边界**: 在群聊中收到 heartbeat 时,避免回复冗长内容,保持简洁 --- ## 长期偏好与习惯 _(用户的稳定偏好,AI 行为准则)_ - **沟通风格**: 像经验丰富的技术同事——直接说结论、务实优先、偶尔技术冷笑话 - **信息呈现**: 结构化、精炼,厌恶碎片化轰炸 - **行动原则**: 能直接做的事就直接做,不确定或有破坏性操作时才问"你确定吗?" - **作息时间**: 7 点起床,23 点睡觉 |
2.2 每个板块的作用
板块 | 作用 | 更新频率 | 示例 |
用户红线 | 安全边界,AI 行为的"宪法" | 极低(半年一次) | "不泄露隐私数据" |
重要事件与决策 | 上下文锚点,帮助 AI 理解当前状态 | 中(每周一次) | "完成公众号配置" |
学到的教训 | 避免重复犯错,持续改进 | 中(每周一次) | "GitHub 网络问题" |
长期偏好与习惯 | 个性化行为准则 | 低(每月一次) | "沟通风格:直接务实" |
2.3 常见错误
❌ 错误 1:把 MEMORY.md 当日记
Markdown ## 2026-04-02 今天天气不错,用户早上 7 点起床,吃了早餐... |
问题:这是原始日志,应该放在 memory/2026-04-02.md,不是 MEMORY.md
✅ 正确做法:
Markdown ## 重要事件与决策 - **2026-04-02**: 微信公众号文章工作流常态化使用,产出《"Agent 不是微服务"》技术文章 |
❌ 错误 2:记忆过于细碎
Markdown - 用户喜欢喝美式咖啡 - 用户喜欢用 VSCode - 用户不喜欢用 Tab 键 - 用户习惯用两个空格缩进 |
问题:信息密度太低,应该聚合
✅ 正确做法:
Markdown ## 长期偏好与习惯 - **开发工具**: VSCode,偏好空格缩进(2 空格) - **饮食习惯**: 咖啡偏好美式,不加糖 |
❌ 错误 3:没有记录时间
Markdown ## 重要事件 - 完成了 AI Coding 培训 |
问题:没有时间戳,无法判断信息时效性
✅ 正确做法:
Markdown ## 重要事件与决策 - **2026-03-31**: 完成两场 AI Coding 项目经理 L1 线下培训(多个技术团队合并参训) |
三、每日记忆的采集与同步
3.1 每日记忆文件结构
~/.openclaw/workspace/memory/ ├── 2026-03-28.md# 每日记忆 ├── 2026-03-29.md ├── 2026-03-30.md ├── 2026-03-31.md └── 2026-04-02.md |
每日记忆模板:
Markdown # 2026-04-02 ## 对话摘要 - 09:00-09:04: 执行微信公众号文章撰写工作流,产出《"Agent 不是微服务"》 - 22:13: 用户选择 OpenClaw 养虾教程第 2 篇选题(记忆系统) ## 重要事件 - 微信公众号工作流进入常态化使用阶段 ## 待办事项 - [ ] 撰写 OpenClaw 养虾教程② - [ ] 转换为飞书文档发送用户 |
3.2 同步策略:从 L1 到 L2
每周一次(建议周日晚上),执行以下流程:
Bash # 1. 回顾本周每日记忆 cat memory/2026-03-28.md cat memory/2026-03-29.md ... # 2. 提取值得长期保存的内容 # - 改变认知的决策 # - 重复出现的偏好 # - 重要的踩坑经验 # 3. 更新 MEMORY.md # - 新增重要事件 # - 更新长期偏好 # - 记录学到的教训 # 4. 清理过期每日记忆(可选) # 保留最近 30 天,更早的可以归档或删除 |
3.3 同步检查清单
在同步时,问自己这些问题:
•这个事件是否改变了 AI 的行为方式?
•这个偏好是否稳定(不是临时情绪)?
•这个教训是否值得未来避免?
•这个信息 3 个月后还有价值吗?
如果答案都是 Yes → 写入 MEMORY.md
如果有任何 No → 保留在每日记忆即可
四、场景记忆(Scene Blocks)
4.1 什么是场景记忆?
场景记忆是情境化的知识块,用于特定场景的快速加载。
示例场景:
•用户画像(姓名、职业、偏好、作息)
•项目背景(AI Coding 实施方案、团队结构)
•技术探索(个人项目、工具开发)
4.2 场景记忆结构
~/.openclaw/workspace/memory/scene_blocks/ ├── 用户画像 - 老阳.md ├── AI Coding 项目 - 实施方案.md ├── 技术探索 - 个人项目.md └── 微信公众号 - 工作流.md |
场景记忆模板:
Markdown # 用户画像 - 老阳 **热度**: 23 | **更新**: 2026-04-02 ## 基本信息 - 姓名:老阳 - 职业:前端研发团队管理者 - 团队规模:研发团队 - 协作平台账号:xxxx ## 工作与项目 - 负责领域:大屏前端、视频业务、Web 前端研发 - AI Coding 项目经理,推进团队 AI 技能培训 ## 沟通偏好 - 风格:直接务实,像经验丰富的技术同事 - 信息呈现:结构化、精炼 ## 重要事件 - 2026-03-30~31: 完成两场 AI Coding 线下培训(亲自担任讲师) - 2026-03-31: 建立微信公众号自动化工作流 |
4.3 场景记忆的加载时机
场景 | 触发条件 | 加载的记忆 |
日常对话 | 主会话启动 | 用户画像 + MEMORY.md |
项目讨论 | 提到"AI Coding" | AI Coding 项目场景 |
技术探索 | 提到"个人项目" | 技术探索场景 |
公众号写作 | 提到"公众号" | 微信公众号工作流场景 |
五、记忆搜索的语义匹配技巧
5.1 记忆搜索的工作原理
OpenClaw 使用语义搜索而非关键词匹配:
用户问:"我之前说的那个项目怎么样了?" ↓ 语义解析:项目 + 之前说过 + 进展 ↓ 检索记忆:AI Coding 项目、技术探索、公众号项目 ↓ 返回最相关的记忆片段 |
5.2 优化记忆搜索的策略
策略 1:使用清晰的标题
❌ 不好:
Markdown ## 一些事情 |
✅ 好:
Markdown ## AI Coding 项目 - 实施方案与培训进展 |
策略 2:添加元数据
Markdown **记录时间**: 2026-03-31 **相关人物**: 技术团队、研发团队 **项目阶段**: 试点执行 |
策略 3:使用一致的术语
如果用户说"AI Coding",不要一会儿写"AI 编程"、一会儿写"智能编码"。
保持一致 → 搜索更精准
5.3 记忆搜索的调试技巧
如果 AI 总是"找不到记忆",检查:
1.记忆文件是否存在?
Bash ls -la ~/.openclaw/workspace/memory/ |
2.记忆格式是否正确?
Bash cat MEMORY.md |
3.搜索关键词是否匹配?
○尝试用不同表述搜索同一内容
○添加同义词和别名
六、实战案例:从聊天到结构化知识
6.1 原始对话
用户:我想搞个技术产品化项目,有什么建议?
AI:技术产品化需要考虑...
用户:我有个合伙人可以全职做
AI:那可以考虑小团队模式...
用户:技术工具开发怎么样?
AI:技术工具开发适合...
用户:行,就这个方向了
6.2 第一步:写入每日记忆
Markdown # 2026-03-29 ## 对话摘要 - 用户提出技术产品化想法,从个人项目探索演进至技术工具开发方向 - 计划由合伙人全职负责 - 协作模式从"AI 合伙人"转向"小团队协作" |
6.3 第二步:创建场景记忆
Markdown # 技术探索 - 个人项目 **热度**: 2 | **更新**: 2026-03-29 ## 项目方向 - **领域**: 技术工具开发 - **模式**: 小团队协作(合伙人全职负责) - **状态**: 探索阶段 ## 决策背景 - 用户原计划基于行业背景创办个人项目 - 后调整为小团队模式,务实落地 |
6.4 第三步:同步到长期记忆
Markdown ## 重要事件与决策 - **2026-03-29**: 确定技术工具开发为探索方向,采用小团队协作模式(合伙人全职负责) |
七、记忆系统的维护清单
7.1 每日维护(AI 自动)
•创建当日记忆文件 memory/YYYY-MM-DD.md
•记录重要对话和事件
•更新待办事项状态
7.2 每周维护(AI + 用户)
•回顾本周每日记忆
•提取值得长期保存的内容
•更新 MEMORY.md
•清理过期记忆(可选)
7.3 每月维护(用户主导)
•审查场景记忆的准确性
•更新用户画像(如有变化)
•归档旧项目场景
•检查记忆搜索的准确性
八、常见问题 FAQ
Q1: 记忆太多会不会影响性能?
A: 会。这就是为什么要分层:
•L3 场景记忆:按需加载
•L2 长期记忆:保持精炼(建议<50 条)
•L1 短期记忆:定期清理
建议:MEMORY.md 控制在 2000 字以内
Q2: 记忆应该多详细?
A: 遵循"足够行动"原则:
•太简略:AI 无法理解上下文
•太详细:Token 浪费,搜索精度下降
平衡点:每条记忆 1-3 句话,包含关键信息(时间、人物、决策)
Q3: 记忆写错了怎么办?
A: 直接编辑修改。记忆是你的,AI 只是协助维护。
建议:在修改处添加注释:
Markdown - **2026-03-31**: 完成培训 ~~分 2 次~~(实际合并为 1 场,多个技术团队一起) |
Q4: 可以删除记忆吗?
A: 可以,但谨慎操作。
建议:
•过期信息 → 归档(移动到 memory/archive/)
•错误信息 → 修正而非删除
•隐私信息 → 可以删除
结语:记忆是养出来的
记忆系统不是一次配置、永远工作的魔法。
它像养虾一样,需要:
•🔄 定期换水:清理过期记忆
•🍖 按时喂食:持续记录新事件
•🔍 观察健康:检查搜索准确性
•📊 调整生态:优化结构和分类
好的记忆系统,会让你的 AI 助手:
•记得你的偏好
•理解你的上下文
•避免重复犯错
•越用越懂你
下篇预告
《OpenClaw 养虾教程③ - 子代理协作模式》
当任务太复杂时,如何让 AI 创建"分身"并行处理?
主代理和子代理如何通信?什么时候该用 run 模式,什么时候该用 session 模式?
敬请期待!
夜雨聆风