调整OpenClaw的上下文长度,可以获得更好的应用效果,以达到经济性和适用性的平衡。
在 OpenClaw 中配置上下文长度,核心是修改模型定义文件 openclaw.json,手动设置 contextWindow 参数,以覆盖系统可能存在的错误检测或默认限制。
整个配置过程可以分为两大步:
⚙️ 第一步:核心配置------修改模型参数
这是最关键的一步,直接决定模型能使用的上下文窗口大小。
-
找到配置文件 :根据你的安装方式和运行环境,找到
openclaw.json文件。它通常位于~/.openclaw/或~/.openclaw-dev/目录下。 -
编辑配置 :使用任何文本编辑器打开该文件。在
models字段下,你需要添加或修改针对你所用模型的配置。这里的关键是使用"mode": "merge"来确保你的手动设置能够永久生效,不会被系统自动扫描覆盖。重要提示 :请务必修改
openclaw.json,而不是models.json。models.json是系统缓存,每次重启都会被重置。 -
设置关键参数:在你的模型配置中,添加或修改以下两个参数:
contextWindow:这是你想为模型分配的上下文窗口总大小 ,单位是 token。OpenClaw 官方推荐至少 64k 以获得良好体验。你可以根据模型的实际情况设置为64000、128000甚至256000。maxTokens:限制模型单次回复的最大 token 数,用于防止单次消耗过多配额。
配置示例:
json{ "models": { "mode": "merge", // 关键:强制使用你的配置 "你的模型供应商/ID": { // 例如 "ollama/qwen2.5-coder:7b" "contextWindow": 128000, // 👈 在这里设置你想要的大小 "maxTokens": 4096, // ... 其他模型参数 } }, // ... 其他配置保持不变 } -
重启服务:保存文件后,需要重启 OpenClaw 网关使配置生效:
bashopenclaw gateway stop openclaw gateway run如果你是用
ollama启动的,命令通常是ollama launch openclaw。
注意 :如果你使用的是 LM Studio、Ollama 等本地服务,必须确保服务端也开启了同样大小的上下文窗口。例如在 LM Studio 的侧边栏找到 "Context Length" 并拉到相应数值,否则可能会报错或爆显存。
🧐 第二步:验证与诊断------确保配置生效
修改配置后,最好验证一下是否成功,并了解上下文的使用情况。OpenClaw 提供了一系列实用的斜杠命令来帮你做到这一点:
| 诊断命令 | 主要作用 |
|---|---|
/status |
快速查看当前会话的上下文窗口"有多满"以及会话设置。 |
/context list |
查看哪些工作区文件被注入了上下文,以及它们各自的大致大小(原始 vs 注入后)。 |
/context detail |
查看更深入的分解信息,比如每个文件、每个工具 schema、每个技能条目的具体大小。 |
/usage tokens |
在每次 AI 回复后,附加显示此次回复消耗的 token 数量。 |
/compact |
当上下文窗口接近饱和时,手动将较早的对话历史总结为摘要,以释放窗口空间。 |
💡 进阶技巧:精细化管理上下文
除了设置窗口大小,OpenClaw 还提供了更高级的机制来主动管理上下文内容,避免"内存"爆炸:
- 工作区文件注入控制 :默认会注入
AGENTS.md、SOUL.md等文件。你可以在openclaw.json的agents.defaults下调整bootstrapMaxChars(单文件上限,默认20000字符)和bootstrapTotalMaxChars(总计上限,默认150000字符)来控制它们的大小。 - 自动上下文修剪 :OpenClaw 支持自动修剪 (Pruning) 旧的工具调用结果。你可以在配置文件中设置
contextPruning策略(如mode: "cache-ttl"),让系统自动清理过期的、占用大量 token 的工具输出。 - 按需加载技能 :系统提示词中只包含技能 (Skills) 的列表和简短描述 ,而不是全部指令。模型只有在需要时,才会去读取对应
SKILL.md的详细内容,这样可以有效节省上下文空间。