排错笔记:OpenClaw 出现 '100% context used' 红色警告怎么办?
模型上下文窗口配置不当导致的假性报错,一行数字就能搞定

排错笔记:OpenClaw 出现 ‘100% context used’ 红色警告怎么办?
排错笔记:OpenClaw 出现 “100% context used” 红色警告怎么办?
你在聊天窗口右下角看到了一行刺眼的红色文字——“100% context used”。
这意味着什么?你的模型真的把上下文窗口塞满了吗?别急,大概率不是。今天我来拆解这个常见问题的根因和修复方法。
问题重现
某天你正在用 OpenClaw 和 AI 模型对话,突然发现聊天窗口里出现了红色警告。打开模型列表一看:
$ openclaw models list
🦞 OpenClaw 2026.4.5 (3e72c03) — Self-hosted, self-updating, self-aware...
Model Input Ctx Local Auth Tags
nvidia-glm5/z-ai/glm5 text 16k no yes default,configured,alias:nvapi-glm5
lm-studio-custom-127-0-0-1-5868/qwen3.5... text 16k yes yes configured,alias:LMStudio-qwen35A3B-UHA
custom-api-scnet-cn/MiniMax-M2.5 text 16k no yes configured,alias:SCNet-MiniMax-M2.5
nvidia/moonshotai/kimi-k2.5 text 195k no yes configured,alias:Kimi K2.5
minimaxai/minimax-m2.5 - - - - configured,missing
deepseek-ai/deepseek-v3.2 - - - - configured,missing
qwen/qwen3.5-397b-a17b - - - - configured,missing
nvidia/z-ai/glm5 text 195k no yes configured,alias:GLM-5注意到第一行 nvidia-glm5/z-ai/glm5 的上下文窗口显示为 16k,而最后一行 nvidia/z-ai/glm5 却显示 195k。同一个模型,两个不同的 provider 配置,上下文窗口差距超过十倍。
问题就出在这个 16k 上。
为什么会这样?
根因:API 没有返回准确的上下文窗口参数
当你配置一个新的模型提供商(比如 NVIDIA 的 GLM-5)时,OpenClaw 会尝试通过调用提供商的 /v1/models 接口来获取模型的详细信息,包括上下文窗口大小、最大输出 token 数、输入类型等。
但问题在于——并非所有提供商都完整返回这些信息。
NVIDIA 的 API 在某些情况下不会返回 context_window 参数。当 OpenClaw 拿不到这个值时,它会用一个默认猜测值,通常是 16k 或 4k。
于是,OpenClaw 内部逻辑变成了这样:
“这个模型的最大上下文窗口是 16000 token。”
但实际上 GLM-5 的真实上下文窗口是 128k 或 195k。
红色警告的本质
当你的对话内容(包含系统提示词 + 用户消息 + 历史上下文)接近 OpenClaw 认为的上限时,它就会在界面上弹出红色警告。
举个例子:你的对话实际消耗了约 31k token,但 OpenClaw 以为上限只有 16k:
31000 / 16000 = 193.75% → 红色警告 "100% context used"实际上你的模型远没有达到极限,只是 OpenClaw 的"尺子"量错了。
解决方法:手动修正 contextWindow
这是最快也最有效的方案——告诉 OpenClaw 这个模型的真实容量。
第一步:打开配置文件
在终端中执行:
code ~/.openclaw/openclaw.json(如果你不用 VS Code,也可以用任何你喜欢的编辑器。)
第二步:找到对应的 Provider 配置
在 JSON 中找到 "nvidia-glm5" 那段配置。它大致长这样:
{
"nvidia-glm5": {
"baseUrl": "https://integrate.api.nvidia.com/v1",
"api": "openai-completions",
"apiKey": "nvapi-xxxxx",
"models": [
{
"id": "z-ai/glm5",
"name": "z-ai/glm5 (Custom Provider)",
"contextWindow": 16000,
"maxTokens": 4096,
"input": ["text"]
}
]
}
}重点关注 "contextWindow": 16000 这一行。
第三步:修改数值
将其改为模型真实的上下文窗口大小。GLM-5 支持 128k 或 195k 上下文,建议填大一些留有余量:
"contextWindow": 200000,
"maxTokens": 8192,为什么填 200000 而不是 131072(128k)? 因为填大一点可以防止计算误差导致再次触发警告。模型 API 会在后端自动截断超出实际支持范围的 token,前端不会因此出错。
第四步:保存并重启
按 Ctrl + S 保存文件,然后重启 Gateway 使配置生效:
openclaw gateway restart重新进入聊天窗口,红色警告应该消失了。
这样做安全吗?
很多人会担心:手动改数字会不会损坏模型或导致其他问题?答案是:完全安全。
原因一:这只影响前端显示
修改 contextWindow 只是告诉 OpenClaw 的前端"这个模型有多大容量"。它不会改变模型本身的行为,也不会影响 API 调用。真正的上下文截断由模型提供商在后端处理。
原因二:API 会自动兜底
即使你填了 200000,而模型实际只支持 128k,NVIDIA 的 API 会在 token 数超过实际限制时自动截断并返回结果。OpenClaw 不会因此崩溃或出错。
原因三:解决的是视觉 Bug
红色警告本质上是一个计算错误。把上限从 16k 改为 200k 后,同样的对话内容:
31000 / 200000 = 15.5% → 绿色正常显示一切恢复正常。
举一反三:哪些模型容易遇到这个问题?
任何通过 OpenAI 兼容接口接入的模型提供商都可能遇到这个问题,尤其是:
- NVIDIA API:部分模型不返回
context_window参数 - Cherry Studio:模型列表管理有限,可能缺少详细元数据
- 本地部署的模型:如 LM Studio、Ollama,取决于具体配置
判断方法:运行 openclaw models list,如果某个模型的 Ctx 列显示 16k 或 4k,但你知道它的真实上下文远大于此,那就需要手动修正。
总结
| 步骤 | 操作 |
|---|---|
| 1 | 运行 openclaw models list 确认模型的上下文窗口显示值 |
| 2 | 编辑 ~/.openclaw/openclaw.json,找到对应 provider |
| 3 | 将 contextWindow 改为模型真实值(适当留余量) |
| 4 | 保存文件并 openclaw gateway restart |
| 5 | 刷新聊天窗口,红色警告消失 |
一行数字的修改,解决一个看似严重实则无害的警告。下次再看到 “100% context used”,记住——你的模型没有满,只是 OpenClaw 的尺子量错了。
参考来源
–全文完–

梦行志
