我遇到的问题是:config.toml 里明明已经写了 GPT-5.5 的 1M 上下文,但 Codex Desktop 新开线程或重启后,界面又显示回 258K。
最后排查发现,不是 config.toml 写错,而是 Codex Desktop 会读取本地模型缓存。缓存里的 GPT-5.5 被刷新成了:
"context_window": 272000,
"max_context_window": 272000,
"effective_context_window_percent": 95
所以界面看到的是大约:
272000 * 95% = 258400
正确配置
C:\Users\<用户名>\.codex\config.toml 里继续保留 1M:
model = "gpt-5.5"
model_context_window = 1000000
model_auto_compact_token_limit = 900000
真正要修的是缓存
把下面两个文件里,slug 为 gpt-5.5 的对象改掉:
C:\Users\<用户名>\.codex\models_cache.json
C:\Users\<用户名>\.codex\model-catalog.gpt-5.5.json
只改这两个字段:
"context_window": 1000000,
"max_context_window": 1000000
其他模型和其他字段不要动。
防止被刷新覆盖
Codex 可能会重新刷新模型缓存,所以我在 Windows 计划任务里加了一个登录后启动的 watcher,每 30 秒检查一次。如果发现 GPT-5.5 又变回 272000,就自动改回 1000000。
任务名可以叫:
Codex GPT-5.5 Context Watcher
脚本放在:
C:\Users\<用户名>\.codex\bin\
验证方式
修完后检查两个缓存文件,GPT-5.5 应该是:
context_window=1000000
max_context_window=1000000
界面如果显示约 950K,这是正常的,不是失败。因为 Codex 会按 effective_context_window_percent = 95 保留一部分上下文:
1000000 * 95% = 950000
看到 950K 是成功;看到 258K 才说明缓存又被覆盖了。
注意
这个方法只是修 Codex Desktop 本地模型缓存和上下文预算显示。如果你的上游 API 或中转服务本身不支持 1M,上下文超过服务端限制时仍然可能报错。
8 个帖子 - 6 位参与者