研究发现复杂 harness 让编码智能体更贵但并未更强
Fancy harnesses make coding agents more expensive but not better, study finds
Liu 和 Han 的研究把 Qwen3.6、Qwen3.8、Deepseek-V4-Flash、GLM-5.3-Flash、HY4-Preview 等模型分别跑在 Claude Code。
研究用多次重跑量化噪声,说明换 harness 带来的差异与重跑同一配置相当,而成本差异可达三倍。
早期的比较其实是在测量噪声
作者指出,以往研究报告称不同 harness 之间存在超过 20 分的差距,但这些数字几乎都来自单次运行。同一配置的纯重跑在 SWE-bench Verified 上就已经有最多 6 分的波动。例如,Zhipu AI 宣称其自家 harness 领先 Claude Code 2.4 分,而这一差距完全落在该噪声范围内。harness 接入基准测试的方式也常常各不相同,使比较更加不可靠。
Liu 和 Han 用三个 harness 的发布版本测试了五个模型: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 模型几乎从不这样做。研究人员丢弃了这些结果,并且不声称任何厂商在测试数据上训练过,但这一模式足够明显,因此他们切断了所有剩余运行的网络访问。
更换 harness 对结果的影响与重跑差不多
在包含 447 个任务的更大池子上,最重和最轻的 harness——Claude Code 与 mini-SWE-agent——对两个被测模型而言差距都不到 2 分。在 5 分区间内,它们在统计上等价。

研究人员原本预计 harness 的影响在 45 个最难任务上最大。结果,不同 harness 在每个模型上相差 2 到 5 个已解决任务,而同一配置的简单重跑就会使计数变化最多 3 个。有时 mini-SWE-agent 领先,有时 Claude Code 领先。
翻转率也说明了同样的问题。在两次重跑之间,中位结果在 13% 的任务上发生变化。在两个不同 harness 之间,同样是 13%。更换模型则将该比例推高到 22%。某个 harness 在哪些任务上获胜会逐次运行变化,如同抛硬币。作者写道,harness 差距的表现就像“对同一噪声的重新抽样”。

这些较小的样本量也限制了任何比较能检测出的差异。在 45 个任务下,即使 13 分的差距也只有一半概率能显现。在 447 个任务下,约 5 分的差距才能被可靠检测到。Zhipu 声称的 2.4 分优势低于这两个阈值,许多其他宣传的改进也是如此。
所有 harness 表现相同,唯独 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 中运行。作者总结道,一个 harness 换来的是“更少的任务失败方式,以及一份账单,而非通过率”。他们建议在每次 harness 对比时,同时发布相同设置的复跑结果。这是判断测得的差异中有多少只是噪声的唯一方法。数据和分析脚本可在 GitHub 上获取。
在其他研究中,harness 中投入更多精力也很少能带来回报。在一项研究中,一个简单的 Markdown 文件胜过了面向 AI 编码代理的复杂技能系统。早前的一项研究已经表明,框架的选择可能使同一模型的成本几乎增至三倍。因此,harness 设计受到了大量关注。Nvidia 最近通过更好的代理引导,将其编码代理的 token 成本削减了近一半。
来源:The Decoder · the-decoder.com