2026 年 7 月,OpenAI 正式全面开放 GPT-5.6 系列模型。旗舰版 Sol 的参数表上写着一行让所有开发者心跳加速的数字:1,050,000 token 上下文窗口。一百万 token,什么概念?《三体》三部曲加起来也就一百多万字,一个窗口能塞进去大半套。但事情没那么简单!
刚刚Tibo 在社交媒体上分享了一段 Codex 配置文件修改方法,号称能“解锁”百万 token。开发者社区瞬间炸了。
配置文件里藏着的“作弊码”
打开 ~/.codex/config.toml,在任何一个 [section] 头部之前,敲下这三行:
model = "gpt-5.6-sol"
model_context_window = 1000000
model_auto_compact_token_limit = 900000
第一行告诉 Codex 用哪个模型。第二行把上下文预算硬顶到一百万 token。第三行设定了一个自动压缩的触发阈值——90 万 token 左右开始压缩旧内容,留出一点缓冲空间。保存文件,重启 Codex 客户端,开一个新会话。
不想改全局配置?单次 CLI 会话也能试:
codex -m gpt-5.6-sol \
-c model_context_window=1000000 \
-c model_auto_compact_token_limit=900000
看起来很简单对吧!改几个数字,百万上下文就到手了!可问题来了——如果改几个配置就能“解锁”官方宣称的能力,那官方一开始为什么不直接给?
官方说“我们精心调过默认值了”,翻译一下就是“别乱动”
Tibo 的原帖里有一句话被大多数人忽略了:“我们也知道默认值在性能和成本之间是最优的”。翻译成人话:我们故意没给你开满。
为什么?因为跑满一百万 token 的推理成本是天文数字。每百万输入 token 收费 $5,输出 token 收费 $30——这还只是 API 的标价。Codex 作为 ChatGPT 内置的编程 Agent,每天有几百万用户在跑。如果每个人都开着百万上下文窗口做代码补全,OpenAI 的算力账单会炸。所以默认值被压得很低。低到多少?低到让付费用户怀疑自己买了个假旗舰。
从 105 万到 35 万再到 25 万,一次比一次狠的“暗砍”
这才是整件事最让人上头的部分。GPT-5.6 Sol 的官方模型页面白纸黑字写着:1,050,000 token 上下文窗口,922,000 最大输入,128,000 最大输出。但 Codex 实际暴露给用户的窗口是多少?
2026 年 7 月 9 日模型正式发布时,Codex 的模型目录里 gpt-5.6-sol 的 context_window 是 372,000。按 95% 的有效比例折算,实际可用约 353,400 token。宣传 105 万,给你 35 万——直接砍掉三分之二。
这还没完。7 月 13 日前后,Codex 发布了一个更新。模型目录里的数字从 372,000 降到了 272,000。按同样的 95% 折算,实际可用只剩下 258,400 token。从 35 万到 25 万,又砍了 26.9%。两次暗砍叠加,用户拿到手的有效上下文只有宣传数字的 25.9%。
更讽刺的是定价规则。官方模型页面写着:输入超过 272,000 token 的请求,按 2 倍输入价格和 1.5 倍输出价格计费。Codex 现在把原始窗口刚好卡在 272,000——用户连“多花钱买长上下文”的选择权都没有。想用长上下文?去 API,别在 Codex 里待着。
Luna 的 150 万窗口打脸 Sol:旗舰到底旗舰在哪?
如果只有 Sol 被砍,还能解释为“技术限制”。但 GPT-5.6 系列有三个型号:Sol(旗舰)、Terra(均衡)、Luna(轻量)。Luna 的上下文窗口是多少?1,500,000 token。比 Sol 还多 50 万。输入价格呢?$1/百万 token——Sol 的五分之一。输出价格 $6/百万 token——Sol 的五分之一。
一个价格只有五分之一、上下文多出 50% 的“轻量版”模型,在 Codex 里能跑满 150 万吗?不知道。但 Luna 在 Terminal-Bench 2.1 上得分 84.3%,居然超过了 Terra 的 82.5%。这说明什么?说明上下文长度和推理深度之间的 trade-off 远没有官方宣传的那么线性。Sol 贵在“深度推理”和“多 Agent 并行”——但这些能力在上下文被砍到 25 万之后还能发挥多少?一个连代码库都塞不全的“旗舰”,怎么执行“仓库级分析”?
自动压缩救不了场:90 万阈值在 25 万窗口面前就是个笑话
配置里有一行 model_auto_compact_token_limit = 900000。它的作用是:当对话历史接近 90 万 token 时,自动把旧内容压缩成摘要。这个机制本身没问题——在真正的百万窗口下,90 万触发压缩是合理的。但在 Codex 实际只给你 25 万窗口的前提下,这个 90 万的阈值永远不会触发。永远不会!
那 Codex 自己的压缩机制什么时候触发?默认情况下,Codex 在接近窗口上限时自动压缩。但压缩就意味着丢失信息——代码片段被摘要替代,变量名变成“some variable”,函数逻辑变成“the function handles X”。在长会话的编程任务里,每一次压缩都是一次信息降级。窗口越小,压缩越频繁,丢失的上下文越多。这就是一个死亡螺旋。
“没人会因为改 config 被封”——但性能崩了算谁的?
社区里有人担心修改配置文件会不会被封号。另一位用户直接回应:“没人会因为改 config.toml 被封。这只是高级配置修改,可能导致性能下降。我自己以前搞砸过配置,只能重装修复。”
这段话信息量很大。官方不禁止你改配置——但也不保证改了之后能用。性能下降、会话中断、配置崩了重装——这些都是你自己承担的后果。更有用户实测:把 model_context_window 改成 998,000,结果跑到接近 400,000 token 时会话直接终端,自动压缩也失败了。配置改了,窗口没真开,压缩没触发,会话直接崩。
这就怪了!一个官方文档标注支持 105 万 token 的模型,在官方产品里手动配置到 100 万后,跑到 40 万就崩了。到底是模型不支持,还是 Codex 的产品逻辑在某个环节做了硬拦截?
那个让你回不去的细节
2026 年 7 月 18 日,Codex 的 PR #33972 被合并到 release/0.144 分支。提交信息写的是:“刷新 GPT-5.6 Sol、Terra 和 Luna 的捆绑提示词,并将它们的上下文窗口修正为 272,000 token”。关键词是“修正”(corrected)。官方认为 272,000 才是“正确”的数值。
但同一天,Codex 的 models.json 文件里,gpt-5.6-sol 的 context_window 和 max_context_window 都写着 272,000。而在同一个文件的其他位置,模型描述里仍然写着“GPT-5.6-Sol”。一个模型,两套数字。一套给用户看,一套给机器执行。这个差异不是 bug——它是一个设计。
下次你在 Codex 里开一个新会话,输入 /model 看看返回的 context window 是多少。如果显示的不是 1,050,000,而是 272,000 或者 258,400,你就知道——你花钱买的那个“百万上下文旗舰”,在 Codex 里其实是个“二十五万上下文特供版”。而那个 TOML 配置文件里的 model_context_window = 1000000,更像是一张写给自己的安慰条。