OpenClaw对话一长就变笨?解决上下文窗口爆满
引言你肯定遇到过这种情况和 OpenClaw 聊了二三十轮之后它开始重复之前说过的话逻辑变得混乱甚至直接报错context length exceeded。这不是它“变笨”了而是上下文窗口满了。每个大模型能记住的对话长度是有限的比如 GPT-4o 是 128K tokensClaude 是 200K但很多本地模型只有 8K-32K。一旦超过上限要么截断要么崩溃。这篇文章教你如何判断是否快爆了、怎么临时“瘦身”、以及如何长期避免再爆。一、先诊断你的会话到底用了多少 token在 TUI 里输入/context系统会显示类似这样的信息Current session: default Tokens used: 7800 / 8192 (95%) Messages in context: 42如果你看到超过 80%就该警惕了。超过 95% 基本随时会崩。如果/context命令不可用老版本也可以用/status查看当前会话的基本信息。二、临时急救两种方法让会话“瘦身”方法1手动压缩推荐输入/compact这个命令会做三件事把当前对话历史发给模型让模型生成一份摘要保留关键信息任务目标、已做的决策、待解决的问题用这份摘要替换掉原始对话释放大量 token通常压缩后 token 占用能降到 30%-50%。你可能会发现 AI 对某些细节记不清了但核心逻辑还在可以继续对话。压缩的代价模型生成摘要本身也会消耗 token计入你的账单。一次压缩大约花费几百到一两千 token比买一个全新的会话划算。方法2新建会话 人工摘要如果/compact效果不好或者模型对摘要理解有偏差可以手动重建会话/new然后在新会话的第一条消息里用你自己的话概括之前的内容。例如“我们之前在分析一个 Python 脚本的内存泄漏问题。已经排查了循环引用、全局变量、缓存未释放。你建议用 tracemalloc 定位我运行后发现了 3 个未关闭的文件句柄。现在需要你帮我分析这几行代码……”这种方法的优点是完全可控缺点是你要自己总结。 小技巧在旧会话里输入/history 20把最近 20 条对话复制出来交给一个新模型比如便宜的 gpt-3.5-turbo让它帮你生成摘要然后把摘要贴到新会话里。三、长期方案配置自动压缩阈值手动压缩毕竟麻烦。你可以在openclaw.json里设置自动压缩让系统在 token 达到某个比例时自动触发压缩。找到配置文件~/.openclaw/openclaw.json在agents区块里加上contextLimit{agents:{default:{model:gpt-4o,contextLimit:{threshold:0.8,strategy:summarize}}}}参数说明threshold: 0.8→ 当 token 使用率达到 80% 时触发strategy: summarize→ 自动用摘要压缩也可以设为strategy: truncate直接丢弃最早的消息不推荐会丢失上下文设置后每次发送新消息前系统会检查 token 用量。如果超过阈值自动执行压缩你甚至感觉不到。针对不同模型的建议阈值模型类型建议 threshold原因本地模型8K-16K0.6小窗口更敏感早点压缩GPT-4o / Claude100K0.85窗口大可以宽松一些便宜模型32K0.75折中四、预防减少 token 消耗的习惯除了爆了再救日常使用时也可以注意避免重复粘贴大段文本每次粘贴都会重新计入 token。如果需要反复参考同一份文档可以把它写入工作区文件让 AI 用read_file技能按需读取而不是每次都塞进对话。定期/new完成一个子任务后主动开新会话只传递必要摘要。精简 system prompt检查你的openclaw.json里systemPrompt是否写了一大堆用不上的规则。每多 100 个 token就少 100 个对话空间。关闭不必要的历史有些插件会自动把上一轮的工具调用结果全部保留可以配置retainToolCalls: false来节省空间。五、极端情况模型窗口本身就很小比如 4K如果你用的是本地小模型如 phi-2、qwen-1.8b上下文只有 4K 甚至 2K稍微聊几句就爆。这时候升级模型换一个至少 8K 的如 qwen-7b、llama-3-8b。用外部记忆下一篇文章会讲“Skill 老是失忆”的解决方案其中 Self-Improving Agent 可以把长对话的关键信息写入外部文件每次会话开始时加载。这相当于绕过了模型窗口限制。六、检查清单下次遇到“变笨”时输入/context看 token 占比。如果 80%输入/compact压缩。压缩后还不行/new新会话 人工摘要。长期解决配置contextLimit自动压缩。还是频繁爆考虑换更大窗口的模型或使用外部记忆。掌握这些方法你的 OpenClaw 就不会再“聊着聊着变傻了”。下一篇我们解决另一个高频痛点Skill 老是失忆刚教的过两天又犯。