研究显示复杂编码 Agent 框架更贵但不提升通过率
Fancy harnesses make coding agents more expensive but not better, study finds
Liu 与 Han 的研究用 5 个模型、3 种 harness(Claude Code、OpenCode、mini-SWE-agent)在 SWE-bench Verified 的 45 个最难任务和 447 个任务池上测试,发现换 harness 引起的任务级结果翻转(13%)与单纯重复运行(13%)相当,通过率差异多在测量噪声内,而 token 消耗可差两到三倍。
此前的对比测的是噪声
作者指出,此前研究报告的测试框架之间的差距超过 20 分,但这些数字几乎总是来自单次运行。同一设置的纯重跑在 SWE-bench Verified 上的结果已经会波动多达 6 分。例如,智谱 AI 宣称其自有测试框架比 Claude Code 领先 2.4 分,而这一差距完全落在了该噪声范围之内。此外,各测试框架与基准的接入方式往往也不同,使对比的可信度更低。
Liu 和 Han 用三个已发布版本的测试框架运行了五个模型:Claude Code、OpenCode 和 mini-SWE-agent。mini-SWE-agent 只给模型提供一个 Bash 工具,并跳过上下文管理。Claude Code 和 OpenCode 则提供专门的文件和搜索工具、冗长的系统提示词以及自动历史压缩。
测试模型为 Qwen3.6、Qwen3.8、Deepseek-V4-Flash、GLM-5.3-Flash 和 HY4-Preview。Claude Opus 5 仅作为参考在 Claude Code 中运行。测试使用了 SWE-bench Verified 中最难的 45 个任务,外加一个包含另外 447 个任务的题库。有几种设置运行了两次以测量噪声。
所有运行均在离线环境下进行。在早期可访问网络的测试中,Deepseek 和 Qwen 模型的尝试有 71% 直接从 GitHub 拉取了正确修复,而不是自己解决问题。Claude 模型几乎从不这么做。研究人员丢弃了这些结果,也不声称任何厂商在测试数据上训练过模型,但这一模式足够明显,以至于他们对后续所有运行都切断了网络访问。
更换测试框架对结果的影响与重跑差不多
在 447 个任务的较大题库上,最重和最轻的两个测试框架 Claude Code 与 mini-SWE-agent,对两个受测模型的差距都在 2 分以内。在 5 分区间内,它们在统计上等效。

研究人员原本预期在 45 个最难题目上测试框架的影响最大。然而,每个模型在不同框架下解决的题目数仅相差 2 到 5 题,而同一设置的简单重跑就会使这一数字偏移多达 3 题。有时是 mini-SWE-agent 领先,有时是 Claude Code。
翻转率也说明了同样的情况。两次重跑之间,13% 的任务的中位结果会改变。两个不同测试框架之间,同样是 13%。更换模型则会推高到 22%。某个测试框架在哪些任务上胜出每次运行都在变,如同掷硬币。作者写道,测试框架间的差距表现得就像“同一噪声的重新抽取”。

这些小样本也限制了任何对比所能检测到的差异。在 45 个任务上,即使 13 分的差距也只有一半的概率能显现出来。在 447 个任务上,约 5 分的差距才能被可靠地检测到。智谱宣称的 2.4 分优势低于这两个阈值,许多其他宣称的改进也是如此。
所有测试框架表现相同,只有 OpenCode 落后
唯一可测量的测试框架效应是 OpenCode 存在持续的劣势。在大型任务池上,它比另外两个最多落后九个百分点。这一差距约有一半可追溯到输出限制。当模型在推理过程中某一步超出该限制时,Claude Code 会提示它继续,而 OpenCode 则让该步骤就此结束,这次尝试通常以失败告终。
给 OpenCode 添加 Claude Code 风格的继续提示并没有帮助,因为同一个任务在重试时很少触发同样的溢出。至于剩下的差距,作者没有解释,只有一个观察结果:在 OpenCode 下,模型停止工作的时间要早得多。对于本地运行的模型,OpenCode 的时间限制也比 Claude Code 紧得多,作者将此标记为一个未受控变量。
mini-SWE-agent 会遇到上下文窗口限制,因为它缺乏上下文管理,主要发生在其他测试框架也失败的任务上。OpenCode 的搜索工具在首次使用时会尝试下载一个二进制文件,离线时就会出错。

系统提示词和工具描述决定账单
在相同模型、相同任务和相同价格表下,同一任务的成本可能因测试框架不同而相差最多三倍。工具输出几乎解释不了这一差距。三个测试框架每次调用返回的文本量大致相似。
真正的差异来自系统提示词和工具描述。它们在每一步都会重新发送,Claude Code 约为 16,600 个 token,OpenCode 约为 7,000 个,mini-SWE-agent 则不到 1,000 个。据研究人员逆向工程所得,Claude Code 还会把模型的推理输出保留在对话历史中。

在首次调用之后,所有测试框架的上下文都以相近的速度增长。系统提示词的大小决定了基线成本,而步数则将其成倍放大。哪个因素占主导取决于模型:使用 GLM-5.3-Flash 时,Claude Code 的成本几乎是 mini-SWE-agent 的两倍。使用 Deepseek-V4-Flash 时,mini-SWE-agent 需要额外很多步,结果两者打成平手。缓存 token 的较低价格会缩小差距,但不改变排名。

没有主场优势,围绕思考的未解之谜
Deepseek 自家的测试框架配合自家模型的表现并不比其他框架好,但成本最高。即使研究人员从 Claude Code 中移除工具,Claude Opus 5 也给出了完全相同的结果。一年前的版本以不到一半的成本解决了数量相近的任务,因为当时 Extended Thinking 默认并未开启。
思考是唯一一个测试框架的选择确实改变了结果的情形。在没有思考的情况下,使用 Qwen3.6 的 mini-SWE-agent 下降十一个百分点,而 Claude Code 和 OpenCode 则保持在噪声范围内。在不开启思考的情况下,HY4-Preview 在 Claude Code 中同样下降十一个百分点。智能体对推理的依赖程度似乎与特定的模型-框架组合有关。作者承认他们的测试网格太小,无法解释其中原因。
该研究主要依赖一个基准测试。在 Terminal-Bench 2.1 上的少量交叉验证也显示出同样的模式。闭源顶级模型 Opus 5 仅在 Claude Code 中运行。作者总结道,测试框架换来的是“更少输掉任务和账单的方式,而不是更高的通过率”。他们建议在每次框架对比中同时发布相同配置的重跑结果。这是判断测量差异中有多少纯属噪声的唯一方法。数据和分析脚本可在 GitHub 上获取。
在其他研究中,在测试框架上投入更多精力也很少有回报。其中一项研究表明,一个 简单的 Markdown 文件在 AI 编程智能体上胜过了复杂的技能系统。更早的一项研究已经表明,框架的选择可使同一模型的成本近乎增加两倍。因此,测试框架的设计备受关注。Nvidia 最近通过更好的智能体引导,将其编程智能体的 token 成本削减了近一半。
来源: The Decoder · the-decoder.com