乐于分享
好东西不私藏

OpenClaw 养虾教程② - 记忆系统的艺术

OpenClaw 养虾教程② - 记忆系统的艺术

前言:为什么你的 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 模式?

敬请期待!