编程 Agent 评测一直是一笔糊涂账。
SWE-bench 虽已成事实标准,厂商发布新模型或 Agent 框架时都会亮出分数,但这些数字并不适合直接横向比较。
Agent 的能力由模型和 harness 共同决定,同一模型换一套 harness,在 SWE-bench、Terminal-bench 等评测上的得分可相差十几甚至二十多个百分点,差距堪比模型换代。
SWE-bench 分数由三个变量决定:底层模型、harness 设计,以及具体的评测任务集。
分数高,究竟是模型更强、harness 更优,还是任务集更有利。
而且,像 OpenClaw 这类通用 Agent 框架,根本进不了 SWE-bench 的评分流程,通用 Agent 到底有没有写代码能力一直无从验证。
基元律动联合无问芯穹、清华、北大、SEE 基金等机构发布Claw-SWE-Bench基准,试图把这笔糊涂账理清楚。
这是一个 350 题的多语言基准,把 5 套 Harness、9 个大模型拉到同一条起跑线上公平较量。
同一个模型,换个 Harness 差 27 个百分点
SWE-bench 是仓库级代码 Agent 的主流评测标准,但一直以来有个问题:各家报成绩的时候,模型、Harness 和题库是绑在一起发布的,你根本分不清成绩好到底是模型强,还是 Harness 设计得好。
SWE-agent、AutoCodeRover、OpenHands 这些系统各有各的脚手架、提示词模板、超时策略和停止规则,它们的 resolved rate 天然就不可比。
之前 HAL 强调过准确率-成本-延迟的综合评估,但只发布了一套 Harness,没法做交叉对比。SWE-Bench Pro 统一了脚手架,但只用来比较模型,没有反过来比较 Harness。SWE-Effi 注意到了脚手架和模型的纠缠关系,但换脚手架时没有固定提示词和超时,结论打了折扣。
Claw-SWE-Bench 的核心思路就是拆开这三者。它固定题库、固定提示词、固定运行预算、固定评分流程,只让 Harness 和模型各自变。
题库包含 350 道 GitHub 真实 issue 修复题,横跨 8 种编程语言(Java、Go、Rust、JavaScript/TypeScript、C/C++、Ruby、PHP、Python),覆盖 43 个仓库,来自 SWE-bench-Multilingual 的 300 条非 Python 实例和 SWE-bench-Verified-Mini 的 50 条人工验证 Python 实例。
所有实例保留上游 SWE-bench 的任务格式和评测资产,包括问题陈述、仓库、基准提交、对应的 Docker 评测镜像和仓库级测试用例。
在这样的公平条件下,研究者做了两组实验。一组固定 OpenClaw 这套 Harness,换 9 个模型,看看模型轴的差距;另一组固定 GLM 5.1 和 Qwen 3.6-flash 两个模型,换 5 套 Harness,看看框架轴的差距。
5 套 Harness 分别是 OpenClaw、Hermes-agent、ZeroClaw、NanoBot 和 Generic Agent,代表了不同的设计理念。9 个模型从旗舰级的 GPT 5.5、Claude Opus 4.7,到更轻量的 DeepSeek-V4 Flash、Seed 2.0-mini,覆盖了能力和价格的宽广区间。
模型轴,GPT 5.5 以 78.0% Pass@1 排第一,Claude Opus 4.7 紧随其后 77.1%,Seed 2.0-mini 最低 48.6%,9 个模型拉开 29.4 个百分点。
Harness 轴的结果才是真正让人意外的。同样的 GLM 5.1,5 套 Harness 的 Pass@1 从 60.9% 到 73.4%,差了 12.5 个百分点。
换到更小的 Qwen 3.6-flash,差距更大:从 38.6% 到 66.0%,足足 27.4 个百分点,这在 SWE-bench 排行榜上,足以把一个系统从第一名踢到中游。
Harness 设计,包括 Agent 循环逻辑、工具接口、工作区管理、停止策略,对最终成绩的影响,和换一个更高档的模型差不多。
适配器:让通用 Agent 也能答题
为什么通用 Agent 以前没法参加 SWE-bench 评测?原因在于 SWE-bench 的评分合同很严格:它要的是一个能直接 apply 到仓库上的 diff patch,而通用 Agent 的输出格式五花八门,JSON、自然语言、结构化消息都有,跟评分管线对不上。
而且,通用 Agent 执行过程中可能创建会话文件、元数据、缓存等非解决方案的产物,这些东西进入 git diff 就会污染提交给评分器的 patch。
Claw-SWE-Bench 用 Adapter(适配器)协议解决了这个问题。适配器把通用 Agent 的交互过程,转换成 SWE-bench 能评分的 patch 预测,同时确保 Agent 的代码编辑发生在 Docker 容器的 /testbed 目录下。
Figure 2 展示了这套两层架构。第一层是适配器,负责把不同风格的 Agent 接入 SWE-bench 的评分管线;第二层是共享编排器,统一控制任务集、仓库状态、任务提示词、Docker 运行时、外部预算、patch 提取和下游评测。每套 Harness 只需实现 5 个抽象方法,就能接入整套基准,不需要知道自己跑在什么基准里。
为了验证适配器到底有多重要,团队做了一个对照实验。
差距悬殊。裸适配器只有 19.1% 的通过率。完整适配器把通过率拉到 73.4%,apply 失败率降到 1.5% 以下。
贵的不一定好,便宜的不一定差
只看 Pass@1 会遮住一个重要维度:成本。
GPT 5.5 跑 350 题,Pass@1 最高 78.0%,总花费 1399.1 美元。Claude Opus 4.7 只差 0.9pp,但 1082.0 美元。DeepSeek-V4 Flash 跑同样 350 题,70.3% Pass@1,花费只要 8.2 美元。
GPT 5.5 和 DeepSeek-V4 Flash 成本差了将近 170 倍,通过率差不到 8 个百分点。再看 DeepSeek-V4 Pro,71.7% Pass@1,花费 81.3 美元,不到 Claude Opus 的 1/10,通过率只差 5.4pp。
Harness 维度的成本差异同样惊人。
OpenClaw 搭配 Qwen 3.6-flash,71.5 美元拿到 66.0% Pass@1。NanoBot 搭配 GLM 5.1,768.8 美元才拿到 60.9%。花更多的钱,拿更差的成绩。ZeroClaw 搭配 Qwen 3.6-flash 只要 49.3 美元就能拿到 58.3%,Generic Agent 搭配 Qwen 3.6-flash 更是 14.5 美元,尽管通过率只有 38.6%。
OpenClaw × Qwen 3.6-flash 是性价比的代表之一,71.5 美元、66.0% Pass@1。
Cache hit rate(缓存命中率)也值得关注。DeepSeek-V4 Flash 的缓存命中率 98.5%,所以 8.2 美元的成本极低。
同一模型下,OpenClaw 的缓存命中率 96.5%,Generic Agent 只有 66.8%,直接导致后者的输入 token 费用远高于前者。不同 Harness 的缓存命中率差异说明适配器行为和提供商端缓存策略对实际 API 账单有实质性影响。团队把缓存命中率当作成本诊断指标列在所有结果表中,方便读者判断成本差异到底来自模型定价、token 用量还是缓存策略。
80 题替 350 题,成本降到四分之一
350 题全跑一次,最便宜的组合也要几十美元,贵的上千。在调试适配器、换模型、改提示词的阶段,反复跑全量太烧钱。团队因此推出 Claw-SWE-Bench Lite。
它从 350 题中选出 80 题,每种语言 10 题,遵循 2/3/3/2 的难度四分位配额,保证简单题和难题都有。
效果如何?80 题 Lite 的平均 Pass@1 是 0.643,全量 350 题是 0.639,差 0.4pp。Go、JS/TS、PHP、Python 偏差都在 1pp 以内,偏差最大的 C/C++ 也只有 +2.94pp,Ruby +2.65pp。
5 套 Harness × 2 个模型的交叉校验中,Lite 和全量的平均绝对差异 1.88pp,最大 3.68pp(NanoBot × Qwen 3.6-flash)。用未参与校准的 OpenSquilla 做留出验证,Lite 也保持了和全量一致的评估尺度。
成本方面,Lite 的每题平均成本接近全量,因为总题数从 350 降到 80,完整跑一次的成本约为全量的 22.9%。按资源拆开看,输入 token 占全量的 22.2%,输出 token 23.6%,缓存读取 22.6%,挂钟时间 23.0%。Lite 是把规模缩小了,不是把便宜题挑出来了。
Lite 不替代全量评测,它提供的是快速筛选和回归验证的入口。调试适配器、试新模型、回归测试的时候用 Lite,正式报成绩再跑全量,既省钱又不丢精度。
Claw-SWE-Bench 清晰的展示了 Harness 和模型一样重要,它本身就是决定代码 Agent 能力的第一等变量。
同一个模型换套框架,成绩能差出一个身位;同样的成绩,成本能差两个数量级。
以后看 SWE-bench 排行榜,你是不是也该问问,这成绩用的是哪套 Harness?
参考资料:
https://claw-swe-bench.github.io/
https://arxiv.org/pdf/2606.12344v1
https://github.com/opensquilla/claw-swe-bench
https://huggingface.co/datasets/TokenRhythm/Claw-SWE-Bench







