Skip to main content
← All posts
作者:Sagasu

OpenClaw实战教程系列第05篇 - 记忆系统:让 AI 记住你

AI 每次醒来都是一张白纸。记忆文件,就是它的前世记忆。

为什么需要记忆?

想象这样一个场景:

周一,你和 AI 讨论了一个登录功能的架构方案,AI 给出了详细建议,你们还一起优化了代码结构。

周三,你问 AI:“我们上次讨论的登录方案,数据库表结构怎么设计来着?”

没有记忆的 AI:“不好意思,我不记得我们之前讨论过什么。能重新描述一下你的需求吗?”

有记忆的 AI:“上次我们讨论的是基于 JWT 的无状态登录方案。数据库表结构我当时的建议是:

  • users 表:id, username, password_hash, created_at

  • refresh_tokens 表:id, user_id, token, expires_at

需要我重新展开详细设计吗?“

这就是记忆的价值。


OpenClaw 的记忆体系

OpenClaw 采用三层记忆结构:

记忆金字塔

       ┌─────────────┐
       │  短期记忆    │  ← 当前会话上下文(200k token)
       │  Session    │     会随着对话变长而被"挤出"
       └──────┬──────┘
              │
       ┌──────┴──────┐
       │  每日笔记    │  ← memory/2025-01-15.md
       │  Daily Log  │     自动记录每天发生什么
       └──────┬──────┘
              │
       ┌──────┴──────┐
       │  长期记忆    │  ← MEMORY.md
       │  Long-term  │     提炼精华、持久保存
       └─────────────┘
层级文件/位置作用谁维护保存多久
短期记忆当前会话上下文记住本轮对话AI 自动会话结束即消失
每日笔记memory/YYYY-MM-DD.md记录每天发生的事AI 自动永久(可归档)
长期记忆MEMORY.md提炼精华、重要信息AI/用户永久(需维护)

MEMORY.md:长期记忆的核心

存什么?不存什么?

✅ 应该存:

  • 重要决策和方案(“我们决定用 PostgreSQL 而不是 MySQL”)

  • 项目状态和进度(“博客重构完成 60%,卡在评论系统”)

  • 经验教训(“上次用 Opus 跑 Cron 烧了 $50,记得用 Sonnet”)

  • 个人偏好(“我喜欢先给结论的回复风格”)

  • 关键链接和资源(“设计稿在 Figma:xxx”)

❌ 不应该存:

  • 临时信息(“明天下午 3 点开”——放日历)

  • 敏感密码(“服务器密码是 xxx”——用密码管理器)

  • 大段原始内容(“这是整篇文章……”——存链接或摘要)

  • 过期信息(已完成项目的详细过程)

结构示例

# MEMORY.md - 长期记忆

## 活跃项目(当前在做)

### OpenClaw 教程系列
- 状态:进行中,已完成 8/14 篇
- 关键决策:
  - 定价:基础版 ¥99,完整版 ¥199
  - 配图风格:手绘白板风(Nano Banana Pro)
  - 发布时间:2025-02-01
- 待办:
  - [ ] 完成剩余 6 篇
  - [ ] 生成所有配图
  - [ ] 制作宣传视频
- 相关文件:
  - 草稿目录:~/Documents/openclaw-tutorial/
  - 配图素材:~/Design/openclaw-images/

### 个人博客重构
- 状态:后端 API 完成,前端进行中
- 技术栈:Next.js + Tailwind + Prisma
- 卡点:评论系统还没定方案(考虑 Giscus vs Cusdis)
- 上次讨论:决定用 Giscus,因为免费 + 基于 GitHub Issues

## 重要决策记录

### 2025-01-20:OpenClaw 模型选型策略
背景:Cron 任务烧钱问题
决策:
- 自动化任务(Cron/Heartbeat)→ Gemini Flash(最便宜)
- 日常对话 → Claude 3.5 Sonnet(性价比)
- 复杂架构设计 → Claude 3 Opus(最强但贵)
结果:月成本从 $45 降到 $12

## 个人偏好(已验证)
- 沟通风格:先给结论,再展开
- 代码审查:必须给修改建议,不只是指出问题
- 技术偏好:Node.js > Python,PostgreSQL > MySQL

## 经验教训
- ❌ 不要在 Cron 里用 Opus(烧钱)
- ✅ Heartbeat 频率不要低于 30 分钟(省 Token)
- ✅ Gemini Flash 便宜到可以忽略,适合自动化

维护策略

AI 自动维护:

  • 在 Heartbeat 中定期复盘每日笔记

  • 自动将重要信息提炼到 MEMORY.md

  • 自动标记已完成项目为归档

用户手动维护:

  • 每周花 5 分钟 review MEMORY.md

  • 删除过时的项目信息

  • 补充新的重要决策


每日笔记:memory/.md

自动创建机制

每天,AI 会自动创建一个日记文件:

~/.openclaw/workspace/memory/
├── 2025-01-15.md
├── 2025-01-16.md
├── 2025-01-17.md
└── ...

内容示例

# 2025-01-15 日记

## 今天做了什么
- 完成了 OpenClaw 教程第 4 篇(个性化)
- 配置了 Telegram Bot,测试通过
- 优化了 SOUL.md,AI 回复风格明显改善

## 遇到的问题
- Discord Bot 收不到消息 → 发现是 Message Content Intent 没开
- 解决:在 Developer Portal 开启后重启 Gateway

## 学到的新东西
- OpenClaw 的 memory_search 可以跨文件搜索
- Heartbeat 不要太频繁,30 分钟一次最合适

## 关键对话摘录

### 关于定价策略
> 我:你觉得教程定价多少合适?
> AI:参考同类技术教程,建议基础版 ¥99,完整版 ¥199

查看历史对话

如果你想找某天讨论的内容:

你:1 月 15 日我们讨论的定价方案是什么?

AI 会:

  1. 读取 memory/2025-01-15.md

  2. 找到相关段落

  3. 回复你:“那天我们建议基础版 ¥99,完整版 ¥199……”


memory_search:语义搜索

什么是语义搜索?

不是关键词匹配,而是理解含义的搜索。

传统搜索:

  • 搜索“登录” → 只找到包含“登录”两个字的内容

语义搜索:

  • 搜索“登录” → 找到“JWT 认证”、“session 管理”、“OAuth”等相关内容

  • 搜索“省钱” → 找到“Gemini 便宜”、“不要用 Opus 跑 Cron”等相关内容

使用场景

场景 1:找之前的方案

你:我们上次讨论的用户认证方案是什么来着?

AI:(用 memory_search 搜索“用户认证”)
“根据 MEMORY.md,我们决定用 JWT + Refresh Token 方案……
具体设计在 2025-01-10 的日记里有详细记录,要我看一下吗?“

场景 2:找经验教训

你:之前用 Cron 踩过什么坑?

AI:(搜索“Cron 坑”、“Cron 问题”)
“在 2025-01-20 的决策记录里有一条:
❌ 不要在 Cron 里用 Opus(烧钱)
你当时用了 Opus 跑定时任务,一天花了 $50……“

场景 3:找资源链接

你:那个设计稿链接在哪?

AI:(搜索“设计稿”、“Figma”)
“在 MEMORY.md 的活跃项目里:
配图素材:~/Design/openclaw-images/
或者你想找的是博客设计的 Figma?那个在……“

如何触发

你可以直接问:

  • “我们上次讨论的 XXX 是什么来着?”

  • “我之前说过喜欢什么样的风格?”

  • “找找关于定价的讨论”

AI 会自动调用 memory_search 工具。

也可以显式要求:

  • “搜索记忆中关于 Cron 的经验”

  • “查一下 memory,我之前说过用什么数据库?”


最佳实践

  1. 主动让 AI 记录

好的信息不要让 AI“猜”该不该记,主动说:

“记住这个决定:我们用 PostgreSQL”

“把这个方案记到 MEMORY.md"

“记住我喜欢深色主题”

  1. 定期整理记忆

建议每周一次:

“整理一下这周的 memory,把重要信息更新到 MEMORY.md"

AI 会:

  1. 读取本周的日记文件

  2. 提炼重要决策、经验教训

  3. 更新 MEMORY.md

  4. 归档已完成的项目

  5. 不要让 MEMORY.md 无限膨胀

问题:MEMORY.md 越来越长,AI 读取时 token 消耗大。

解决方案:

  • 归档旧项目:已完成的项目移到“归档”区域

  • 定期清理:删除过时的偏好、已废弃的技术方案

  • 摘要代替全文:大段内容存链接或写摘要

建议长度:保持在 500 行以内。

  1. 记忆是保险机制

理解 token 限制:

  • Claude 3.5 Sonnet 上下文:200k token

  • 一个会话 20-30 轮对话后,早期内容会被“挤出”

  • 如果没有记忆文件,这些信息就彻底丢失了

所以:

  • 重要信息一定要落到文件

  • 不要依赖 AI“记住”会话早期的事

  • 定期开启新会话,靠记忆文件保持连贯


故障排除

Q1: AI 说“我检查了记忆但没找到”?

可能原因 1:真的没有记录

  • 你从来没让 AI 记过这件事

  • 记录在了其他地方(比如聊天记录,不是 memory 文件)

解决方案:

你:直接读取 memory/2025-01-15.md,看看里面有什么

可能原因 2:搜索关键词不匹配

  • 你搜“登录”,但记录里写的是“认证”

  • 语义搜索也有局限,同义词可能搜不到

解决方案:

  • 尝试不同的关键词

  • 直接让 AI 读某天的日记

Q2: MEMORY.md 太长了怎么办?

症状:

  • AI 读取 MEMORY.md 消耗大量 token

  • 回复变慢、成本增加

解决方案:

  1. 归档旧项目
## 归档项目

### ~~已完成的项目~~
- [详细信息见 memory/2024-12-01.md]
  1. 摘要代替全文
## 重要决策
- 2025-01-20:Cron 模型选型策略 [详情见日记]
  - 要点:自动化用 Gemini,日常用 Sonnet,复杂用 Opus
  1. 分拆文件
memory/
├── active/          # 活跃项目
├── archived/        # 归档项目
└── lessons/         # 经验教训汇总

Q3: AI 记错了信息怎么办?

发现 AI 记错:

AI:“根据 MEMORY.md,你喜欢用 MySQL“

你:“不对,我说的是 PostgreSQL”

修正:

你:“更正一下,我喜欢 PostgreSQL,不是 MySQL。请更新 MEMORY.md"

AI 会立即修正文件。


验证清单

确认记忆系统正常工作:

  • 存在 ~/.openclaw/workspace/memory/ 目录

  • 存在 ~/.openclaw/workspace/MEMORY.md 文件

  • AI 自动创建了每日日记(memory/YYYY-MM-DD.md)

  • 测试:让 AI 记录一条信息,然后在新会话中询问

  • 测试:用“我们上次讨论的……”触发 memory_search

  • 每周整理一次 MEMORY.md,保持文件精简


下一步

有了记忆,你的 AI 已经能“记住”你了。下一篇让它真正“动手”干活:

→ 第 06 篇 | 工具调用与 Skills — 让 AI 读写文件、执行命令、操作 GitHub,不只是聊天。


读者讨论

你觉得 AI 最应该记住什么?项目进度?技术偏好?还是其他?
欢迎在评论区分享你的想法!


本系列目录

  • 第 01 篇:OpenClaw 是什么?

  • 第 02 篇:5 分钟安装指南

  • 第 03 篇:连接你的第一个聊天渠道

  • 第 04 篇:个性化你的 AI

  • 第 05 篇:记忆系统(你在这里)

  • 第 06 篇:工具调用与 Skills

  • 查看完整目录


下一篇预告:内置工具(文件读写、命令执行、网页搜索)+ Skills 生态(clawhub),让 AI 从“聊天伙伴”变成“得力助手”。*