Appearance
GPT-5.4 context window 重启后不一致(200k/272k/1050k 三值不统一)
问题
在 macOS 上使用 OpenClaw 2026.4.15,将 openai-codex/gpt-5.4 设为主模型后,重启或新建会话时 context window 在不同层面显示不一致:
- 新建 Telegram DM 会话中
contextTokens = 200000 - Mac app 模型目录(
models.json)显示contextWindow = 272000 - 某些场景下
openclaw models list显示1050000
根本原因是运行时存在两处覆写逻辑:
js
// 问题代码示例(agent-runner.runtime-*.js)
const contextTokensUsed = resolveContextTokensForModel({
cfg,
provider: providerUsed,
model: modelUsed,
contextTokensOverride: agentCfgContextTokens,
fallbackContextTokens: activeSessionEntry?.contextTokens ?? 2e5, // 硬编码 fallback 200k
allowAsyncLoad: false,
}) ?? 2e5;每次会话启动时,这两处代码都会将 contextTokens 覆写回较小的值(200000 或 272000),导致已配置的值持续被覆盖。
解决方案
该问题属于 OpenClaw 2026.4.15 的运行时 bug,目前(2026-04-21)已有社区追踪,等待官方修复。
临时缓解措施:
在配置文件中显式固定 context tokens 覆盖值:
json5{ agents: { defaults: { model: { primary: "openai-codex/gpt-5.4", contextTokens: 1050000, // 或你期望的值 }, }, }, }或者通过 Control UI 的会话设置面板手动覆盖当前会话的
contextTokens(sessions.patch),避免每次重建会话都受影响。如果用 Linux/Control UI 环境复现,可通过
sessions.json中已有条目检查contextTokens字段值并手动修正。
根本修复需要官方统一 resolveContextTokensForModel 的调用链,移除硬编码 fallback 2e5,改为从已解析的模型目录读取实际 context window 大小。