很多在用 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 记性比别人好,记住这三招:

  1. 死规矩写进文件里,别在聊天框里吼。存进 MEMORY.md 的东西是不会被压缩丢掉的,但聊天里的指令可不保准。
  2. 检查下“快满前存记忆”开了没。虽然系统自带这个安全网,但很多人根本没给它留出足够的腾挪空间。
  3. 强制让它干活前先查查记忆。在 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 聪不聪明,而是看你的系统工程做得扎不扎实。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐