复旦科学软件工程基准:最强agent的Pass@1仍低于50%

SWE-bench Science: Can Coding Agents Resolve Engineering Tasks in Science?

Zhipeng Xu, Jiahao Lu, Yining Zheng, Yuxin Wang, Xipeng Qiu

cs.CL, cs.SE

2026-08-20

复旦与上海创智学院从98个仓库抽出119道科学软件工程题。Claude Code配Opus-5(max)的Pass@1是47.90%,公开测试却有96.64%。科学辅助信息帮了弱模型,却把GPT-5.6-sol的Pass@1从36.26%降到31.87%。

这篇在解决什么

科学代码已经是实验仪器的一部分。补丁写错,坏的不只是程序输出,连结论背后的证据都会一起坏。现有 coding agent 评测多报一个通过率,分不清失败是科学概念错了、只修了表面症状、没接到整条流水线,还是原理不会外推。函数级科学编程基准和论文复现基准都存在,跨领域、仓库级、还带失败机制分析的科学软件工程基准仍然少。

复旦大学与上海创智学院做了 SWE-bench Science:119 道题,来自 98 个 GitHub 仓库、20 个科学领域,每道题都人工核过科学契约、可复现性和评测有效性。

方法

题按三种范式拆开,避免把不同能力揉成一个分数。Issue-driven(52 道,43.7%)从真实历史缺陷出发,公开材料只给粗粒度现象,隐藏补丁位置。Expert-exploratory(49 道,41.2%)模拟根因未知的科学排查,agent 要靠观察和受控对比找出机制。Engineering-integration(18 道,15.1%)要求跨模块补上一条完整能力链。化学 24 道最多,材料 16、生物 13、生医工 12、物理 11;六个领域各只有 1 道。仓库非空代码平均 80600 行(174 到 2029051),参考补丁平均 +118 / −45 行。

构造走统一的证据链:源筛选、缺陷前快照冻结并在隔离容器里复现、公开材料与隐藏断言隔离、再用边界条件和反硬编码检查校准隐藏验证器。Agent 看得到仓库快照、冻结的问题陈述、必要的科学上下文和公开测试;私有测试在提交后于独立容器里挂载,工作区里拿不到。

主评测跑了 8 套配置,包括 GPT-5.6-sol + Codex(max)、Claude-Opus-5 + Claude Code(max)、DeepSeek-V4-Pro + Claude Code(max)等。Pass@1 要求全部适用的私有测试通过。另有 91 道题可以把科学辅助信息(原理、方程、专家诊断、上游修复说明)从工程上下文里拆掉,做有无对照。

结果

没有一个配置拿下全部指标。整体 Pass@1 最高是 Claude-Opus-5 的 47.90%,它的公开测试分却有 96.64%。GPT-5.6-sol 私有分最高(78.82%),Fail2Pass / Pass2Pass 也最好。DeepSeek-V4-Pro 公开测试 100%,工程集成范式 44.44% 最高。Qwen3.5-397B 的 Pass@1 只有 14.29%。

配置PublicPrivatePass@1IssueExpertEng.
Claude-Opus-5 + Claude Code96.64%75.11%47.90%38.46%65.31%27.78%
GPT-5.6-sol + Codex99.16%78.82%46.22%36.54%59.18%38.89%
DeepSeek-V4-Pro + Claude Code100%73.16%42.02%26.92%57.14%44.44%
Qwen3.5-397B + Codex96.64%51.79%14.29%5.77%24.49%11.11%

头名模型在 Expert-exploratory 上明显好过 Issue-driven(Opus 65.31% 对 38.46%),工程集成反而是 Opus 的弱项(27.78%)。Token 上 Opus 用中等预算拿到最高 Pass@1,GPT-5.6-sol 输出更短、分数接近;DeepSeek-V4-Pro 输入 token 更多,名次仍落后。小模型里 Nex N2 的分数-token 比好过 DeepSeek-V4-flash 和 Qwen3.5-397B。

失败按四类互斥机制人工归因。Opus 科学类错误最少(58,另有 4 次运行时或评测路径失败),表面修补只有 2 次。DeepSeek-V4-flash 科学外推失败最少(6),系统集成失败最多(48)。DeepSeek-V4-Pro 科学抽象错误最少(15)。

91 道可分离题上,科学辅助信息的效果因模型而异。GPT-5.6-sol 加上信息后公开/私有分从 96.70% / 73.23% 升到 97.80% / 74.06%,Pass@1 从 36.26% 降到 31.87%,输入输出 token 也略降。DeepSeek-V4-flash 的 Pass@1 从 16.48% 升到 23.08%,输入 token 从 484 万升到 740 万。任务级重叠更清楚:GPT 有 8 道只在有信息时过、12 道只在没信息时过;DeepSeek 是 9 对 3。论文写明这些是描述性差值,没有做统计显著性。对齐不好的说明会把 agent 锚在错误解释上。

为什么重要

仓库级科学修 bug 和刷公开单测不是一回事。公开测试接近满分、私有测试过半不到,说明 agent 很会把看得到的诊断跑绿,却过不了隐藏的科学契约。对做科学 coding agent 的人,四类失败给出了该补的能力:对象定义、受控排查、跨模块不变量、以及换坐标系或边界条件后还成立。科学文档不能当免费增益。弱配置吃提示更明显,强配置可能被提示带偏。

这是渐进的评测资产,不是新算法。价值在任务设计和失败解剖,方便后面的人对着同一组仓库测「科学知识怎么接上可执行证据」。

局限与存疑

作者承认各领域题量仍少,跨领域对比不可靠;科学知识如何被真正用上,分析也还粗。Engineering-integration 只有 18 道,27.78% 和 44.44% 之间几个题就会换排名。Pass@1 是单次尝试,没有 pass@k。失败标签是人工归因,同一条失败可以同时像「抽象错了」和「没接到相邻模块」。消融只跑了两个配置,论文自己说不能当因果结论。六个领域各 1 道题,领域覆盖的广告成分大于统计功效。仓库快照去了 git 历史,真实科学家会去翻 issue 的那部分线索被刻意拿掉了,这让任务更干净,也更不像日常维护。

术语

原文与代码

相关论文

全部论文解读