GPT-5.3-Codex 使用 xhigh 时为何会产生大量 Token?

作者:袖梨 2026-09-13

GPT-5.3-Codex 在 xhigh 推理档位下产生大量 Token,通常不是单一原因。总消耗可能同时包含更长的内部推理、更多工具调用、每轮重复进入上下文的代码与日志,以及最终输出。对于长时间代理任务,任何一个环节的增长都会被多轮循环放大。

xhigh 的目的就是允许模型为困难任务投入更深推理,因此比 high 使用更多 reasoning tokens 是预期行为。但“更多”不是固定倍数,也不代表所有额外 Token 都有效。要判断消耗是否合理,需要把一次任务拆成输入、缓存输入、推理、可见输出和工具轨迹分别分析。

先看清 Token 的组成

一次模型响应的 usage 通常包含 input_tokens、output_tokens 和 total_tokens,并提供输入缓存与 reasoning tokens 等明细。reasoning tokens 属于输出侧消耗,但不会全部以可见文本呈现。因此,界面上只有几段简短结论,也可能对应大量输出 Token。

在代理式编程中,“一次任务”往往包含多次模型响应。模型先读取需求并调用搜索工具,工具结果作为新输入返回,模型继续调用文件读取、编辑、测试,再根据结果进行下一轮推理。最终是所有轮次之和,而非最后一条回答的 usage。

组成常见来源增长原因
输入 Token提示、历史消息、代码、日志、工具结果上下文越来越长或重复传入
缓存输入与前一轮相同的稳定前缀长会话反复复用代码与说明
Reasoning Token模型解决问题的内部推理xhigh、更高复杂度与证据冲突
可见输出说明、补丁、代码、总结要求过度详细或生成大文件
工具成本搜索、计算机操作等内置工具调用次数增加或单独计费

xhigh 会直接提高推理投入

GPT-5.3-Codex 支持 low、medium、high 和 xhigh。reasoning effort 是控制推理深度的主要信号,xhigh 面向最困难的代理式编程任务。它可能让模型探索更多假设、检查更多依赖、在工具返回后重新评估计划,并在结束前进行更全面验证。

这些行为对并发缺陷、跨系统迁移和复杂架构修改有价值,但对改文案、补简单测试或按明确模式批量编辑,额外推理很难提高成功率。若所有任务都固定使用 xhigh,大量 Token 很可能来自任务难度与档位不匹配。

还要注意 effort 不是硬预算。相同 xhigh 配置面对不同任务,推理量可以差异很大。模型认为问题简单时可能快速完成;遇到模糊需求、失败测试或矛盾证据时,则可能持续投入。

工具循环会放大总消耗

编程代理不是只回答一次。每次搜索、读取文件、运行测试或调用外部工具后,模型都要接收结果并决定下一步。xhigh 可能更愿意验证假设和检查边界,因此工具轮次也可能增加。

工具调用本身返回的内容会成为后续输入。一次打印数千行构建日志,后面的每轮都可能携带相关历史;读取整个大型文件而只需要一个函数,也会扩大上下文。即使 reasoning tokens 没有成倍增长,重复输入也能让总 Token 快速上升。

应区分有效循环和无效循环。有效循环会逐步缩小问题、产生新证据并推进验收;无效循环表现为重复搜索相同关键词、反复读取未变化文件、无修改地重跑同一命令,或在多个方案之间来回切换。

长上下文并不等于有效上下文

GPT-5.3-Codex 支持较大的上下文窗口,但容量大只表示能容纳更多信息,不表示应该把整个仓库和完整日志一次性塞入。低相关信息会增加输入成本,也可能让模型花更多推理来筛选信号。

会话持续越久,历史计划、过期错误、旧补丁和重复文件越容易堆积。若代理每轮都发送完整历史,而没有使用稳定的会话状态、压缩或摘要,输入 Token 会随着轮数增长。一个小幅的每轮增长,在几十轮后会变成主要成本。

有效上下文应保留目标、约束、已验证事实、当前差异和仍未解决的问题;可以移除无关日志、已否定方案的冗长讨论和重复文件内容。压缩的重点是保存决策状态,不是只追求字数少。

缓存命中决定重复输入的实际价格

长会话中稳定前缀可能获得缓存输入计量,从而降低重复内容的成本。但缓存不是自动解决所有问题。系统提示、工具定义或早期消息发生变化,可能破坏可复用前缀;在不同请求间重排内容,也会降低命中。

评估时应同时记录 input_tokens 和 cached_tokens,而不是只看输入总量。两个任务输入规模相近,一个具有高缓存命中,另一个每轮重新计费,实际成本会明显不同。

不要为了缓存保留大量无关历史。缓存输入虽然通常更便宜,仍然会占用上下文并影响模型处理。最佳做法是让稳定且必要的内容位于可复用前缀,把频繁变化的信息放在后部。

max_output_tokens 不是费用预测

max_output_tokens 是一次响应可生成 Token 的上限,并同时包含可见输出与 reasoning tokens。把它设得很大,只是给模型留出完成复杂任务的空间,不代表每次都会消耗到上限。

但上限过小也会产生反效果。xhigh 可能在推理阶段使用较多空间,导致最终答案或工具调用被截断,响应状态变为 incomplete。用户随后重试,累计成本可能高于一次提供合理空间的请求。

应根据停止原因调节上限。如果多次接近上限且任务确实需要深推理,可以增加空间;如果任务被过度分析,应降低 effort 或缩小任务范围,而不是一味扩大上限。

提示词会诱发不必要的工作

“全面检查所有问题”“不要停,直到完美”“穷尽所有方案”等指令会鼓励模型扩大搜索和验证范围。与 xhigh 叠加后,模型可能把一个局部修复扩展为仓库级审计。

更有效的提示应定义目标、非目标、允许修改的路径、必须运行的检查和停止条件。例如明确“只修复该复现用例,不重构无关模块;指定测试通过后停止”,能减少无目的探索。

也不要同时要求极短延迟、最高推理、全面审计和最低成本。这些目标互相冲突。应说明优先级,让模型知道在质量、范围、速度和预算之间如何取舍。

如何判断 Token 是否花得值得

先判断任务是否达到验收标准,再比较成本。xhigh 比 high 多用 Token,但如果显著提高首次通过率、减少严重缺陷和人工返工,可能仍然更经济。反之,消耗增加而成功率不变,就是明显的边际递减。

应使用“每个成功任务成本”作为核心指标:把所有尝试、失败、重试和工具费用相加,再除以通过验收的任务数。单次调用便宜但需要多次返工,不是真正低成本。

还应观察尾部数据。有些 xhigh 任务大多数消耗正常,少数运行却进入长时间探索并产生极大。中位数看不出这种风险,需要同时记录较高分位数、最大值和异常轨迹。

一套拆账诊断流程

  1. 保存每次响应的 usage,分别汇总输入、缓存输入、输出和 reasoning tokens。
  2. 按工具轮次切分任务,找出 Token 开始快速增长的位置。
  3. 检查是否重复发送大文件、构建日志、图片结果或已过期的会话历史。
  4. 统计搜索、读取、编辑与测试调用次数,标记没有产生新证据的重复操作。
  5. 检查响应是否因输出上限、上下文上限、超时或工具错误而未完成。
  6. 用完全相同的任务和环境运行 high 对照,比较成功率而非只比较 Token。
  7. 确认额外消耗是否减少人工介入、返工或高风险遗漏。

降低消耗的优先顺序

第一步是缩小任务边界。把大型目标拆成具有独立验收的批次,让模型每次只保留当前需要的上下文。第二步是限制工具输出,例如只返回错误附近行、测试摘要和相关文件片段。

第三步是为代理设置明确停止条件与工具调用上限。达到验收后结束,连续出现相同失败时暂停并报告,而不是无限重试。API 提供的工具调用数量限制可以作为硬保护,但阈值应允许正常任务完成。

第四步才是降低 effort。日常实现、机械迁移和快速验证可以从 high 开始;只有根因未知、跨模块约束复杂或错误代价高的阶段使用 xhigh。按阶段路由通常比全程最高档更有效。

最后,优化缓存与会话管理。保持稳定提示前缀,复用前一响应的状态,定期压缩已完成阶段,并坚控缓存命中。优化后重新运行真实任务集,确认成本下降没有损害质量。

常见误判

可见回答很短却消耗很高,不一定是计费错误,因为 reasoning tokens 也属于输出。总 Token 很高也不一定全部来自推理,可能是工具结果在多轮中重复进入输入。

xhigh 比 high 昂贵并不证明 xhigh 配置错误,它原本就是更深推理档。问题在于任务是否需要这种投入。也不能只比较两次单独运行,代理路径的随机差异可能比档位差异更大。

大上下文窗口不是免费存储。能容纳信息与应该重复处理信息是两回事。把整个仓库持续放入上下文,既增加费用,也可能降低信号密度。

结论

GPT-5.3-Codex 在 xhigh 下产生大量 Token,通常由更深推理、更多工具循环、增长的多轮输入和较低缓存效率共同造成。max_output_tokens 同时约束推理和可见输出,但它只是上限;真正的原因应从 usage 明细与工具轨迹中定位。

最有效的优化顺序是先明确范围与停止条件,减少无关上下文和冗长工具结果,再修复重复循环与缓存问题,最后按任务难度选择 high 或 xhigh。只要额外 Token 能稳定提高验收通过率、降低返工和风险,它就是有效投入;否则应通过真实对照实验将该阶段降档。

相关文章

精彩推荐