OpenClaw 为什么总“失忆”?双层记忆 + 三层防御,让它真正记住你
OpenClaw 为什么总“失忆”?双层记忆 + 三层防御,让它真正记住你
很多在用 OpenClaw 的小伙伴都吐槽过:这小龙虾记性也太差了!前天说的、昨天刚重复过,今天它又忘得一干二净,最气人的是它每次还信誓旦旦地跟你保证:“记住了”。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
这事儿真不是个案。之前就有个例子,有人吩咐 OpenClaw 帮忙盯收件箱,给点归档建议,并强调“没我发话千万别乱动”。结果前几周挺好,一等真正处理成千上万封邮件时,它直接把“别乱动”的命令抛到九霄云外,开始疯狂删邮件。
原因其实不复杂:聊得太久对话框满了,系统为了腾地方把历史记录“压扁”了。而那些写在聊天里的指令由于没存进文件,随着上下文被压缩,就这么消失了。
想搞清楚这背后的弯弯绕绕,咱得先抠抠 OpenClaw 那个“双层记忆”是怎么设计的。
接着再听听代码库大佬的避坑指南,帮你的小龙虾彻底治好“健忘症”。
二、记忆系统的存储架构
OpenClaw 的记忆架构搞了两层,简单说就是把记忆分成了“随手记的日记”(动态)和“压箱底的档案”(静态)。
| 记忆类型 | 存成啥样 | 存在哪儿 | 怎么来的 |
|---|---|---|---|
| 静态记忆 | Markdown | ~/.openclaw/workspace/MEMORY.md 等 | 手动写 + 自动转 |
| 动态记忆 | JSONL | ~/.openclaw/agents/{agentId}/sessions/*.jsonl | 自动录 |
| 这套设计简直就是照着咱人脑的记事习惯复刻的。 | |||
| 人嘛,平时也就记住点特定的高光时刻或重要转折。 | |||
| 手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定! | |||
| 只有把这些零碎的片段串起来,才叫完整的记忆。至于每天吃啥喝啥的琐事,过几天肯定忘得干干净净。 | |||
![]() |
|||
| 所以说,这套机制在工程设计上算是把仿生学玩明白了。 |
2.1. 聊天产生的动态记忆
你每跟它说一句话,系统都会把内容直接塞进 JSONL 格式的日志里。这就是最原始、没加工过的聊天流水账。大概长这样:
{
"type": "message",
"message": {
"role": "user",
"content": "帮我写一个 Python 爬虫"
}
}
{
"type": "message",
"message": {
"role": "assistant",
"content": "好的,我来帮你写..."
}
}
2.2. 静态记忆的产生
这部分是系统的“硬核记忆”,专门存那些聊再久也不能忘的重点,比如你的脾气、干活的偏好、项目的死规矩等。
静态记忆主要靠三招:
• 招式一:自己动手:你直接去改 MEMORY.md 文件,写上“以后叫我老板”或者“回话简洁点”。
• 招式二:换频道时自动转:当你用 /new 命令开新天时,系统会自动把刚才聊的 15 条精华内容抽出来存成 Markdown。
• 招式三:快满时强行保存:当对话长度快爆表时,系统会赶紧让 Agent 挑重点,把必须留下的信息写进 memory/日期.md 文件里。
| 特点 | MEMORY.md | memory/*.md |
|---|---|---|
| 干啥用的 | 核心长期记忆 | 按日子攒的聊天摘要 |
| 存啥内容 | 你的偏好、重要规矩 | 某次聊天的细节 |
| 咋更新 | 主要是你手动改 | 主要是系统自动写 |
| 咋命名 | 就叫 MEMORY.md | 日期加个小后缀 |
| 怎么找 | 靠搜索算法,权重一样 | 靠搜索算法,权重一样 |
| 手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定! | ||
| 其实大伙儿觉得它“失忆”,多半是因为第三步出了差错。 | ||
| OpenClaw 压缩记录时会先筛一遍哪些算“持久记忆”,然后做个有损的摘要,只留决定、待办和约束,至于几点几分这种精确细节,很容易被丢掉。 | ||
| 这不是 Bug,而是为了兼顾记忆完整性和省钱省力。 | ||
| 如果你有非记不可的精确信息,一定要让它专门写进长期记忆里。 | ||
| 现在的逻辑很依赖 AI 聪不聪明,有时候我觉得重要的,它反而给丢了。 | ||
| 但在目前的技术环境下,这算是个性价比挺高的方案了。 |
三、记忆信息的检索与调用
存好了还得能翻出来。系统只要发现有了新的 .md 文件,后台就开始干活了。
3.1. 建立索引
系统通常只给 Markdown 文件做索引。它会把文字切成块,搞成 AI 容易理解的“向量”和关键词,全塞进本地的一个轻量级数据库里。你不需要专门去装什么大型数据库,很省心。
3.2. 混合搜索
OpenClaw 找东西是“双管齐下”:
• 语义搜索:看意思像不像,哪怕词不一样也能找着。
• 关键词搜索:就像 Ctrl+F 一样,找精准的字眼。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
系统把这两者的结果按七三开合起来,分数达标了才给 Agent 看。
3.3. Agent 如何查找记忆
它手头有两个趁手的工具:
memory_search:全库搜
用来在大海里捞针,看看 MEMORY.md 或者以前的日记里有没有相关的片段。
memory_get:定点读
锁定目标后,直接把具体哪几行内容完整读出来。
3.4. 啥时候开始找记忆
只要涉及到以前干过啥、什么时候、有谁、啥偏好之类的问题,Agent 就被规定必须先用 memory_search 翻翻书,然后再回答。
3.5. 主动写笔记
聊天时,Agent 觉得有必要记住的事,也会自己动笔写。比如用 write 工具往当天的记忆文件里记上一笔。
3.6. 别乱翻东西
为了安全,Agent 只能读特定的记忆目录,想乱看别的文件是不行的。
四、优缺点
有了这套双层架构,OpenClaw 就从一个“阅后即焚”的工具变成了能攒经验的老搭档。
它把记忆从没完没了的对话中拎出来,搞成了持久的知识库。这样既解决了对话框长度有限的硬伤,也能让它在长期相处中越来越懂你。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
当然也有烦心事:每次发指令都要带一堆系统设定,搜记忆也得花点时间。
但它的核心价值在于能让对话无限接下去,而且以前的重要信息随时都能搜回来。
五、如何最大限度避免失忆
想让你的 Agent 记性比别人好,记住这三招:
- 死规矩写进文件里,别在聊天框里吼。存进 MEMORY.md 的东西是不会被压缩丢掉的,但聊天里的指令可不保准。
- 检查下“快满前存记忆”开了没。虽然系统自带这个安全网,但很多人根本没给它留出足够的腾挪空间。
- 强制让它干活前先查查记忆。在 AGENTS.md 里加一条:“别瞎猜,行动前先搜记忆”。

Agent 突然“失忆”,多半是因为没存进文件、压缩时弄丢了重点,或者旧的工具结果被清理了。
5.1. 压缩与修剪
很多人分不清这两者的区别:
压缩是彻底重写历史,容易丢细节,而且是不可逆的。只要对话框满了就会触发。
修剪只是暂时清掉一些工具产出的垃圾信息,不伤筋动骨,磁盘里的记录还在。
建议开个 cache-ttl 模式,每隔 5 分钟把没用的旧信息扫一扫,保持头脑清醒。
{
"agents": {
"defaults": {
"contextPruning": {
"mode": "cache-ttl",
"ttl": "5m"
}
}
}
}
5.2. 看看它的脑子里现在装了啥
出问题了先用 /context list 搜一下。
看看 MEMORY.md 到底加载没?有没有文件因为太长被切断了?如果发现字符数不对,就得去改设置里的限制了。
5.3. 压缩到底是怎么一回事

理想的情况是:快满时先“整理内务”(刷新),把重点存盘,再“打包”(压缩)。
最怕的是:已经爆表了才紧急“抢修”,这时候往往会为了恢复工作而丢掉大片记忆。
5.4. 压缩会弄丢啥
写在聊天里的指令、刚说的偏好、以前传的照片,这些在压缩后都很容易消失。
能留下的只有那些正儿八经写在磁盘文件里的内容。
所以还是那句话:没写进文件的,就当它不存在。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
六、三层防御机制
第一层:自动保存
快满时提醒 Agent 赶紧写笔记。
{
"agents": {
"defaults": {
"compaction": {
"reserveTokensFloor": 40000,
"memoryFlush": {
"enabled":true,
"softThresholdTokens": 4000,
"systemPrompt": "快满了,赶紧存重点!",
"prompt": "把有用的记到 memory/日期.md,没啥记的就回 NO_REPLY。"
}
}
}
}
}
第二层:手动管理
干完一件大事,随口吩咐一句:“把这个决定记到 MEMORY.md 里”。
还有个小窍门:如果你要下个重要的新指令,先让它存好现状,再用 /compact 压一下,然后再发新指令。这样新指令在脑子里的有效期最长。
第三层:文件各司其职

• SOUL.md:它的性格和说话风格。
• AGENTS.md:它的干活规矩和决策逻辑。
• USER.md:你是谁,你最近在忙啥。
• MEMORY.md:雷打不动的硬核决策。
把这些规矩加进 AGENTS.md 里:干活前搜记忆,学到东西马上记,改了错也要存。
七、检索
想让它找得准,检索规矩也得定好:重要活计之前,先 memory_search 搜一下,不懂的再 memory_get 细读。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
要是你想让它连你本地的 Obsidian 笔记或者项目文档一起搜,可以试试进阶的 QMD 模式。
八、解决各种“记不住”
偏好记不住?看文件存了没。搜不到?看文件在不在。一觉醒来全忘了?多半是凌晨 4 点系统自动重置会话了,这时候只有文件里的记忆能续上。
总而言之,记性好坏不是看 AI 聪不聪明,而是看你的系统工程做得扎不扎实。
更多推荐




所有评论(0)