第 10 章:记忆系统 🧠
没有记忆的 AI 就像金鱼——7 秒就忘了你说了什么。OpenClaw 的记忆系统让金鱼变成大象。
10.1 短期记忆 vs 长期记忆
人类的记忆分为短期记忆和长期记忆。AI 也一样。
短期记忆:Session 上下文
短期记忆就是当前会话的内容。你所说的话、Agent 的回复、工具调用的结果——都在这里。
- 存储位置: 推理过程中的 Token
- 容量限制: 取决于模型的上下文窗口(通常 100K-200K tokens)
- 持久性: 会话结束就没了(除非压缩或存盘)
你:「帮我查一下昨天的天气」
Agent:查询中...
你:「顺便告诉我明天要不要带伞?」
Agent:靠短期记忆知道「昨天」是哪天、城市是哪里
长期记忆:磁盘文件
长期记忆存在硬盘上的 Markdown 文件中。Agent 没有任何"隐藏状态",记住的唯一方式就是写文件。
- 存储位置:
MEMORY.md+memory/YYYY-MM-DD.md - 容量限制: 只受硬盘限制
- 持久性: 永久保存,除非你删掉
MEMORY.md → 精选的长期记忆(每次主私密会话加载)
memory/2026-06-25.md → 日常笔记(语义搜索可用)
memory/2026-06-26.md → 每天一个文件
核心原则: 想让 Agent 记住,就叫它写下来!
10.2 记忆文件的层次结构
MEMORY.md —— 精装版
适合放:
- "用户叫当当,独立开发者"
- "项目使用 Next.js + TypeScript"
- "不喜欢的:过度嵌套的条件判断"
特点: 每次主私密会话都会加载到提示词中。要精简,不要啰嗦。
memory/YYYY-MM-DD.md —— 日记本
适合放:
- "今天讨论了数据库迁移方案,最终选 PostgreSQL"
- "修复了一个 SSRF 漏洞,记录排查过程"
- "发现 npm 包 xxx 有已知安全问题,已升级"
特点: 今天和昨天的自动加载。更早的通过 memory_search 查询。可以很长。
DREAMS.md —— 梦境日记
可选文件,由"梦境(Dreaming)"系统自动维护——Agent 在后台对记忆做整理和提纯时生成。
10.3 memory_search 和 memory_get
Agent 有两个专门操作记忆的工具:
memory_search —— 语义搜索
这是最强大的记忆工具。它不仅仅是搜关键词——它能理解语义。
你问 Agent:「我们之前讨论过那个数据库方案吧?」
Agent 内部:
1. memory_search("数据库方案讨论")
2. 找到几周前 memory/2026-06-01.md 里的相关记录
3. 回答:「我们在 6 月 1 日讨论过,当时决定用 PostgreSQL」
memory_search 使用混合搜索——同时使用向量相似度(语义匹配)和关键词匹配(精确匹配):
flowchart LR
Q["你的问题"] --> E["向量化"]
Q --> K["关键词"]
E --> VS["向量搜索<br/>语义匹配"]
K --> BM["BM25 搜索<br/>精确匹配"]
VS --> M["加权合并"]
BM --> M
M --> R["返回最佳结果"]
配置语义搜索的提供商:
{
agents: {
defaults: {
memorySearch: {
provider: "openai", // 默认:openai
// provider: "gemini"
// provider: "ollama" // 本地部署
// provider: "local" // 本地离线
},
},
},
}
如果没有配置提供商,memory_search 默认使用关键词搜索(BM25),效果也不错。
memory_get —— 精确读取
当你需要读取某个记忆文件的特定部分时使用:
Agent 内部调用:
memory_get("memory/2026-06-01.md")
→ 读取那天的全部内容
命令行搜索
你也可以在终端直接搜:
openclaw memory search "数据库方案"
openclaw memory status # 查看索引状态
openclaw memory index --force # 重建索引
10.4 Memory Wiki 新特性(2026 年 4 月更新)
2026 年 4 月,OpenClaw 推出了 Memory Wiki 插件——把零散的记忆变成一个结构化的知识库。
为什么要 Wiki?
普通的 memory_search 很好用,但如果你的记忆越来越多(几个月、几千页笔记),你会希望记忆不仅仅是"可搜索"的,而是有结构、有来源、有可信度的。
Memory Wiki 增加了这些能力:
结构化知识
普通记忆是自由格式的 Markdown:
项目 ABC 使用了 PostgreSQL,因为需要事务支持。
Wiki 可以带上结构化信息和来源:
---
pageType: entity
entityType: system
claims:
- id: claim.db-choice
text: 项目 ABC 使用 PostgreSQL
status: supported
confidence: 0.95
evidence:
- kind: meeting-notes
sourceId: source.20260601
weight: 0.8
---
三大模式
| 模式 | 说明 | 适合 |
|---|---|---|
isolated |
独立 Wiki,自己管理 | 想单独维护一个知识库 |
bridge |
桥接模式,从已有记忆生成 Wiki | 已有大量笔记 |
unsafe-local |
本地模式,不依赖任何插件 | 高级用户 |
Wiki 工具
安装 Memory Wiki 后,Agent 多了几个工具:
wiki_search—— 在 Wiki 中搜索wiki_get—— 读取某个 Wiki 页面wiki_apply—— 编辑 Wiki 页面wiki_lint—— 检查 Wiki 结构问题wiki_status—— 查看 Wiki 状态
搜索全部记忆
memory_search corpus=all
这会在普通记忆和 Wiki 中同时搜索,一次性获取最全面的结果。
10.5 配置和管理长期记忆
基本配置
{
agents: {
defaults: {
memorySearch: {
provider: "openai", // 嵌入提供商
query: {
hybrid: {
mmr: { enabled: true }, // 启用多样性(避免重复结果)
temporalDecay: { enabled: true }, // 启用时间衰减(旧结果权重降低)
},
},
},
},
},
}
时间衰减
打开后,旧笔记的搜索结果权重会逐渐降低。默认半衰期 30 天——一个月前的笔记得分只有一半。
什么时候打开? 当你有几个月的笔记,旧的干扰新的时候。
多样性(MMR)
打开后,搜索结果会覆盖不同主题,而不是返回 5 条相似的结果。
什么时候打开? 当 memory_search 总是找到相似的记录时。
记忆后端
OpenClaw 支持多种记忆后端:
| 后端 | 特点 | 安装 |
|---|---|---|
| Builtin(默认) | SQLite 本地,开箱即用 | 无需安装 |
| QMD | 本地优先,支持重排序 | 无需安装 |
| Honcho | 支持跨 Agent 共享记忆 | 需安装插件 |
| LanceDB | LanceDB 支持,兼容 OpenAI | 内建插件 |
10.6 自动记忆闪存(Memory Flush)
这是 OpenClaw 的一个很贴心的设计。
问题: 你和 Agent 聊了很久,Agent 记住了很多事。现在会话要压缩了——Agent 会把前面的内容总结成一个摘要。但摘要可能漏掉重要信息。
解决方案: 记忆闪存(Memory Flush)
在压缩之前,OpenClaw 会默默运行一个"闪存回合"——悄悄提醒 Agent:
"嘿,会话马上要压缩了,有什么重要的事情赶紧写到 MEMORY.md 或 memory/ 文件里。"
这样重要信息就不会在压缩中丢失。
配置闪存模型
{
agents: {
defaults: {
compaction: {
memoryFlush: {
model: "ollama/qwen3:8b", // 用本地模型做闪存,省 Token
},
},
},
},
}
10.7 梦境(Dreaming)系统
梦境是可选的后台记忆整理功能。它会在后台自动:
- 收集短期记忆信号
- 评估哪些值得保存
- 把合格的写入
MEMORY.md - 把整理记录写入
DREAMS.md
默认是关闭的,需要手动开启。
# 查看梦境状态
openclaw memory status
# 开启梦境(通过配置启用)
梦境的作用:Agent 自己就能做"睡前整理"——把一天的对话精华自动提取到长期记忆中。
10.8 实战:让 Agent 记住你的咖啡偏好
场景
你想让 Agent 记住你喜欢喝冰美式。
方法一:直接让 Agent 记
你:记得我喜欢喝冰美式
Agent:好的,我记下了!(写到 MEMORY.md)
下次对话开始时,Agent 会从 MEMORY.md 读到这个信息。
方法二:自己写 MEMORY.md
打开 ~/.openclaw/workspace/MEMORY.md,加上:
## 偏好
- 饮料:冰美式,不加糖
验证
你:我想喝点东西,有什么推荐?
Agent:根据记录,您喜欢冰美式,要不要来一杯?🧊
查看记忆是否生效
openclaw memory status
openclaw memory search "冰美式"
当当老师 🐾 笔记: OpenClaw 的记忆系统设计哲学是"写下来才记得住"。它不像某些 AI 服务那样有神秘的"隐藏记忆层"——一切都存在明明白白的 Markdown 文件里。你可以看、可以改、可以删。这就是掌控感。
系统教程,帮你把工具用好,再回到任务中。 浏览任务方案 →