文章摘要
文章围绕Codex解锁百万上下文展开,其默认上下文约25.8万token,现公开解锁方法,如修改配置文件、用命令行参数创建一次性会话等。但开启有隐藏成本,包括额度消耗快和性能问题,模型易遗忘中间信息。是否开启需依任务场景决定,且Tibo透露Codex将接入Astra,100万上下文或成标配。

很多用户发现,自己使用的Codex默认上下文长度只有约25.8万token,但同系列的GPT-5.6 Sol API却支持105万token的上下文窗口,这中间的差异让人困惑。事实上,这一设置并非一成不变,OpenAI的产品相关负责人Tibo此前曾表示默认值是经过调试的最优解,但在近期公开了解锁百万上下文的方法,只需要简单的三行配置即可完成修改。

Codex的上下文长度经历过几次调整,最初上线时默认上下文为37.2万token,今年7月18日通过GitHub PR调整到27.2万,再加上5%的安全缓冲后,就变成了当前的25.84万,也就是大家看到的25.8万。Tibo当时解释称,Codex每次调用工具时都需要重新处理完整的上下文,窗口越大单次开销越高,25.8万是性能和成本的平衡点。

快速解锁百万上下文的三种方式

如果需要长期使用百万上下文,可以通过修改配置文件实现。打开终端,编辑~/.codex/config.toml,如果此前没有修改过该文件,它可能是空的或者根本不存在,直接新建即可。在文件中添加或更新以下三行代码:

model = "gpt-5.6-sol"
model_context_window = 1000000
model_auto_compact_token_limit = 900000

第一行指定使用的模型为GPT-5.6 Sol;第二行设置上下文窗口为100万token;第三行设置自动压缩阈值,当上下文积累到90万token时,Codex会自动压缩历史对话。保存文件后重启Codex,即可完成配置。

这里需要注意,实际可用的上下文并非整整100万token:Codex会先预留12.8万token用于模型输出,再加上95折的安全缓冲,计算公式为(1000000 - 128000) × 95% = 828400,也就是约82.8万token,此前的25.8万默认上下文也是按照同样的逻辑计算得出的。

如果只需要临时使用百万上下文,可以通过命令行参数创建一次性会话,这样的设置仅对当前会话生效,下次启动Codex时会自动恢复默认值,适合偶尔需要长上下文的场景。对应的命令如下:

codex chat -m gpt-5.6-sol \
  -c model_context_window=1000000 \
  -c model_auto_compact_token_limit=900000

还有一种更简单的懒人方法,不需要打开终端,直接让Codex自己修改配置文件。只需要将以下提示词复制粘贴给Codex即可:

修改Codex配置文件,~/.codex/config.toml,把model设置为gpt-5.6-sol,model_context_window设置为1000000,model_auto_compact_token_limit设置为900000。

该方法亲测有效,此前这类配置仅对API用户开放,现在已经可以直接在本地使用。

开启百万上下文的隐藏成本

虽然解锁百万上下文的操作非常简单,但Tibo并没有提到开启后需要付出的代价,主要有两点需要注意:

第一是额度消耗。开启百万上下文后,Codex的额度消耗速度会大幅提升。Codex每次调用工具时,完整的上下文历史都会作为输入传递给模型,虽然OpenAI提供了缓存机制,已经处理过的内容不需要重新计算,但缓存部分仍然需要按照正常价格的十分之一收费,其中GPT-5.6 Sol的正常输入价格为5美元每百万token,缓存输入为0.5美元每百万token。上下文从25.8万扩展到82.8万,每次工具调用的计费缓存量翻了数倍,如果一次会话调用几十次工具,累积的费用会非常可观。不少用户在Tibo的评论区吐槽,开启后额度消耗速度极快,有的甚至连两天都撑不过,还有用户称已经用掉了两次额度重置,质疑平台是故意降低默认额度来逼氪,有消息称OpenAI正在测试付费购买额度重置的功能。

第二是性能问题,这一点比额度消耗更需要重视。上下文越长,模型越容易遗忘中间的内容,只能记住开头和结尾附近的信息。斯坦福大学2023年的研究“Lost in the Middle”已经验证了这一规律,后续也有多次实证,放在上下文中间位置的信息,检索准确率最多会下降30%到50%,这是Transformer架构本身的局限性。实测显示,GPT-5.5在12万到25万token的区间内表现最佳,超过这个范围后准确率会明显下降,这也解释了为什么OpenAI将默认上下文设置在25.8万。可以把上下文窗口类比为人类的工作记忆,内容塞得越满,越容易遗漏中间的信息。

修改配置后,有几个常用命令可以帮助管理上下文:使用/status可以随时查看当前的token用量,使用/compact可以手动压缩历史对话腾出空间,使用/new可以直接开启一个全新的干净会话,这些命令同时适用于桌面客户端和CLI工具。

是否需要开启百万上下文?

是否开启百万上下文需要根据具体的任务场景来决定,可以将任务分为三档:

  • 日常编写代码的场景,30万左右的上下文就足够,早点触发压缩反而更高效
  • 如果需要加载大型代码库、大量仓库和工具历史,60万左右的上下文比较合适
  • 只有在逆向工程、大规模代码迁移、长时间调试这类需要反复查阅历史信息的“考古”类任务中,才需要将上下文调到100万

Tibo在同一天还透露,Codex即将接入OpenAI在8月初公布的下一代模型Astra,届时100万上下文可能会成为标配功能。

以上内容不代表本平台立场,仅供读者参考