同一个 GPT-5.6 Luna,面对同一批 30 道 SWE-bench Lite 题目,在 Claude Code 里完成了 55.6% 的尝试,在 Pi 里完成了 53.3%。两个结果的置信区间大幅重叠,平均账单却分别是 0.152 美元和 0.030 美元——前者是后者的 5.09 倍。
9 月 16 日发布的 HarnessTax 把这个常被藏在产品名后面的变量单独拿了出来:开发者调用的并不只是一个模型,而是“模型 + 系统提示词 + 工具定义 + 上下文管理 + 执行循环”组成的系统。同一模型换一个编码 Agent 外壳,能力未必明显变化,成本曲线却可能完全不同。
这项实验没有证明 Pi 普遍优于 Claude Code 或 Codex CLI。它给出的更实用结论是:采购和评测编码 Agent 时,只比较模型名,会漏掉一项足以改变单位经济性的变量。
固定模型,故意保留外壳差异
研究者选择了七个模型,分别装进 Claude Code、Codex CLI 和开源外壳 Pi,形成 21 组“模型—外壳”组合。每组在 SWE-bench Lite 和 Terminal-Bench 2.0 中各抽取同样的 30 道题,每题运行三次,也就是每个组合、每套基准各有 90 次尝试。
实验从各外壳的原生配置出发,选择各自定义的高推理强度,并把单次运行上限设为 100 个 Agent turn。SWE-bench Lite 的容器全部断网,Claude Code 与 Codex 的默认联网工具也被关闭;结果由两套基准的官方评测器判定。研究者先对同一道题的三次结果求平均,再对 30 道题求总体均值,并按题目重采样 1 万次估计 95% 置信区间。
这里“固定”的是模型、题目和计价表,不是外壳发送给模型的完整请求。工具、提示词、上下文压缩和执行循环正是要被测量的对象。成本统一按 2026 年 9 月 1 日的直连 API 价格复算,同一模型在三个外壳中使用同一价格,因此结果适合比较推理消耗,不等于用户实际支付的订阅费。
五倍账单来自更多轮次,也来自每一轮更重的上下文
五倍差距出现在 SWE-bench Lite 的 GPT-5.6 Luna 组合。公开数据中,Claude Code 每次尝试平均记录 92.4 个外壳定义的步骤、约 450.8 万个供应商报告的输入与输出 Token;Pi 分别是 27.1 步和 66.6 万 Token。两者成功率只差 2.3 个百分点,成功率区间彼此重叠。
这不是唯一一种成本路径。Claude Fable 5 在 Claude Code 和 Pi 中每次尝试都约为 15 个步骤,成功率分别为 97.8% 和 96.7%,但平均成本为 1.329 美元和 0.666 美元。步骤几乎一样,报告的 Token 总量却是 62.9 万对 17.6 万。外壳定义的“一个 turn”并不是统一计量单位,每轮携带多少指令、工具声明和历史上下文同样重要。
研究对首次主模型调用的测量解释了这条路径从哪里开始。跨七个模型平均,Pi 的首轮上下文约 1972 个 Token,Codex 约 1.13 万,Claude Code 约 2.70 万;三者首轮声明的工具数量平均为 4 个、7.4 个和 23 个。Pi 的官方说明也确认,其默认工具只有 read、write、edit 和 bash。
更大的首轮上下文与更高总成本同时出现,并不等于它独自造成了全部价差。缓存命中、后续输出长度、压缩策略和失败后继续尝试都会改变账单。HarnessTax 没有把总差额逐项做因果分解,它证明的是端到端消耗存在稳定差异。此前 Portkey 的一次窄测 已在一个简单任务中观察到约 2600 对 2.7 万首轮输入 Token,但没有测量任务正确率;HarnessTax 的增量,是把消耗和官方判分放进同一组对照。
正确率的差别比账单更难下结论
在 SWE-bench Lite 上,Claude Code 跨共同模型的成本几何平均值约为 Pi 的 2.0 倍、Codex 的 1.6 倍;在 Terminal-Bench 2.0 上约为 Pi 的 1.5 倍。相对之下,三个外壳带来的平均成功率变化在前一套基准内落在正负 2 个百分点,在后一套基准内约为正负 5 个百分点。
这并不表示外壳永远不影响能力。不同系统会让模型看到不同工具和指令,也会在失败时采取不同循环。研究甚至观察到,在六个 Anthropic 或 OpenAI 模型、两套基准组成的 12 次比较中,有九次是非原厂外壳拿到最高的表面成功率。不过“最高观测值”不等于差异已经坐实:30 道题下,多数组合的成功率置信区间仍然交叠;Terminal-Bench 的配对表也明确把结果标为描述性估计,没有做确认性检验。
因此,文章标题里的“五倍”应读成一个边界案例:它来自一款模型、一套基准和三种特定版本外壳之间的平均单次成本,不是所有编码任务都要缴纳的固定税率。
30 道题足以暴露成本问题,不足以替代内部试点
样本规模决定了这项研究最适合回答什么。SWE-bench Lite 有 300 道真实 GitHub 缺陷修复题,HarnessTax 抽取了其中 30 道;Terminal-Bench 2.0 有 89 道经过人工审核的终端任务,实验同样只取 30 道。两套都是公开基准,作者也承认模型可能在训练阶段接触过相关材料。
实验还把所有组合放在“高强度、最多 100 turn”的压力设置中,而日常开发常有人工追问、权限确认、跨会话记忆和企业内部工具。安全策略、延迟、订阅套餐、IDE 体验与团队治理都没有被这张成本—成功率图覆盖。外壳版本一旦更新,系统提示词和工具面也会随之变化。
对团队而言,下一步不是根据这张图统一换掉外壳,而是把评测单位从“模型”改成“模型—外壳组合”。从真实私有任务中抽样,重复运行,记录每次成功、总成本、耗时和人工接管,再比较“每个成功任务的成本”。如果只看平均单次调用价格,便宜但频繁失败的组合会被高估;如果只看成功率,HarnessTax 揭示的成本差又会被抹掉。
这项研究最值得复述的变化,不是 Pi 赢了谁,而是模型榜单不再足以代表开发者买到的系统。下一项真正有决定力的证据,将来自会持续变化的私有代码库:当任务没有进入公开训练语料、开发者会中途介入、工作跨越多个会话时,这笔“外壳税”还剩多少。

