分数高,是模型强还是 harness 强?
本课一问:榜单上两个 agent 的分数差不多,是两个模型差不多吗?一个分数高,是模型强,还是它用的 harness 强?
这一课先不碰:能力随时间增长多快(岔路 B1);为什么公认的「标准 harness」是一个极简 agent(岔路 B2);失败在哪一步(第 3 课)。
从已有出发
为什么这一课换例子。要看「换 harness、不换模型」和「换模型、不换 harness」,需要多个模型在多个 harness 上的成绩;本课项目只有一个本机模型,所以这一课读公开榜单。但本课项目自己已经给过一个信号:A0 岔路 B1 里,同一个 Qwen3-8B,harness 从 v1 换成 v2(主要是加了一条完成规则),贯穿任务 10 种配置的通过从 1 次变成 5 次。上一课 T6 的 15 次 TB 运行里,还有 4 次一个工具都没调就被 harness 的输出上限停下。harness 不是透明的管道,它本身就在分数里。
先自己设计:直接比榜单
最省事的做法:打开排行榜,谁的分数高,谁的模型强。
- ① 朴素方案
- ② 它在哪失败
- ③ 改进方案
| 榜单 | harness | 模型(effort) | 通过率 | 每 trial 成本 |
|---|---|---|---|---|
| TB 4.0 官方榜(更新于 2026-09-21) | Codex | GPT-6 Astra(max) | 58.18% ± 2.79 | $9.90 |
| 同上 | Claude Code | Fable 5.1(max) | 57.88% ± 3.76 | $18.92 |
两行的差是 0.30 个点,远小于各自的 95% 置信半宽。按这张表,两个模型「一样强」。
| 榜单 | harness | 模型(effort) | 通过率 | 每 trial 成本 |
|---|---|---|---|---|
| Vals(更新于 9/22/2026,第三方独立) | Terminus 2 | GPT-6 Astra(max) | 57.07% | $8.21 |
| 同上 | Terminus 2 | Fable 5.1(max) | 49.49%(只算指定模型 42.42%) | $24.54 |
同一把尺子下,两者差 7.6 个点。Vals 还注明:Fable 5.1 这一行有 28 / 198 次尝试被 provider 回退到了 Opus 5——只算真正由 Fable 5.1 完成的,是 42.42%。
改进一:同一个模型,换 harness
把两张榜里「同一个模型、同一个 effort 档」都出现的行连起来:一端是它在自家(或榜单指定)harness 上的成绩,一端是它在 Terminus 2 上的成绩。线越长,harness 在分数里的份量越大。
数据:tbench.ai 官方榜(更新于 2026-09-21)与 vals.ai/benchmarks/terminal-bench-4(更新于 9/22/2026),均于 2026-09-27 抓取、按页面原数转录。可信度:官方榜 = 各家自带 harness、每行自跑性质未核实;Vals = 第三方独立、统一 harness。口径不同:官方榜每任务 5 次,Vals 为 3 轮平均;两边的沙箱与计价方式也不同。和本课在本机跑的 TB 2.0 不是同一个版本,不能直接比。
试三件事:① 先在下拉框里猜一个「换到 Terminus 2 后掉得最多」的模型,再点「揭示连线」;② 看表里唯一一条绿线:GPT-5.6 Terra 在 Terminus 2 上反而高了 +4.7 个点——harness 不总是帮自家模型;③ 切到线性轴,看成本那一维:同一个模型换 harness,每个 trial 的成本变成原来的 0.38 到 3.68 倍。
15 组配对里,换到 Terminus 2 后通过率变化 -21.8 到 +4.7 个点 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条两边口径不同:官方榜每任务 5 次,Vals 是 3 轮平均;沙箱与计价方式也不同;官方榜每行由谁跑页面没写。差距的方向与量级可以读,单个数字不要当精确值。降幅最大的 Fable 5 那一行,Vals 注明有 51 次 provider 回退。 出处Vals TB 4.0 页 + tbench.ai 官方榜(2026-09-27 抓取) ↗需联网 。降得最多、又没有回退问题的是 GLM-5.3:Claude Code 上 41.82%,Terminus 2 上 25.25%。
极小真数字:一组配对自己算一遍
改进二:要比模型,先统一 harness
Vals 的做法写在方法说明里:所有模型都用 Terminus 2,配置与上游实现相同;每个模型完整跑 3 轮取平均,没有部分分 证据等级 · 有理论动机 有数学或机制上的理由说明它可能有效,但没有证明它一定更好。最后是否采用,仍然要看实验。 本条统一 harness 的理由是控制变量:把 harness 固定成同一个、模型之外的一切尽量相同,差异才主要来自模型。它不证明 Terminus 2 是「对每个模型都公平」的 harness——上面 GPT-5.6 Terra 在 Terminus 2 上反而更高。 出处Vals TB 4.0 · Methodology(2026-09-27 抓取) ↗需联网 。SWE-bench 官方榜早就这么做了:「To make an apples-to-apples comparison of LMs easier, we evaluate all LMs using mini-SWE-agent in a minimal bash environment」。两把尺子都是极简的 agent——为什么是极简的,见岔路 B2。
统一了 harness 之后,还要问这个分数是谁测的。LLM 课 C14 岔路 B1 的三层可信度在这里一样适用:
| 层 | 本课用到的例子 | 能信到什么程度 |
|---|---|---|
| 第三方独立 | Vals 的 TB 4.0 复测(统一 Terminus 2,标出回退与拒答) | 最高;但它也有口径:它用 Daytona 沙箱、3 轮平均,Opus 5.5 有 30 / 198 次回退,回退记失败则从 61.62% 降到 53.54% |
| 官方榜 · harness 各异 | tbench.ai 的 TB 4.0 榜 | 任务、评分器是公开统一的;每行用的 harness 各不相同,由谁跑页面没写(本课标「自跑性质未核实」) |
| 纯自报 | Databricks 内部基准(私有代码库) | 没人能复现;只能按原文口径引用 |
数据:Databricks 博客《Benchmarking Coding Agents on Databricks’ Multi-Million Line Codebase》(2026-07-08)图 3 上印着的文字,2026-09-27 下载原图转录。厂商自报、私有代码库、不可复现;原文正文另说「quality remained the same」。只能按限定口径引用(大纲红线 1)。
按大纲红线 1 的限定口径:Databricks 内部基准(自报、不可复现)里,同模型同 effort 把原生 harness 换成 Pi,单任务成本降低 1.20–2.08 倍,通过率变化 -7 到 +3 个点 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条厂商自报、私有代码库、不可复现;原文正文写「quality remained the same」,并说明「The lesson here isn’t that one harness is always cheaper or that native harnesses are worse」。图中没有置信区间。 出处Databricks 博客(2026-07-08) ↗需联网 。它和 TB 4.0 的两张榜说的是同一件事:harness 同时改变分数和成本。
Vals 的 SWE-bench 页已经标为归档:「Since performance on this benchmark has saturated, we no longer run this benchmark on new model releases.」(更新于 9/1/2026),榜首 97%。SWE-bench 官方 Verified 榜共 180 条,最新一条的日期是 2026-02-26。饱和的尺子区分不出前沿模型的差异;引用时要换未饱和的集合,并写清版本。
官方页的原话是 Lite「designed to: Reduce evaluation costs while maintaining benchmark quality」等三条目的:降低评测成本、加快迭代、给研究团队更容易的入口。可以说「官方称 Lite 旨在降低评测成本」;「为教学设计」官方没有这么说。
Databricks 的对照是同模型同 effort:Opus 4.8 的原生 harness 是 Claude Code,GPT-5.5 的原生 harness 是 Codex;没有「Opus 4.8 在 Codex 上」这一组,所以不能说 Pi 在同一个模型上比 Codex 便宜。能说的只有上面那句限定口径的话。
证据三问
| 问 | 本课的回答 |
|---|---|
| ① 它解决什么问题? | 把分数里的两个变量拆开:同 harness 比模型,同模型比 harness |
| ② 为什么会这样? | 模型在 harness 里行动:工具、提示词、上下文管理、输出上限、重试,都在决定它能看到什么、能做什么 证据等级 · 有理论动机 有数学或机制上的理由说明它可能有效,但没有证明它一定更好。最后是否采用,仍然要看实验。 本条机制上的理由,前九章每一章都讲过一层;没有一个统一模型能预测换 harness 会差多少。 出处待补 |
| ③ 实验上呢? | 公开数据:同模型换 harness,15 组里变化 -21.8 到 +4.7 个点 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条官方榜(自跑性质未核实)对 Vals(第三方),口径不完全相同。 出处待补 ;本课项目:同模型 harness v1 → v2,1 → 5 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条单一 8B 本地模型、一个贯穿任务、每种配置 1 次;只说明方向。 出处A0 岔路 B1(项目实测) ↗ |
演进地图:你在这里
- 起点 跑一次,看成败最直觉的做法:一个任务、一次运行、一个布尔值解决了最省事:修好了就说「会修」,没修好就说「不会」。卡在同一套配置只换 seed:pd-v2-unlimited 的 s1 / s2 / s3 是 ✗ ✓ ✓;同为 seed 1、只多了一个没碰到的轮数上限的 pd-v2-cap20-s1 又是 ✓。只跑一次,结论取决于你碰上了哪一次。
- Anthropic《Demystifying evals for AI agents》· Harbor 的 -k 与 pass_at_k.py解决了同配置的 7 次运行过了 6 次:p̂ = 0.857,pass@3 = 99.7%,pass^3 = 63.0%;T6 的 3 次重复全过。卡在拿全体平均成功率套公式:TB 4.0 官方榜第一行(Codex + GPT-6 Astra,max)pass@1 为 58.18%,公式给 pass@5 = 98.7%,榜单实测 71.2%:每个任务的成功率不一样。而且重复再多次,也分不出分数里哪部分是 harness。
- Vals 统一用 Terminus 2 复测 TB 4.0 · SWE-bench 官方 bash-only 榜统一用 mini-SWE-agent解决了同一个模型换 harness 的差距摆上桌:Fable 5.1 在 Claude Code 上 57.88%、在 Terminus 2 上 49.49%;GLM-5.3 41.82% → 25.25%。卡在分数只告诉你成没成:本课 agent 在 TB 2.0 上 0 / 15,15 次失败各是各的样子,一个数看不出为什么。
- 第三步 读轨迹,给失败打带步号的标签Harbor 的 ATIF 轨迹 · Anthropic 工程博客的四类失败 · 本章写明的标签规则解决了15 次失败都落到了带步号的标签上:改完 / 跑完不回头查 7 次,撞上输出上限 4 次,明确声称完成 5 次、5 次没过。卡在标签分不清是 agent 错还是环境错:第一次 oracle 冒烟 0 / 5,原因是容器里的 DNS;arm64 探测里 qemu-startup 连参考解也拿 0 分(verifier 现装 curl 时 404)。
- Harbor v0.23.0:-a oracle 冒烟 → -a module:Class -k解决了参考解 5 / 5 通过、环境就绪之后,再跑自家 agent:5 个任务 × 3 次。卡在k = 3、单一 8B 本地模型、5 个任务、amd64 镜像靠 qemu 模拟:结论只在这个规模成立。(→ 课程终点:回到 A0,哪些任务值得用 agent?)
数字口径:本课项目 T6(Harbor 0.23.0 + Terminal-Bench 2.0,本机 Qwen3-8B-MLX-4bit,录制于 2026-09-26)与 A1 的同配置运行;TB 4.0 官方榜(更新于 2026-09-21)与 Vals(更新于 9/22/2026),均于 2026-09-27 抓取;由 a09-eval.json 与 a09-public-2026-09-27.json 构建时现算。
一句话
先停在这里:记住一组数——同一个 GLM-5.3,41.82% 与 25.25%。
再深一层:两条岔路。B1:能力在按什么速度增长——METR 把成功率换成「能做多长的活」;B2:评测标准为什么是一个极简 agent——mini-SWE-agent 与 Terminus 2。
下一个缺口
分数告诉你成没成,为什么失败要看什么? → 第 3 课:它失败了,失败在哪一步、属于哪一类?
统一了 harness、重复了 k 次,本课的 agent 在 TB 2.0 上是 0 / 15。这个 0 里有 15 次各不相同的失败——哪一次是模型不会,哪一次是 harness 先撞了墙?
你可能会问
- 「本课的 agent 能和这些榜单比吗?」 不能。本课在本机跑的是 Terminal-Bench 2.0(89 个任务,第 4 课),榜单是 4.0(66 个全新任务,需要 GPU 沙箱);模型、硬件、k 都不同。
- 「那厂商报自家 harness 的分数有什么用?」 它回答的是另一个问题:「这个产品整体(模型 + harness)好不好用」。只是别把它当成模型的分数。
- 「effort 档也会变分数吗?」 会。官方榜上同一个 Codex + GPT-6 Astra,从 low 到 max,通过率 50.61% 到 58.18%——所以本课只拿 effort 相同的行配对。