同一個模型換 harness,成功率差不多,成本可以差到五倍

https://harnesstax.github.io/

Claude Fable 5 在 SWE-bench Lite 上跑一輪,掛 Claude Code 的成功率是 97.8%,掛 Pi 是 96.7%,差 1.1 個百分點。但成本是 $1.33 對 $0.67,整整兩倍。

同一顆模型、同一個 benchmark、同一批隨機抽出來的任務,多付的那一倍,換到的大概就是那一趴。UC Berkeley 與 Arena 的研究團隊(Pan 等人,2026)把這件事叫做 harness tax:接受一個 coding agent 預設附帶的 harness,沒拿去跟別的比,於是不知不覺多付的錢。他們把問題問得很直白:換一個 harness,同一顆模型能不能解掉更多任務,或者把成本壓下來?

這篇要看的是配對。同一顆模型換上不同 harness,成本跟成功率各會怎麼動。

21 組配對,兩個 benchmark,每一點跑三次

研究比了 21 組 model–harness,涵蓋七顆模型、三個 harness:Claude Code、Codex CLI、Pi。Benchmark 用 SWE-bench Lite 跟 Terminal-Bench 2.0,每個 benchmark 隨機抽 30 個任務,每一組配對在每個任務上重複跑三次,每次嘗試上限 100 個 agent turns,effort 都採各 harness 自己的 high 設定。Turn 數與 effort 的定義,三個 harness 各算各的。

成本用同一份 direct-API 價目表算,日期是 2026 年 9 月 1 日,同一顆模型跨 harness 用一樣的價。任務算不算成功,交給兩個 benchmark 各自的官方 evaluator 判定。統計上先對每個任務的三次嘗試平均,再對 30 個任務平均,95% 信賴區間用 10,000 次 bootstrap 重抽。

控制條件也交代得細。SWE-bench Lite 把任務 container 的對外網路封掉,Claude Code 跟 Codex 的預設 web tools 關掉,並在 API 層拒絕 hosted tool declarations。Pi 那邊另外加了兩個 package,用來設定 subscription key 跟控制 agent turns。Kimi K3 走 Fireworks AI,三個 harness 都用這顆模型單一的 native thinking mode。

成功率的差別,落在誤差範圍裡

最主要的發現是這個:harness 對成功率的影響小,對成本的影響大。

平均來說,換 harness 對成功率的影響,在 SWE-bench Lite 上大約在正負 2% 以內,在 Terminal-Bench 2.0 上大約正負 5% 以內。成本不是這個量級。同一顆模型可以在成功率差不多的情況下,成本差到 5 倍。用幾何平均算跨模型的成本比,Claude Code 在 SWE-bench Lite 上大約是 Pi 的 2.0 倍、Codex 的 1.6 倍;到了 Terminal-Bench 2.0,大約是 Pi 的 1.5 倍。

5 倍這個說法不是拿單一案例硬撐出來的。研究自己公開的圖表資料裡,GPT-5.6 Luna 三個 harness 之間,最貴跟最便宜差了大約 5.09 倍。

錢多半花在第一個呼叫

要問成本差從哪裡來,研究去看每次嘗試的 turns、第一次主要模型呼叫的 context,還有完成的嘗試各自花了多少。

先看 turns。Fable 5 在 SWE-bench Lite 上,Pi 跟 Claude Code 平均每次嘗試是 15.4 跟 15.3 turns,幾乎一樣。但 Claude Code 貴了差不多兩倍,成功率只多 1.1%。多繞幾圈解釋不了這個差距,每一圈本身的成本才是重點。Turn 的定義三個 harness 不太一樣,這個數字要照各家自己的定義讀。

再看第一個呼叫。七顆模型平均下來,Claude Code 的 mean initial context 超過 Pi 的 10 倍,來源是更長的 instructions 跟更大的 tool schemas。同一批圖表的均值長這樣:Pi 大約 1,972 tokens、4 個工具;Codex 大約 11,308 tokens;Claude Code 大約 27,011 tokens、23 個工具。第一輪就先付一筆,後面還有 caching、生成 token 跟之後的呼叫繼續疊。

四把工具也能站上 Pareto

再來是簡單的 harness。研究說它也可以很有競爭力。

Pi 是個 minimal、open-source 的 harness,只給四個工具:read、write、edit、bash,卻在兩個 benchmark 上都站上 Pareto frontier。同一批圖上,Codex 也常在成本較低的位置拿到跟 Claude Code 相近的成功率。開源模型這邊,Kimi K3 在 SWE-bench Lite 上靠近 Pareto、接近 GPT-5.6 Sol,在 Terminal-Bench 2.0 上則略低於 Pareto。

研究把意義講得滿直接:想做 SOTA harness 的研究,不一定得拿到別人的專有 harness,也不一定要跟模型一起 co-train,用現成的模型就能做實驗。

自家 harness 沒有保證

最後一個發現比較刺:模型掛在自家 harness 上,不保證是最好的配對。

OpenAI 就講過 GPT-5-Codex 是為 Codex 裡的軟體工程最佳化的。但研究數了六顆 Anthropic 與 OpenAI 的模型、乘上兩個 benchmark,一共十二次比較,其中九次是替代 harness 拿到該模型最高的觀測成功率。

例子有兩個。Sonnet 4.6 在 SWE-bench Lite 上,Codex 是 68.9%,Claude Code 是 66.7%,成本差不多。GPT-5.6 Sol 在 Terminal-Bench 2.0 上,Pi 是 83.3%、大約 $0.42;Codex 是 78.9%、大約 $0.76,等於用一半左右的成本拿到更高的成功率。

作者下的結論是:模型的能力是可攜的,換 harness 也帶得過去。真正該問的不是「誰家的」,而是這顆模型配上這個工作負載,哪個 harness 的成本跟成功率最平衡。

讀的時候要留的邊界

研究自己列的限制要一起看。結果只限於這兩個 open-source benchmark,而模型在訓練時可能看過它們。換到別的 benchmark 或別的工作負載,結果可能不一樣。

harness 功能多,在別的模型、別的負載,或者需要來回互動的設定裡,還是可能有用。harness 的複雜度該當成一個要靠實驗回答的取捨,多與少各有代價。

還有一件事要放對位置。這不是模型排行榜。GPT-5.6 Luna 在兩個 benchmark 上都是成本最低的,Claude Fable 5 在 SWE-bench Lite 上成功率最高,但這些模型在不同 harness 之間,沒有出現什麼明顯的表現差異。研究團隊說之後會公開 profiling traces,目前還沒看到釋出。

harness 是一個要選的東西,預設值不是答案

挑一個 coding agent,其實是同時在挑模型跟 harness,即使你心裡想的只有模型。當 harness 對成功率的影響落在前面那個區間、對成本卻可以差到 5 倍,預設值就不該是最後的答案。

研究團隊往後看的方向是:日常任務裡,coding agent 基本上就是接上模型的介面,負責管 context、開工具、把任務執行完。模型越強,今天這些鷹架可能越不需要。通用型 agent 該把成本效率跟可靠度放前面,因為很多任務並不需要那些花俏的加掛功能。真的碰到模型能力邊界的難題,例如科學發現,harness 提供結構化引導、幫忙評估候選、從回饋裡學,還是有它的價值。

作者也講明了,這些設定不該丟給使用者自己扛。在那之前,能自己先做的,是把同一顆模型在不同 harness 上的成本跟成功率擺在一起看,而不是接受預設值,然後在帳單上發現它。