OpenClaw ACP Harness 系列 05:Memory 与 Heartbeat——让 AI 拥有持久记忆
每次重启 ChatGPT,它都不认识你了。OpenClaw 的 AI 有文件作为记忆——它记得你喜欢什么,正在做什么项目,上次发生了什么。
一、Memory 系统的四个层次
如图所示,OpenClaw 的记忆分为四层,从上到下重要性递减:
第一层:长期记忆(MEMORY.md)
# MEMORY.md —— 核心长期记忆
## 用户信息
- 名字:Devin,时区 Asia/Shanghai
- 偏好:直接给答案,不铺垫,用中文
## 当前项目
- 公众号文章系列:D:\project\article
- 图片目录:D:\project\images
- 文章用 WenQuanYi Micro Hei 字体避免乱码
## 重要约定
- SVG 图片必须先转 PNG 再用(公众号不支持 SVG)
- 生成文件放 workspace/temp/ 目录
## 记录的教训
- 2024-04: cairosvg 渲染中文需要指定中文字体
关键规则: MEMORY.md 只在主会话(直接对话)加载,在群聊中不加载,防止个人信息泄露。
第二层:日记记忆(memory/YYYY-MM-DD.md)
每天的原始日志,记录发生了什么:
# 2024-04-21
## 今天做的事
- 生成安卓逆向系列10篇文章
- 修复 SVG 中文乱码问题(改用 WenQuanYi 字体)
- 写 AI Coding Harness 系列8篇
## 踩的坑
- cairosvg 在 Linux 上找不到 Arial 字体
解决:所有 SVG 改用 WenQuanYi Micro Hei,sans-serif
## 待办
- OpenClaw ACP Harness 系列还差最后几篇
第三层:Heartbeat 状态(memory/heartbeat-state.json)
{
"lastChecks": {
"email": 1713661234,
"calendar": 1713650000,
"weather": null
}
}
第四层:上下文窗口(会话内存)
当前对话历史,会话结束即消失。
二、记忆的写入时机
什么时候更新记忆?
立即写入(memory_search / write):
✓ 用户说"记住这件事"
✓ 发生了重要决策
✓ 发现了有价值的信息
定期整理(Heartbeat 触发):
✓ 每隔几天,把日记精华提炼到 MEMORY.md
✓ 删除过期信息
✓ 更新当前项目状态
三、Heartbeat 机制
Heartbeat 是定时触发的心跳检查,让 AI 主动干活。
配置 HEARTBEAT.md:
# HEARTBEAT.md
## 定期检查任务
### 邮件检查
- 上次检查超过2小时:扫描收件箱
- 发现重要邮件:立即通知
### 日历提醒
- 查看未来24小时内的日程
- 有会议提前1小时提醒
### 记忆维护
- 每3天:把日记精华提炼到 MEMORY.md
- 每周:清理过时信息
Heartbeat 触发规则:
✅ 主动通知(打断用户):
- 重要邮件到达
- 2小时内有会议
- 发现重要变化
🔇 静默处理(HEARTBEAT_OK):
- 夜间23:00-08:00
- 刚检查过(<30分钟内)
- 没有新的重要信息
- 用户明显很忙
四、memory_search 工具
AI 可以搜索自己的记忆:
// 搜索记忆
memory_search({ query: "SVG 中文字体问题" })
// → 返回相关记忆片段,带来源文件和行号
// 读取特定记忆文件
memory_get({ path: "MEMORY.md", from: 1, lines: 50 })
// 写入新记忆(通过写文件实现)
write({ path: "memory/2024-04-21.md", content: "..." })
五、隐私安全模型
主会话(私聊):
✓ 加载 MEMORY.md
✓ 加载今天和昨天的日记
✓ 完整的个人上下文
群聊 / 其他人的会话:
✗ 不加载 MEMORY.md
✗ 不加载日记
✓ 只有通用的 SOUL.md 和 AGENTS.md
原因:群聊中可能有其他人,不能泄露个人信息
六、实用技巧
让 AI 记住你的偏好:
对 AI 说:"记住:我喜欢直接得到答案,不需要解释过程"
→ AI 会将这条写入 MEMORY.md 并在以后遵守
主动触发记忆整理:
对 AI 说:"整理一下最近一周的日记,更新 MEMORY.md"
→ AI 读取日记文件,提炼重要信息,更新长期记忆
查看 AI 知道什么:
对 AI 说:"你现在记得关于我的哪些信息?"
→ AI 展示当前 MEMORY.md 的关键内容
下一篇:TaskFlow——让长任务跨会话持续运行

夜雨聆风