小龙虾为何变蠢、失忆?深入理解 OpenClaw 记忆系统

很多人辛辛苦苦养的小龙虾,都会在某个时刻让主人产生一种挫败感: 昨天刚说过的偏好,今天新开一个会话又得重讲; 明明说了"记住这个",过几天再问,它像没听过; 会话越长,助手越像"注意力涣散",前面已经确认过的事,后面又绕回来。 这类问题看起来像"小龙虾变笨了",怀疑给虾使用的大模型不够智能?其实大多数时候都不是模型能力问题,而是记忆机制没有被正确使用。 (本文所说的小龙虾,通过 OpenClaw 部署。研究对象也是 OpenClaw。接下来将统一口径,使用 OpenClaw 来称呼。) OpenClaw 的记忆系统并不神秘。恰恰相反,它非常工程化:记忆不是藏在黑盒里的,而是落在工作区里的 Markdown 文件、会话历史和检索索引里。 你理解了这套机制,很多"为什么它会忘"的问题都会立刻变清楚。 这篇文章在深入研究 OpenClaw 官方文档、拆解源代码之后,讲清楚三件事: OpenClaw 到底靠什么"记住"你; 为什么它会忘; 怎样把它调到一个长期稳定、可维护的状态。 一、先把一个认知纠正过来:模型本身不会跨会话记忆 大语言模型并不会像人一样,把昨天的对话自然带到今天。 它每次能看到的,只有本轮请求被送进上下文窗口的内容。如果某条信息没有进入当前上下文,模型就等于没看见;如果某条信息从来没有被写到磁盘,下次重启后也就无从谈起。 这也是 OpenClaw 记忆设计最核心的一条原则: 文件才是记忆的唯一可信来源。 按照 OpenClaw 当前官方文档,记忆是工作区中的纯 Markdown 文件:模型只会"记住"那些被写入磁盘、并在合适时机重新加载或检索出来的内容。 这件事听上去朴素,但它带来一个非常重要的推论: “我已经在对话里说过了”,不等于"它下次还会记得"; “它刚才答应会记住”,不等于"它已经落盘"; “它知道我是什么意思”,不等于"这条信息已经进入长期记忆层"。 如果你把 OpenClaw 当作一个有天然长期记忆的大脑,就很容易失望;如果你把它当作一个带文件系统、检索和压缩机制的 Agent 运行时,它的行为反而会变得非常可预测。 二、从使用体验看,OpenClaw 实际上有三层"记忆" 官方文档在"记忆文件"这一层主要讲两种载体:MEMORY.md 和 memory/YYYY-MM-DD.md。但从实际使用体验看,OpenClaw 的"记得住"与"记不住",是三层机制共同作用的结果: 层级 载体 作用 典型内容 工作记忆 当前会话历史 维持本轮任务的连续性 刚才的问答、工具调用结果、当前任务状态 短期记忆 memory/ 保留近期上下文和运行日志 会话摘要、日常运行记录、短期上下文 长期记忆 MEMORY.md 保留跨会话稳定信息 偏好、长期事实、重要决策、环境约定 这三层各自解决的是不同问题。 1. 工作记忆:负责"眼前这件事" 当前会话历史就是工作记忆。它保证 OpenClaw 在同一段对话里还能接着前文往下走。 ...

2026-03-18 · 4 min · Kada Liao