目录

排错笔记: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
3contextWindow 改为模型真实值(适当留余量)
4保存文件并 openclaw gateway restart
5刷新聊天窗口,红色警告消失

一行数字的修改,解决一个看似严重实则无害的警告。下次再看到 “100% context used”,记住——你的模型没有满,只是 OpenClaw 的尺子量错了。


参考来源


–全文完–

感谢阅读
若你有故事想讲、有困惑想聊、或是想找个人说说心里话,甚至只是吐槽发泄一下情绪,都欢迎来找我聊聊:   《内容已折叠,点击展开》

希望我写的每一个字,成为我自己和某个人活下去、拼下去的力量。                     《内容已折叠,点击展开》

“技术终归是工具,而我们一次次认真把问题理顺,守住的其实不只是页面样式和代码输出,还有那一点不愿被混乱打败的心气,是每一个深夜仍愿点灯前行的人。”

转载请注明来自https://oklife.me。

文尾配图水墨画图片