OpenClaw 为什么总“失忆”?双层记忆 + 三层防御,让它真正记住你
OpenClaw 为什么总“失忆”?双层记忆 + 三层防御,让它真正记住你
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
大伙用 OpenClaw 时是不是常觉得它记性贼差?明明前天刚叮嘱过,昨天也提了,今天它又忘得一干二净。最气人的是,它每次还拍着胸脯保证:“放心,我记住了。”
这类事真不少见。之前有个哥们儿让他的 OpenClaw 盯着收件箱,给点归档建议,还特别交待:“没我发话,别乱动。”刚开始在小测试箱里表现得还挺像样,撑了几个礼拜。
可等真要把几千封邮件交托给它时,这家伙直接失控了,咔咔一通乱删,任凭主人在屏幕后边怎么喊停都不理会。
真相只有一个:聊天内容太多,上下文窗口被塞爆了。Agent 为了腾地方把历史记录给压缩了,那句“没我发话别乱动”只存在于聊天记录里,没存成文件,结果直接被后台当成垃圾清理掉了。
想搞清楚这小龙虾怎么老是“脑仁不够用”,咱们得先看看它那套双层记忆系统是怎么转的。
后面我还会分享维护者压箱底的调优秘籍,保准能治好你家小龙虾的“间歇性遗忘症”。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
二、记忆系统到底是怎么存的?
OpenClaw 把记性分成了两块:一种是记每天琐事的“每日日志”(动态记忆),另一种是板上钉钉的“长期记忆”(静态记忆)。
| 记忆类型 | 存储格式 | 存储路径 | 产生方式 |
|---|---|---|---|
| 静态记忆 | Markdown | ~/.openclaw/workspace/MEMORY.md 和 memory/*.md | 手动写 + 自动攒 |
| 动态记忆 | JSONL | ~/.openclaw/agents/{agentId}/sessions/*.jsonl | 自动录 |
| 这玩意儿其实特别像咱们人脑。 | |||
| 咱们平时记事也就记几个关键点。能想起来的通常是某个尴尬瞬间或者重大的事儿。 | |||
| 把这些零散的片段拼在一起,才算是有记忆。至于每天中午吃了啥、说了几句废话,日子久了肯定全忘了。 | |||
![]() |
|||
| 所以说,这套系统在设计上算是把仿生学玩明白了。 | |||
| 手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定! |
2.1. 聊天产生的动态记忆
你每次跟 Agent 说话,系统都会把内容直接塞进 JSONL 格式的日志文件里。这算是最原汁原味的记录,没经过任何加工。大概长这样:
{
"type": "message",
"message": {
"role": "user",
"content": "给爷整一个 Python 爬虫"
}
}
{
"type": "message",
"message": {
"role": "assistant",
"content": "好嘞老板,这就给您写..."
}
}
2.2. 静态记忆是怎么来的?
长期记忆主要存一些必须要死记硬背的东西,比如你性格怎么样、喜欢什么样的回答风格、项目里有哪些死规定。
这些内容主要靠三个法子攒起来:
- • 法子一:你自己动手写:你可以直接改那个 MEMORY.md 文件。比如写上:“叫我老板”、“说话简洁点”。
- • 法子二:重置会话自动转:当你输入 /new 开启新天新地时,系统会启动个钩子,把刚才聊天里的精华(默认选最后 15 条)提炼成 Markdown。它会根据聊的内容自己起名字,比如 bug-fix 什么的。
- • 法子三:快爆掉时自动写:如果上下文快把内存撑爆了,系统在压缩之前会强制让 Agent 反思一下:有什么必须要留下的?然后赶紧写进 memory/YYYY-MM-DD.md。
| 特性 | MEMORY.md | memory/*.md |
| :--------- | :----------------------------- | :--------------------- |
| 干啥用的 | 核心中的核心 | 按日子排的账本 |
| 存点啥 | 个人喜好、死规定、老规矩 | 具体聊了啥的摘要 |
| 咋更新 | 主要是你自己改 | 系统自动记 |
| 叫啥名 | 固定叫 MEMORY.md | 日期加上关键词 |
| 谁更优先 | 都一样,看谁搜着更像 | 都一样,看谁搜着更像 |
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
静态记忆的关键就在“法子三”,也就是历史记录是怎么压缩的。
OpenClaw 的逻辑是让大模型自己去瘦身:
先筛选一遍,让 Agent 琢磨什么是**“值得长久保存的宝贝”。
然后用大模型做个有损摘要**。它一般只记**“决定了啥、还得干啥、啥没解决、有啥限制”。至于几点几分这种细枝末节,通常就给扔了。
这是为了保全大局**。不把旧账压一压,上下文分分钟溢出。这不叫 bug,是系统效率和记忆完整性之间的博弈。
你要是有啥不能忘的硬核数据,最好直接命令它记到长期记忆里。
这也得看模型够不够聪明。有时候我觉得重要的,它觉得是废话,然后就给弄丢了。
但说实话,这已经是目前性价比最高的招儿了。
三、怎么把记下来的东西翻出来?
只要存了 Markdown 记忆文件,后台就会开工建索引,等用的时候好找。
3.1. 建索引
默认只有 Markdown 能被搜到,原始的 JSONL 日志是不进索引的。
系统会把文件切块,一方面搞向量化(搞语义理解),一方面搞关键词索引,全存在轻量级的 SQLite 数据库里,不用折腾什么 ES 或者大型向量库。
3.2. 记忆搜索
它找东西是混着找的,主要看两个分值:
- • 语义搜索:看意思接不接近。
- • 关键词搜索:看有没有一模一样的词。
两边得分按 7:3 这么一掺和,分数要是没过 0.35 的门槛,系统就当没看见。
3.3. Agent 怎么查岗?
它手里有两个趁手的工具:
memory_search:模模糊糊搜
用来查 MEMORY.md 还有那些历史小本子,搜出一堆相关的片段,还会标出在哪一行、相关度有多高。
{
"results": [
{
"path": "memory/2026-01-10.md",
"snippet": "用户喜欢天蓝色...",
"score": 0.85
}
]
}
memory_get:定点清除
想看具体哪个文件哪几行?用这个。它会把原文完完整整搬出来。
3.4. 它什么时候会去搜?
Agent 被洗过脑了:只要涉及以前干过啥、以前怎么定的、日期、人名、你的偏好,必须先去搜 memory_search,然后再用 memory_get 细看。
3.5. 它也会主动记账
Agent 聪明的时候会觉得某事得记一笔,就会动用它的文件工具,把东西写进当天的 memory/YYYY-MM-DD.md 里。
3.6. 安全防线
为了防止它乱翻,memory_get 被锁死了,只能看 memory 文件夹、MEMORY.md 还有你在配置里指定的那些地方。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
四、这套招式的利弊
有了这套架构,AI 才算从“一锤子买卖的工具”变成了“能长久相处的搭子”。
它把记忆从拥挤的上下文里挪出来,搞成了持久化的知识库。这样它就能积攒经验、记住你的臭毛病、把聊过的话接上。
这么搞不仅解决了上下文不够用的头疼事,还让 AI 越来越懂你。
当然,缺点也是有的。系统提示词占坑、工具定义占坑、压缩会有损耗,而且搜一次记忆也得花钱花时间。
但核心价值在那儿:让聊不到头的对话成为可能,而且老消息即便被压成干儿了,也能搜得回来。
五、怎么让它记性更好?
想让你的 OpenClaw 比别人的更机灵,照这三条改就行:
- 死命令写进文件,别只在聊天里说。记在 MEMORY.md 里的东西是雷打不动的,聊天里的指令随时可能被压没了。
- 看看“记忆刷新”开没开。OpenClaw 在大扫除(压缩)前有个自救机制,会把重要东西存一下,但很多人根本没留意过这功能有没有空间触发。
- 逼它去翻账本。在 AGENTS.md 里加条规矩:“干活前先搜记忆”。不搜的话,它全靠瞎猜。
Agent 一旦“忘本”,准是掉进这三个坑里了:
坑一:“压根儿就没记”
- • 情形:你只在聊天里随口一说,没存进文件。
- • 后果:一旦触发压缩或者重启,这话就跟没说过一样。这是最常见的翻车现场。
坑二:“压缩时把细节弄丢了”
- • 情形:聊太嗨了,触发了压缩。
- • 后果:摘要把你的要求精简了。Agent 以后就照着那个缩减版的指令干活,细节全丢。
坑三:“清理工具结果时误伤”
- • 情形:为了省内存,系统把之前的工具返回结果给删了。
- • 后果:Agent 会忘了之前工具查到了啥,虽然磁盘上还有记录,但它眼下看不见了。
对症下药:
- • 忘了你的喜好?那是坑一。
- • 忘了刚查的数据?那是坑三。
- • 忘了刚才聊啥了?那是坑二。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
5.1. 压缩和修剪不是一回事
很多人把这两个概念搞混了:
压缩(重写历史)
- • 把以前的事儿总结成一小段,不可逆,且会有损。
- • 内存爆满时自动触发。
修剪(暂时清理)
- • 只是把旧工具的废话暂时藏起来,不改磁盘文件。
- • 主要是为了省点 Token。
建议开启 cache-ttl 模式,每隔 5 分钟扫一次垃圾,保持上下文清爽。
{
"agents": {
"defaults": {
"contextPruning": { "mode": "cache-ttl", "ttl": "5m" }
}
}
}
5.2. 看看它现在脑子里装了啥
想知道它现在能看见啥,输入 /context list 查查。
🧠 Context breakdown
...
Injected workspace files:
- AGENTS.md: OK
- TOOLS.md: TRUNCATED (有些内容被掐了)
...
重点看:
- • MEMORY.md 到底加进去没? 没显示就是没读到。
- • 文件是不是太长被掐头去尾了? 默认单文件 2 万字符,总共 15 万,超了就看不全。
5.3. 压缩的全过程

最理想的情况: 在崩溃前先“刷新记忆”。Agent 悄悄把重要事存进磁盘,然后再压缩旧消息。
最糟的情况: 内存直接撑爆,API 报错了。这时候 OpenClaw 会强制“截肢”式压缩,啥刷新都顾不上了,丢的东西最多。
5.4. 压缩会弄坏啥?
保不住的:
- • 聊天里的临时要求、纠正。
- • 之前发过的图。
- • 工具吐出的具体原始数据。
能留下的:
- • 所有的 .md 配置文件。
- • 存在 memory 文件夹里的日志。
- • 压缩前被 Agent 抢救写入磁盘的内容。
总之:没写进文件的,迟早得丢。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
六、三层防线守住记忆
第一层:压缩前先存一波
把这个配置开起来,能在它失忆前拉它一把。
{
"agents": {
"defaults": {
"compaction": {
"reserveTokensFloor": 40000,
"memoryFlush": {
"enabled": true,
"softThresholdTokens": 4000,
"prompt": "快爆了,赶紧把重要的事写进 memory/YYYY-MM-DD.md"
}
}
}
}
}
第二层:人工干预
别光指望自动的。聊到关键地方,直接给它下令:
“把刚才定的规矩写进 MEMORY.md”。
或者用 /compact 命令。
高手的玩儿法:
- 叫它存好当前状态。
- 自己输入
/compact强制大清扫。 - 给新指令。
这样新指令就能在最干净的内存里待最久。
第三层:文件各司其职

把文件分好类:
- • SOUL.md:它的人设。
- • AGENTS.md:它的干活规矩。
- • USER.md:你的底细。
- • MEMORY.md:万年不变的铁律。
- • 每日日志:当天的流水账。
在 AGENTS.md 里写死:
“干活前必搜记忆,学到新招儿必写进文件,发现我改它错了必把新规矩填进 MEMORY.md”。
七、检索
搜不到的记忆跟没有没区别。
工具怎么用
- • memory_search:全城大搜查,语义+关键词混着来。
- • memory_get:精准打击,直接看原文。
搜哪里?
一般用默认的就行,它会自己索引工作区。如果你想让它搜搜你的笔记库(比如 Obsidian),可以配置 extraPaths。
"memorySearch": {
"extraPaths": ["~/我的笔记/**/*.md"]
}
如果文件特别多(好几千个),那就得考虑上方案二:QMD 后端了。
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
八、常见毛病自诊
- • 它总记不住我的习惯? 查查 MEMORY.md 加载没,没记在文件里它肯定忘。
- • 搜不出东西? 看看那文件到底在不在。
- • 隔了一夜啥都忘了? 会话每天凌晨 4 点会自动换 ID,除了文件,聊天记录全不带到新会话里。
九、推荐配置参考
这是最稳的本地搜索配置:
{
"agents": {
"defaults": {
"compaction": {
"reserveTokensFloor": 40000,
"memoryFlush": { "enabled": true }
},
"memorySearch": {
"enabled": true,
"provider": "local",
"query": { "hybrid": { "enabled": true } }
},
"contextPruning": { "mode": "cache-ttl", "ttl": "5m" }
}
}
}
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定!
常用命令一览
| 命令 | 啥时候用 |
|---|---|
| /context list | 记不住事儿了先查这个 |
| /compact | 发大招前先清空内存空间 |
| /new | 聊成死结了,推倒重来 |
| /verbose | 看看它到底搜没搜记忆 |
| 玩久了你就明白:记忆不是 AI 自带的天赋,而是得靠咱们悉心调教的一套工程管理。 |
更多推荐




所有评论(0)