ARTICLE · 1122932
OpenClaw做着做着就"失忆"了?一招关闭自动压缩保住长任务
KNOWLEDGE BASE · AI动态
OpenClaw做着做着就"失忆"了?一招关闭自动压缩保住长任务
用OpenClaw做过长任务的人,可能都遇到过这个场景:做到一半,AI突然开始重复自己、问你已经给过的背景信息、甚至自信地说出根本没收集过的数据。查日志才发现,OpenClaw悄悄触发了一次"上下文压缩",把你花了几个小时整理的内容全部压缩成一段摘要,细节全丢了——只剩" vibe",事实全没了。这不是模型的问题,而是OpenClaw本身的一个设计缺陷。

问题的根源在GitHub issue #25633。OpenClaw有一个"上下文压缩"机制,当对话历史太长、快要装不下模型的上下文窗口时,它会自动把旧的聊天记录压缩成一段摘要。想法是好的,但执行起来很粗暴:压缩算法不知道当前任务里哪些内容是重要的,它只看到"这些token需要删减"。于是你精心整理的数据表格被压缩成"代理收集了竞品价格数据",多步操作指引被压缩成"用户要求一个研究摘要"——让AI有用的那些具体信息,全被描述这些信息的句子替代了。
具体怎么修复?首先要设置`maxContextTokens`为模型上限的80%,给关键指令打上`[PINNED]`标签,这样压缩的时候会优先保留这些内容。然后把`compactMessageCount`设置为-1,彻底关掉自动上下文压缩。如果用Docker部署,还要挂载一个持久化存储,防止容器重启后记忆文件丢失。这些改动能绕过issue #25633描述的"压缩时误删活跃工作内容"的问题。

还有一个更根本的认识:OpenClaw并不"忘记"事情,它只是把具体的事实描述成了抽象的摘要——而摘要天然是有损的。有科技博主专门写了一句话来描述这个现象:"OpenClaw不是真的记忆力差,它只是太喜欢总结,而总结必然丢失细节。"理解这一点,有助于在配置OpenClaw时做出更合理的决策,比如明确哪些信息是绝对不能被压缩的,哪些内容可以接受一定程度的提炼。

总结一下:如果你的工作需要OpenClaw处理长文本、多步骤或者大量数据,第一件事就是关掉自动上下文压缩,然后给所有关键任务指令打上`[PINNED]`标签防止被压缩。在这个基础上,如果还需要更可靠的长期记忆,可以考虑接入Mem0这类外部记忆增强工具,来弥补OpenClaw内置记忆系统在容量和精度上的先天限制。
📖 原文链接:https://studyopenclaw.cn/?p=2556
OpenClaw 知识库 · AI动态