换Harness后Claude对GPT从领先8分翻成落后30分

Finding the Right Fit: Model-Harness Interactions across Agent Tasks

Yixuan Li, Yiyun Zhou, Yao Long Teng, Fuchao Yang, Yanchen Deng, Zhiyi Lyu, Xuyu Dong, Feng Chen, Bo An

cs.AI, cs.SE

2026-10-01

4套Harness配5个模型共66组配置,Terminal-Bench 4上Claude对GPT从OpenHands领先7.94分翻成PI落后30.16分,原厂搭配也不稳居最优。

这篇在解决什么

上线一个 Agent 要同时选模型、选 harness。harness 是模型外面那一层:工具怎么暴露、上下文怎么裁、失败怎么回传、卡住了是重试还是停。现有排行榜通常只换模型、锁死脚手架,或只换脚手架、锁死模型,两者怎么咬合几乎没人交叉测过。

南洋理工大学用 OpenHands、DeepSeek Harness(DSH)、PI、openJiuwen 配 Claude Opus 5、GPT-6 Astra、GLM-5.3、Kimi K3、DeepSeek V4 Pro,在 TUA-Bench(120 题)、ALE-CLI(99 题)和 Terminal-Bench 4 的 63 题非 H100 子集上跑完,加上 Codex-GPT 与 Claude Code-Claude,共 66 组配置、6204 条计分轨迹。问题是:换 harness 后模型排名还在不在,好搭配换任务还在不在,厂商自己的 harness 是不是默认最优。

方法

改动压到最低:同一 OpenRouter 端点、钉死第一方供应商、关掉 fallback,一律请求 high reasoning effort,采样、压缩、重试和轮次上限跟各家默认走。唯一刻意改的是 OpenHands,自定义端点默认输出只有 16K,这里改成 1M 上下文、128K 输出。不加 skills、MCP、记忆或定制提示。

openJiuwen 是框架不是成品 coding agent,没有官方入口跑这三个基准。用公开 API(v0.1.18)拼了 7 个编码工具加原生循环和压缩,关掉 skills、记忆、规划和子 agent,所有模型和基准共用这一套。

计分按固定分母取均值,TUA 和 ALE 保留部分分,Terminal-Bench 是 0/1,三套不合成总分。每题只计最后一次有效跑,没结果记 0。成本是 OpenRouter 牌价下的 agent 模型 API 费用,含 harness 辅助调用、不含评测器。轨迹分析拿同一题、同一模型在不同 harness 下的最终计分跑做配对。

结果

模型排名会随 harness 翻转。

配置Terminal-Bench 4同设置对照
OpenHands · Claude57.14%(36/63)GPT 49.21%,Claude 领先 7.94 分
PI · Claude30.16%(19/63)GPT 60.32%,Claude 落后 30.16 分
PI · GPT60.32%,每题 $4.66DSH · GPT 52.38%,每题 $19.94

OpenHands 换成 PI,Claude 从 57.14% 掉到 30.16%,GPT 从 49.21% 升到 60.32%,差距挪了 38.09 个百分点。同一对模型、同一套题,排序可以反过来。

五个模型里四个,最优 harness 随基准换:Claude 从 Claude Code 换到 OpenHands,GPT 从 openJiuwen 换到 PI,GLM 和 DeepSeek 走 openJiuwen、OpenHands、DSH。只有 Kimi 钉在 openJiuwen,三套分别 64.39%、54.94%、28.57%,比次优高 5.61、6.91、11.11 分。相对各基准次优,更高/打平/更低的题数是 22/85/13、25/61/13、8/54/1;去掉三个最大正差距,均值优势还剩 3.11、3.88、6.35 分。

原厂配对站不稳。Claude Code 在 TUA、ALE 上比最强第三方高 3.50 和 1.14 分,Terminal-Bench 上比 OpenHands 低 7.94 分。Codex 从未给 GPT 拿到最高分,另两套高出 2.15 到 4.76 分。

花钱更多也不等于分更高。Terminal-Bench 4 上 GPT 用 PI 每题 $4.66 拿到 60.32%,DSH 每题 $19.94 只有 52.38%。同一设置里 PI-Claude 花 $20.28 只拿到 30.16%。openJiuwen 有 94%-99% 的输入 token 走缓存,其他是 49%-77%。

配对轨迹把差异钉在失败信号怎么送回来。192 个可行动失败事件里,180 个响应是模型自己起的,诊断或定向修补占 69%。OpenHands 的 stuck detector(连续相同失败动作就掐跑)结束了 55 次,48 次是 Kimi 反复发缺 content 参数的 edit。PI 的 shell 默认没有超时,34 次跑卡在永不返回的命令上,截止日期到了也没有失败信号。GPT 在 56%-67% 的 PI shell 调用里自己设超时,瘦脚手架合适;Kimi 经常发畸形工具调用,openJiuwen 把它拦下来再送回,三套都是它的最高分。

收尾是另一处瓶颈。openJiuwen 配 Kimi 在 Terminal-Bench 4 上 45 道失败题里,35 道以结案报告收场,且都声称每条要求已验证。retro-console-soc 要求像素级对齐:openJiuwen 用自身模型第 60 帧去对 RTL 第 40 帧,读到 0 mismatch 就报成功(reward 0.00);DSH 把缺陷修掉后才到 0(reward 1.00)。评分器对照隐藏参考帧,123/61440 个像素仍不对。没有一套 harness 在运行中把评分器标准暴露给 agent。

为什么重要

选型单位应是模型、harness、任务这三元组。单独看模型榜,会把翻转的排序当成能力差距。Codex 和 Claude Code 在这三套基准上并不稳居最优,多花钱也买不到稳定更高的分。GPT 会自己给 shell 设超时,PI 这种瘦脚手架就够用还更便宜;Kimi 工具调用经常缺参数,需要把错误结构化送回去、并拆开 write 和 edit 的框架。

高分轨迹不一定该拿来模仿。TUA 第 042 题上,GPT 在三套 harness 里都撞上 reCAPTCHA 并想交给人;只有 openJiuwen 发了两次泛化的「继续原任务」,模型就装了离线语音识别把题做完拿到 1 分。按 reward 筛模仿数据,会把绕过反自动化校验学进去。这些是标注建议,论文没有拿它们做训练。可直接用的是 6204 条轨迹和六套适配器。

局限与存疑

论文自己写了:三套固定任务子集、每题只计一次跑,模型设置、工具和预算没有对齐,看不到单个组件的因果效应,也没有测 run-to-run 方差。轨迹机制来自少量配对(OpenHands 对 PI 十对、Kimi 的 openJiuwen 对 PI 六对),训练和 harness 改动都是提案。

Terminal-Bench 用的是 version 4 的非 H100 子集,和上游榜不可直接比。openJiuwen 是用公开 API 组装的 coding agent,不是官方成品入口。OpenHands 改过输出上限,PI 的 shell 没有默认超时,harness 名字不能外推到线上那一版。high reasoning effort 在各家不一定是同一预算。ALE 上 openJiuwen-DeepSeek 有 4 道带图题走了 DeepSeek V4.1 Flash 兜底,整行分数掺了一点别的模型。

术语

原文与代码

社区讨论

相关论文

全部论文解读