一个任务烧掉 5 亿 token:GPT-5.6-Sol 失控复盘

GPT-5.6 发布之后,好多人都说 token 消耗巨快,还没怎么用,5 小时限额就刷完了。

恰好我最近也经历了一次任务失控、token 异常消耗,复盘后,总结出了以下几个方法:

  1. 非必要不开 Ultra 模式
  2. 卸载 superpowers、gstack 等重型 skill
  3. 给评审任务设置明确的终止条件

接下来,跟大家分享下这次任务失控的经历。

任务失控过程回顾

这个任务的背景是有个项目即将上线,希望在上线之前进行一次全面的审查,包含注册、登录、重置、计费、API 的数据面和控制面、部署流程、容灾机制等方面。

任务基本数据

为什么说这是一个失控的任务?看下 Codex 的统计数据就知道了:

指标数据
总耗时30 小时 22 分钟
实际耗时9 小时 13 分钟
并行开发 worktree3 个
子 agent 数36 次
三个开发分支提交65 个
累计消耗 token5 亿
最长单项完整评审5 轮
Task 15 设计及 RED 迭代至少 8 轮,仍未通过
初始全面审查发现24 项:7 Blocker、15 Major、2 Minor
发布计划终止进度Task 1–14 完成;Task 15 未实现;Task 16–20 未开始

这个任务经历了 2 次官方重置,额外使用了 1 次重置次数,仍然多次达到 5 小时限额的情况。在觉察到任务失控的迹象后,手动终止了任务。

补充一句,我开的是 Pro 20x 会员(200 美元/月),由此可见这个任务 token 消耗有多夸张。

任务复盘

虽然这个任务不算小,但是以 GPT-5.6-Sol 的能力,不应该出现失控。我和 Codex 针对该任务进行了详细的复盘,发现了 3 个原因。

原因一:GPT-5.6 模型特性

任务使用的模型是 GPT-5.6-Sol,推理等级是 Ultra。

1、GPT-5.6-Sol 写代码太严谨

在 Gert Labs 的 GBENCH one-shot coding 榜单中,相近得分下,Sol 的平均提交体积约为 Fable 5 的 2.1 倍。

体积差在哪?GPT-5.6 喜欢写防御性代码——给各种边界条件甚至不可能发生的情况写类型检查、层层包裹的错误处理、毫无必要的间接层等。

也许有人会问:代码写得严谨难道不是好事吗?

还真不一定。

举个例子,大家在工作中肯定都遇到过一种场景,就是在讨论一些事情的时候,总有一些“杠精”,各种假设,各种质疑,无限扩展。你说“杠精”说得对吗?也对;能照做吗?当然不能。

因为所有事情都需要考虑成本。

2、推理等级使用 Ultra

下面是官方对 Max 和 Ultra 的介绍:

模式官方定义适用场景
Max让一个 agent 用更多时间深入推理单个极难问题、复杂状态机、竞态、关键架构决策
Ultra最大推理,同时可以主动把任务委派给子 agent能清晰拆成多个独立部分的复杂任务

Ultra 相比 Max,思考预算并没增加,增加的是人头,官方发布页写它默认并行协调 4 个 agent。

GPT-5.6-Sol 叠加 Ultra 模式,直接开启“杠精”模式,还是多人的那种。

原因二:skill 内置的评审流程被多 agent 放大

这个原因有点反直觉——强大的 skill(superpowers 和 gstack)反而加速了失控。

失控主要发生在开发阶段,我的要求是这么写的:

好,现在基于三份设计,拆分三个分支(worktree),并行进入开发阶段,开发阶段采取开发-评审迭代循环方式,直至达成一致。开发过程使用 superpowers 和 gstack 相关 skills 进行。

先说这两个 skill 是什么。superpowers 是一整套强制性的开发框架,内置了 TDD、spec 合规检查、代码质量评审等环节,而且评审是循环的——发现问题 → 修复 → 再评审,直到通过。gstack 类似,包含 31 个 skill,覆盖架构评审、QA 评审等,同样内置了多层评审。

在普通模型上,这些约束能起到”矫枉”的作用。但 GPT-5.6-Sol + Ultra 模式下,Ultra 会同时启动多个 agent,每个 agent 都独立触发 skill 内置的评审流程。多个 agent 并行做对抗评审,越抠越细,”矫枉”直接变成了”过正”。

X 和 LINUX DO 上有大量用户反馈了同样的问题:GPT-5.6-Sol 下使用 superpowers,token 消耗速度异常快,卸载后立刻恢复正常。

原因三:提示词没有明确评审任务终止条件

在上面的任务要求中,我写了这么一句 “开发阶段采取开发-评审迭代循环方式,直至达成一致”——要求多个“杠精”达成一致,但没有给出明确的终止条件。

于是出现“评审棘轮”:每轮都能找到新的理论边缘情况,新问题只增加、不减少,最终从“上线前修复现有问题”滑向“证明系统在所有异常情况下都形式化正确”。

这个任务中,子任务 Task 15 对抗式开发-评审 8 轮,在一行功能代码都没写的情况下,先写出了 6000 行测试代码。如果不是手动终止,天知道最终会迭代多少轮、写多少测试代码。

所以,最终结论就是:

严谨的 GPT-5.6-Sol + Ultra 多 agent 模式 + skill 内置评审循环 + 无终止条件 = 任务失控 + token 消耗灾难。

开头的三个方法——关 Ultra、卸 skill、加终止条件——分别对应这三个原因。

最后

这次失控,归根结底是给模型加了太多东西——Ultra 模式、superpowers、gstack、开放式评审要求——每一个单独看都合理,叠在一起就是灾难。

模型能力到了 GPT-5.6-Sol 这个级别,很多活已经不需要”外行“(外部 skill、用户)来指导了。与其花时间约束模型怎么干活,不如把精力放在说清楚需求上。