Codex 的 1M 上下文来了,一文教你是否开启及如何配置
Codex 支持 1M 上下文了,为什么评论第一条却是“别开”?
看起来有点反直觉:上下文窗口更大,按理说应该更强。但对 Codex 来说,1M 不是一个只要打开就稳赚的“性能按钮”,而是一个需要付出成本、延迟和稳定性代价的长任务档位。
所以这篇文章不只讲怎么把 GPT-5.6 Sol 的上下文调到 100 万 Token,也想把那句“别开”背后的理由讲清楚:什么时候 1M 真能帮你,什么时候默认配置反而更合适。
这次到底发生了什么?
8 月 17 日,Tibo Sottiaux 发布了 Codex 的 1M 上下文配置说明。截图里最关键的信息有两条:GPT-5.6 Sol 的文档窗口是 1,050,000 Token;Codex 则可以把可用上下文预算设为 1,000,000 Token。

这意味着,1M 不是“把模型换成了一个新模型”,而是调整 Codex 在一次会话里保留多少代码、工具结果和历史对话。上下文越大,模型越晚需要把旧内容压缩成摘要。
这里有一个容易被忽略的细节:上下文窗口不是模型的记忆,也不是永久存储。 会话结束后,模型不会因为窗口变大就自动记住项目;窗口只是当前请求能够携带的材料上限。
怎么开启 1M?
方式一:写入用户级配置
打开 ~/.codex/config.toml,把下面配置放在任何 [section] 之前:
model = "gpt-5.6-sol"
model_context_window = 1000000
model_auto_compact_token_limit = 900000
三项配置分别表示:选择模型、设置上下文预算、在接近 90 万 Token 时开始自动压缩历史内容。保存后重启 Codex,并新建一个 Session。
方式二:只对一次 CLI 会话生效
如果只是想试一试,可以临时传参,不改变默认配置:
codex -m gpt-5.6-sol \
-c model_context_window=1000000 \
-c model_auto_compact_token_limit=900000
这段命令来自用户提供的截图和参考文章。不同版本客户端的参数支持可能变化,实际使用前请以当前 Codex 配置参考为准。

1M 上下文,真正改变的是什么?
1. 更晚触发自动压缩
Codex 的会话材料不只有你的问题,还包括读过的文件、工具调用结果、终端输出和之前的修改记录。窗口较小时,系统需要更早把旧内容压缩成摘要;窗口扩大后,可以把更多原始材料留在当前上下文里。
对长任务来说,这很重要。摘要通常能保留结论,却不一定保留每一处变量名、报错细节和被否决的方案。上下文越早被压缩,后续越可能出现“明明前面说过,怎么又问一遍”的情况。
2. 更适合跨文件、跨模块工作
当任务需要同时理解 API、数据库层、测试、部署脚本和文档时,1M 能降低频繁切换和重复补充背景的需要。它不会替你建立架构图,但能让模型在同一轮工作里看到更完整的证据链。
3. 代价也会随之放大
更大的窗口不是免费的性能开关。输入材料更多,处理成本和延迟都可能增加;而且把大量无关日志、生成文件和重复内容塞进上下文,会让模型更难抓住真正重要的部分。
参考文章提到,GPT-5.6 Sol API 在超过 272K Token 后,输入价格和输出价格会进入更高的计价档位。但这不能直接换算成 ChatGPT 或 Codex 的套餐额度消耗,二者不是同一套公开计费口径。能确定的只有一点:更大的上下文有成本,默认值不是随便设的。
1M 的优点,不只是“能装更多”
长任务更连贯。 连续数小时的重构、调试和测试,少一些上下文断档。
少做重复说明。 不必每隔一段时间重新粘贴目录结构、约束条件和关键报错。
更适合复杂代码库。 当一个改动牵涉多个服务和配置文件时,保留更长的证据链有助于减少局部最优。
但这些收益都有前提:上下文里的内容必须有用。1M 不是“把整个硬盘扔给模型”,更不是替代检索、分层阅读和清理日志的理由。长任务中,主动丢弃过时信息,往往比单纯扩大窗口更重要。
1M 的缺点,上下文容易污染
旧信息会一直留在场内。 长会话里,过时的需求、已经改掉的变量名、失败的排查方向和临时决定,都可能继续占用上下文。它们未必马上造成错误,却会让模型在后续判断时把“曾经成立”误当成“现在仍然成立”。
工具输出会放大噪声。 一次完整的构建日志、测试报告或批量搜索结果,可能比真正需要关注的几行信息长得多。窗口变大以后,这些内容更容易被保留下来,注意力却不会同步变多。
污染会产生路径依赖。 前面一次错误假设如果没有明确纠正,后面的代码修改可能继续围绕它展开;会话越长,纠偏成本越高。这也是为什么 1M 不等于“把所有历史都留下来”。
成本与延迟可能上升。 输入材料更多,处理成本和等待时间都可能增加,具体影响取决于模型、账户、客户端和任务内容。
压缩只是推迟,不是消失。 设置 900000 只是让自动压缩在接近上限时发生。长会话最终仍会进入压缩或总结阶段;如果上下文已经被污染,压缩还可能把错误信息一起总结进去。
配置错误会带来误判。 只有支持足够窗口的模型才适合这样设置;如果模型、客户端或账号不支持,参数不会凭空创造 1M 能力。
普通任务和长任务,怎么选?
可以用下面这张“够不够长”清单做决定:
| 场景 | 建议 | 原因 |
|---|---|---|
| 改一个函数、解释一段代码 | 默认 | 上下文很快就够用 |
| 写一个独立脚本或小功能 | 默认 | 1M 的额外成本难以抵消 |
| 跨多个服务做重构 | 试用 1M | 需要同时保留更多依赖关系 |
| 长时间调试,终端输出密集 | 试用 1M | 减少早期压缩造成的细节丢失 |
| 一次性导入整个仓库 | 不建议直接拉满 | 先筛选入口、依赖和相关模块 |
| 需要严格控制预算或延迟 | 默认 | 可预测性更重要 |
我的建议很简单:重构和大型任务中,如果频繁触发自动压缩,就开启 1M 如果没有遇到过早压缩、反复补背景或跨文件遗忘,开 1M 只是增加变量;如果这些问题已经明显影响工作,再用单次 CLI 参数试跑一个真实长任务。
最后:1M 是选择,不是答案
Codex 支持 1M 上下文,真正的意义不是把“越大越好”写进默认设置,而是让用户多了一个控制长任务的档位。
对小任务,默认配置往往已经足够;对复杂工程,1M 可能让一次会话更连贯。但它不会修复糟糕的任务拆分,也不会替代清晰的目标、可靠的测试和必要的人工判断。
把上下文当成预算,而不是仓库。需要时打开,完成后复盘,这比永远追求最大数字更接近高效使用 Codex 的方式。
资料来源
- OpenAI Developers,GPT-5.6 Sol Model:https://developers.openai.com/api/docs/models/gpt-5.6-sol
- OpenAI Developers,Codex Configuration Reference:https://developers.openai.com/codex/config-reference
- OpenAI Developers,ChatGPT & Codex changelog:https://developers.openai.com/codex/changelog
更多推荐

所有评论(0)