前言

GPT-5.6 Sol 的百万上下文窗口此前仅对 API 用户开放,近期已向 ChatGPT 和 Codex 账户全面放开。配置操作本身很简单,但 OpenAI 明确指出:默认配置是在性能与成本之间权衡后的结果,超出默认窗口后 token 消耗翻倍不止。

本文完整梳理:如何开启、开启后会发生什么、以及你的任务是否值得开启。


一、配置方法:三行写在哪、怎么写、有什么坑

1.1 全局配置(推荐)

Mac/Linux 上编辑 ~/.codex/config.toml,在文件最顶部写入:

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

保存后重启桌面端,开启新对话即生效。

1.2 常见踩坑点

这三行必须放在所有 [section] 标题之前。

TOML 的解析逻辑是:遇到 [profiles][tools] 等节头,前面的全局键值就已处理完毕。若将这三行夹进某个 section,它们会变成该 section 的子配置而非全局配置,导致配置不生效且无任何报错——你会一直以为已经开启,实际上并没有。

验证是否生效:开启新对话后输入 what model are you using?,让 Codex 自行报告当前模型。


二、不想修改全局配置的两种替代方案

2.1 临时 CLI 方式(单次会话生效)

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

注意-c 参数值为 TOML 格式,不是 JSON。格式写错会导致参数解析失败。

2.2 Profile 方式(按需加载)

适合「某些任务用大上下文,其他任务用默认」的场景。将这三行写入 ~/.codex/large-context.config.toml,需要时通过 codex --profile large-context 加载。

版本兼容提示:Codex 0.134.0 起 --profile 行为有破坏性变更,不再读取 config.toml 里的 [profiles.<name>] 表,历史 Profile 设置需迁移至独立的 ~/.codex/<name>.config.toml。使用过 Profile 功能的用户请先确认版本和文件结构。

2.3 三种方式对比

方式 是否持久化 影响范围 适用场景
修改 ~/.codex/config.toml 全局默认 日常都用大上下文
CLI -c 参数 单次会话 临时试用,不想动配置
Profile 独立文件 按需加载 不同任务用不同配置

三、Token 消耗机制:开启后到底多花多少

3.1 一个关键事实:输入 token 才是大头

以一组真实会话数据为例:一整天的工程工作,总消耗 119,743,174 tokens,其中输出仅 219,381 tokens,不足总量的 0.2%。

产出了约 20 万 token 的代码和回复,却带入了 1.19 亿 token 的上下文。

结论:让回答变短对省钱几乎没有作用。 贵的不是模型输出了什么,而是每一轮对话都要将整个上下文重新带入。

3.2 上下文窗口扩大的实际影响

将上下文窗口从默认值扩展到 100 万 token,每轮可携带更多历史信息,模型视野更广,但每轮的输入 token 也同步增长。这正是 OpenAI 所说「超出默认窗口后 token 消耗翻倍不止」的实际含义。

3.3 两个需要知道的数字

  • 上述数据基于 GPT-5.5 公开 API 单价估算,不等于 Codex 订阅用户的边际成本,直接用 API 单价推算账单会高估实际费用。
  • Codex 中实测可用上下文约为 82 万 token,而非整 100 万——系统存在预留长度,规划任务规模时需留出这部分余量。

四、上下文更长,模型是否更智能?

评测数据给出了一个反直觉的答案。

MRCR v2 评测结果:GPT-5.6 Sol 在 1M 上下文下,性能从 91.5% 降至 73.8%,下降约 17.7 个百分点。MRCR v2 是长文档检索任务,测量的是模型在超长上下文中定位关键信息的能力。

结论:1M 上下文是双向代价。 不是「贵但更强」,而是「贵且在某些场景更弱」。

受影响最明显的场景

需要模型在极长上下文中精确定位某个细节,例如:排查跨多个文件、历史很长的 bug,模型需要记住三十轮前某个变量的定义。这类场景下,1M 上下文更容易导致模型漏掉或混淆关键信息。

受影响不明显的场景

任务较为集中,即便上下文较长,真正需要关注的信息密度不高,模型主要执行生成而非检索任务。


五、决策框架:该不该开大上下文

倾向开启大上下文

  • 跨大型仓库排查,需要模型同时参考大量文件
  • 长时间连续的架构或重构任务,不希望频繁中断切割上下文
  • 任务对精确检索要求不高,主要需要模型在大背景下维持连贯性

倾向使用默认配置

  • 单文件或小范围改写,上下文本身用量有限
  • 需要模型精确定位长上下文中的某个具体信息
  • 日常问答和代码补全,对 token 消耗较敏感

六、通用的 Token 消耗控制策略

无论是否开启大上下文,以下三点优先级最高:

  1. 及时拆分长会话:用交接摘要衔接,避免单个会话无限增长。
  2. 日志放文件,按需读取:大段日志不要直接粘贴进上下文,改为让模型按需读取文件。
  3. 规则和背景写进 AGENTS.md:稳定的上下文信息固化为配置,不要每次重复粘贴。

核心逻辑一致:输入 token 是成本大头,管理每轮带入的信息量才是降本最直接的手段。把上下文做薄,往往比把窗口开大更值得优先考虑。


总结

配置本身门槛不高,所有步骤均可按本文操作。真正需要想清楚的是:100 万 token 的窗口开给什么任务,以及如何管控输入防止成本失控。

核心结论 说明
配置位置 必须在 config.toml 所有 section 之前
实际可用上下文 约 82 万 token,非整 100 万
成本驱动因素 输入 token,而非输出
性能影响 长文档检索任务下降约 17.7%
最优控制策略 拆分会话 + 文件化日志 + 固化背景信息

如果需要使用 Claude Code,可以私我。也欢迎有需求的企业进行深度合作。

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐