GPT-5.6 上下文只有 258K?Codex CLI 上下文上限与修改思路
网页端宣传的 1M、Codex CLI 里的 272K、VS Code 插件显示的 258K,其实不是同一个东西。本文拆解这三个数字的来源,说明自动压缩为何频繁触发、改配置能不能突破上限、超过阈值后在计费与输出质量上要付什么代价,并给出一套不依赖硬改上限的长任务上下文管理清单。
在 IDE 插件里跑大任务时,隔一段时间就提示要压缩上下文,压完没几轮又压一次——这是很多人从网页版转用命令行或插件后最先撞上的墙。奇怪的是,官方模型介绍里动辄写着百万级上下文,命令行工具里看到的却是二十多万,插件里显示的数字又更小一点。三个数字对不上,于是自然会想:是不是配置里加一行就能解开?
先把结论摆出来:这些数字大概率都不是错的,它们描述的是不同层面的限制。可以改,但改之前要先弄清改的是哪一层,以及改完之后代价落在哪里。
三个数字分别是什么
把常见说法归一下类,会清楚很多:
| 看到的数值 | 通常来自 | 实际含义 |
|---|---|---|
| 百万级 | 模型介绍页、网页端高阶套餐 | 模型或该产品形态的理论窗口上限 |
| 二十七万左右 | 命令行工具、API 侧配置 | 客户端向服务端申请的窗口大小 |
| 二十五万多 | IDE 插件界面显示 | 扣掉输出预算、系统提示、工具定义后的可用余量 |
理论窗口是模型能力的上限,通常只在特定入口、特定套餐下才真正开放。
客户端配置值是“我打算用多少”,它可能小于模型上限,也可能被服务端按账号档位卡住。
插件显示值往往是有效余量:模型要预留输出 token,客户端要注入系统提示和工具 schema,这些都要从窗口里扣。所以插件里比命令行少个一两万 token 是正常现象,不代表哪里配错了。
模型版本、套餐档位和客户端默认值更新都很频繁,具体数值请以官方文档和价格页的最新说明为准,别拿半年前截图里的数字做决策。
为什么压缩触发得那么勤
自动压缩一般在这几种情况下被触发:累计 token 接近阈值、单次工具输出过大(比如一次性读进几个大文件)、多轮对话里历史越滚越长。压缩本身是有损的:它把前文揉成摘要,细节会丢失,模型对早期约定的记忆随之变淡。
于是就会出现“压缩—继续—再压缩”的循环。问题的根源往往不是窗口太小,而是一次会话里塞了太多彼此无关的内容。
改配置这条路怎么走
命令行工具通常在用户目录下有一个 config.toml,里面有和上下文相关的键,形如:
# ~/.codex/config.toml,键名以你所用版本文档为准
model = "<你的模型名>"
model_context_window = 272000
model_max_output_tokens = 32000
需要注意的几点:
- 键名和是否生效随版本变化,改之前先用
--help或翻当前版本文档确认,别照抄旧教程。 - IDE 插件未必读同一份配置。有的插件自己维护设置项,改命令行配置对它无效,要在插件设置里找对应开关。
- 配置类切换工具只切换配置源,它不会改变服务端对账号档位的限制。写了更大的值,请求仍可能被拒绝,或者被按更高档位计费。
- 改完做一次验证:跑一个足够长的任务,看是否报错、是否触发额外计费、压缩行为有没有变化。
动手前先确认四件事
- 当前使用的模型名和账号档位分别是什么;
- 官方价格页里上下文是否分档计价,分界点在哪;
- 客户端版本是否支持你要改的那个键;
- 你有没有可回滚的原始配置备份。
代价一:越过阈值就开始多花钱
上下文长度在多数服务里是分档计价的:请求的输入规模超过某个界限后,同样的 token 会按更高单价计算。有使用者反馈越过二十七万这一档后费用明显上升,具体倍数和分界点请以官方价格页为准,且这类规则调整频繁。
也就是说,“把上限调到一百万”在技术上也许能写进去,但账单会替你验证它是不是个好主意。跑几个大任务之后,成本可能比拆成多个小会话高出数倍。
代价二:窗口越大,模型越容易“瞻前不顾后”
这是更隐蔽的一层。上下文变长不等于模型能同等强度地利用全部内容,中间位置的信息被忽略是常见现象。多位使用者的共同反馈是:超过二十多万 token 后,模型对早期约定的遵守度下降,改一处忘一处,反而比“压缩后重新对齐”更容易出错。
官方把默认值定在某个区间,通常是在效果、延迟和成本之间取的折中。把它理解成“厂商替你做过的 A/B 测试结果”更合适。
所以判断标准应该是:当前窗口是否已经成为真实瓶颈。如果压缩后任务仍能顺利推进,硬改上限带来的收益很有限。
更划算的做法:管理上下文而不是放大它
多数“上下文不够”的问题,用流程就能缓解:
- 一个会话只做一件事。任务切换时开新会话,把必要背景写进第一条消息,而不是背着几十轮历史继续跑。
- 精简常驻指令文件。
AGENTS.md之类的文件每轮都会占用窗口,删掉冗余描述、把长示例挪到单独文档按需读取。 - 按需读文件,不要整目录灌进去。先搜索定位,再让工具读取相关片段,避免一次把大文件全部塞进上下文。
- 在合适的节点手动压缩。一个子任务刚结束、结论已确认时主动压缩,比等到系统强制压缩时保留的信息更可控。
- 把结论落到文件。方案、接口约定、待办清单写进仓库里的笔记文件,让模型下一轮重新读取,而不是指望它记住对话。
- 大任务分阶段。先产出计划与接口定义,再分步实现,每步用独立会话验收。
- 留意用量提示。接近阈值时主动收尾、总结、结束会话,比被强制压缩后继续跑更省事。
如果任务确实绕不开超大窗口(例如整库级分析、长文档逐条对照),可以拆成多轮喂料,或者改用本身开放更大窗口的入口,同时接受成本上升。
另外,长任务还有一个容易被忽略的失败点:本地机器休眠、断网、终端被关掉,会话就断了,前面压缩掉的历史也找不回来。如果任务需要连续跑很久,可以把工作放到长期在线的远程 macOS 环境里执行——例如整机托管在新加坡机房的独享 Mac mini,按月租用、远程连接,网络和电源都更稳定,适合长时间挂着跑这类命令行 AI 工具。这只是可选方案之一,本地机器能稳定在线就没必要折腾。
小结
- 百万级、二十七万、二十五万这几个数字分别对应理论窗口、客户端申请值和插件有效余量,不是互相矛盾,也不用急着“修”。
- 配置文件里确实有控制窗口的键,但能否生效取决于账号档位和服务端策略,改前备份、改后验证。
- 越过计价分界点会带来更高费用,窗口拉大后模型对长上下文的利用效率也会下降,这两点比“能不能改”更值得先想清楚。
- 大多数场景下,拆分任务、精简常驻指令、主动压缩、把结论写进文件,比硬调上限更省钱也更稳。
- 所有具体阈值、计费档位和配置键名都以官方最新文档为准,本文只提供判断思路。