← 返回 2026-08-21

SWE-bench Science:面向科学软件工程的仓库级编码智能体基准 SWE-bench Science: Can Coding Agents Resolve Engineering Tasks in Science?

Zhipeng Xu, Jiahao Lu, Yining Zheng, Yuxin Wang, Xipeng Qiu 📅 2026-08-20 👍 63 2026-08-26 18:30
基准评测 失败机理分析 科学计算 编码智能体 软件工程

119项任务、98个仓库、20个科学领域的基准,揭示编码智能体修复科学软件的失败机理

前置知识

仓库级软件修复(SWE-bench 范式)

给定缺陷发生前的代码库快照与自然语言问题描述,智能体需在仓库中定位缺陷、修改源码并提交补丁,补丁必须通过隐藏测试才算成功。SWE-bench 采用 Fail2Pass(原本失败的测试被修复的比例)与 Pass2Pass(原本通过的测试保持通过的比例)双指标,防止只修新问题却破坏旧功能的回归。

本文是 SWE-bench 思想在科学软件上的扩展,理解这套任务定义与指标体系才能读懂它的任务构造与评测协议。

编码智能体与 Harness

编码智能体是以大模型为核心、能自主浏览代码库、运行测试、编辑文件并迭代修复的软件系统;Harness 指承载模型的具体工程框架(如 Claude Code、Codex、Kimi Code),决定智能体可用的工具集、上下文管理与推理预算,同一模型配不同 Harness 表现差异很大。

论文评测的是『模型+Harness』共 8 种组合配置,所有比较结论都必须绑定具体 Harness 才成立,不能简单读成模型间对比。

Pass@1

单次尝试的严格通过率:仅当该任务所有适用的私有测试全部通过时记 1,否则记 0,是二值的精确成功度量。与公共分(PublicScore,公共用例上的平均得分)不同,Pass@1 无法靠表面修补刷高,能区分『看起来修好』与『真正修对』。

本文核心发现是公共分可达 96% 以上而 Pass@1 不足 50%,这两个指标的缺口正是论文分析失败机理的出发点。

科学软件工程

科学软件已成为科研仪器的一部分:模拟器、数据处理流水线、替代模型等代码的缺陷不仅破坏程序行为,还会污染科学结论的证据链。修复这类代码要求保持科学不变量,例如周期体系中原胞与超胞表示的能量守恒约束 $\Delta E = |E_k - E_\Gamma/N| \le 5\times10^{-5}$ Hartree/cell。

论文区分了普通代码修复与保持科学契约的修复,这是其四类失败机理分类法的知识基础。

配对消融实验

在除目标因素外其余条件完全相同的成对设置下比较性能:本文对 91 个可分离任务,保持仓库快照、执行环境、公共复现入口与必需科学上下文 $c^{req}_i$ 固定,仅增删外部提供的科学辅助信息(论文摘录、专家指导、上游修复等),从而估计领域知识的边际贡献而非无线索环境下的表现。

第 6.2 节关于『科学知识并非普遍有益』的反直觉结论完全依赖这一配对设计,不理解配对控制就无法正确解读结果。

研究动机

现有代码智能体评测存在两重盲区。其一,以 SWE-bench 为代表的仓库级基准衡量的是聚合任务成功率,无法区分失败根源是科学抽象错误、浅层修补还是系统集成不完整;例如一个补丁让公共测试全绿却违背科学契约时,聚合分数会给出误导性信号。其二,科学编码评测覆盖不足:SciCode(80 题、16 领域)与 MMSciCode(624 题、6 领域)停留在函数级合成,ResearchCodeBench(212 题、1 领域、20 仓库)、ScienceAgentBench(102 题、30 仓库)等聚焦研究工作流而非软件维护,AInsteinBench 虽使用生产仓库但仅 6 个仓库 6 个领域,SWE-Bench 5G 则限于单一电信领域。此外,科学软件日益成为科研仪器本身,一个缺陷补丁可能扭曲论文结论背后的证据,而跨领域的仓库级科学软件工程此前几乎没有系统性评测与失败原因剖析。

本文的目标是本文要构建并开放 SWE-bench Science:一个覆盖 20 个科学领域、98 个独立 GitHub 仓库、共 119 项任务的仓库级科学软件工程基准,每项任务均经人工核验科学契约、可复现性与评测有效性。基准按能力维度组织为三类范式——Issue-driven(已知缺陷的局部修复与回归规避,52 题)、Expert-exploratory(未知根因的自主科学探究,49 题)、Engineering-integration(跨模块能力链贯通,18 题)。在此基础上系统评测 8 种『模型+Harness』前沿配置(含 GPT-5.6-sol、Claude-Opus-5、DeepSeek-V4-Pro、Kimi-K3 等),通过四类失败机理人工剖析失败原因,并在 91 个可分离任务上做配对消融,量化外部科学知识对修复成功率与 token 开销的真实贡献。

与已有工作不同的是,本文的独特切入角度有三。第一,把科学软件维护当作工程问题而非编程题:任务定义在真实仓库快照上,输入平均 80,600.12 行非空代码(174 至 2,029,051 行),参考补丁平均新增 117.81 行、删除 44.53 行,远超函数级合成基准的尺度。第二,提出『证据链协议』,将公共诊断测试与私有科学用例分离、把必需科学上下文 $c^{req}_i$ 固定并与可选的科学辅助信息解耦,从而第一次能在保留可执行工程上下文的前提下单独消融『领域知识』这一因素,估计其边际贡献。第三,不只测对错,还给出四类失败机理的可复用分类法,并用隐藏验证器做反向校准(检测硬编码、启发式伪修复与不完整修复),系统性抵御过拟合与解法泄漏。

核心方法

整体思路是先有直觉:修好科学软件需要三种互补能力——修复已知缺陷、探究未知根因、贯通系统架构——基准就按这三种范式组织任务;评测则必须区分『公共测试上的表现』与『私有科学用例上的精确成功』。技术路线上,所有原始任务经统一的四阶段证据链协议生成:源采样与筛选、快照冻结与复现、公开材料抽象与信息隔离、隐藏神谕与反向校准,随后按范式做差异化重设计。评测时智能体在剥离 Git 历史、未来 changelog、构建缓存与解题线索的工作区中自由编码,仅可访问公共诊断测试;提交补丁后在干净容器中套用,私有测试(如示例任务中 10 个科学用例检查 FFT 网格一致性、k 点排序、晶胞几何、MDF 积分等)才决定最终得分。指标包括 PublicScore、PrivateScore、Fail2Pass、Pass2Pass 与二值 Pass@1,私有通过集为空时 Pass2Pass 记 1。

核心创新是与已有方法的三个本质区别。其一,三范式能力解耦:Issue-driven 用『降级隔离—现象收窄—抗过拟合验证』聚焦局部修复,Expert-exploratory 用『科学场景设计—探索点提取—现象根因分离—机理泛化验证』逼智能体做自主黑箱/灰盒推理,Engineering-integration 用『流水线分析与缺口选择—工程上下文保全—端到端契约验证』考察跨文件架构理解,避免了 AInsteinBench 等把不同能力混在一个总分里的做法。其二,科学辅助信息分离设计:在 91 个任务上仅增删科学原理、公式假设、领域诊断与修复策略,而保留代码结构、接口、测试等仓库内在工程线索,使消融估计的是同一仓库证据下知识的边际贡献。其三,隐藏验证器含语义等价、边界条件与针对硬编码/伪修复的反向检查,要求能量不变量 $\Delta E \le 5\times10^{-5}$ Hartree/cell 在参数尺度、物理拓扑、坐标顺序变换下依然成立。

方法步骤详情

第一步,源采样与筛选:从候选科学计算仓库收集真实 issue、PR、commit 与相关文献,按预设标准剔除过于简单的修复、环境依赖不稳、答案泄漏严重及与已有样本重叠的项目。第二步,快照冻结与复现:把源码回滚到缺陷或能力缺失出现前的状态 $\mathcal{S}_{bug}$,在隔离容器中执行以稳定复现目标异常,确保失败源自核心算法语义而非环境噪声。第三步,公开材料抽象与信息隔离:依据行为契约抽取每个任务的科学不变量与数据流约束,打包公开仓库、粗粒度现象描述、复现脚本与领域背景文档,但不暴露补丁位置或隐藏断言。第四步,隐藏神谕与反校准:构建覆盖语义等价与边界条件的私有验证套件,并加入针对硬编码解、启发式伪修复、不完整修复的反向检查。第五步,按三种范式分别重设计任务(Issue-driven 做最小可复现示例与现象收窄;Expert-exploratory 做机理泛化验证;Engineering-integration 做端到端契约测试)。最后评测:补丁在干净验证容器中与公共诊断检查和私有科学用例比对,输出各指标与 Pass@1。

技术新颖性

技术新颖性体现在基准工程与实验设计两层。基准层面:98 仓库、20 领域、119 任务的广度超过 AInsteinBench(6 仓库 6 领域 244 题)与 SWE-Bench 5G(3 仓库单领域 210 题),且是首个把任务范式作为一等公民、并给出 per-paradigm 分项成绩的科学软件基准。实验层面:主表同时报告 PublicScore 与 PrivateScore,揭露了 96.64% 公共分对 47.90% Pass@1 的巨大缝隙;失败机理表把错误归入四个互斥类别并单独记录运行时/评测路径失败;消融层面采用配对设计控制混杂,任务级重叠分析显示 GPT-5.6-sol 有 8 题仅在提供科学信息时解出、12 题仅在无信息时解出,说明额外信息会诱发锚定效应或让智能体跳过独立验证——这是『更多上下文不一定更好』这一反直觉结论的实证基础,也把评测从报分数推进到了机理诊断。

Evaluation pipeline in SWE-bench Science for an example task.
Figure 3: Evaluation pipeline in SWE-bench Science for an example task.
Combined overview of raw-task construction and class-specific task re-design.
Figure 4: Combined overview of raw-task construction and class-specific task re-design.

实验结果

主实验(Table 2)显示没有模型全面领先:Claude-Opus-5 (max) 综合最强,Pass@1 47.90%(Expert 类 65.31%、Issue 类 38.46%、Engineering 类仅 27.78%),公共分 96.64% 但私有分 75.11%;GPT-5.6-sol 私有分最高(75.57%)、Fail2Pass 最高(69.98%)但综合仅 40.34%,输出 token 最省(约 43.75K/任务);DeepSeek-V4-Pro 公共分满分 100.00%、Engineering 类最佳(44.44%);GLM-5.2 的 Pass2Pass 最佳(97.53%);最弱的 Qwen3.5-397B 综合 14.29%、Issue 类仅 5.77%。所有配置 Pass@1 均低于 50%。失败机理(Table 3):Claude-Opus-5 分类错误最少(58,另有 4 次运行时失败)且浅层修补最少(仅 2 次);DeepSeek-V4-flash 泛化错误最少(6)但集成错误最多(48);Qwen3.5-397B 总错误 102。消融(Figure 6/7):去掉科学信息后 GPT-5.6-sol Pass@1 反升(31.87%→36.26%),输入 token 3.70M→3.86M;DeepSeek-V4-flash 加信息则从 16.48% 升到 23.08%,代价是输入 token 4.84M→7.40M、输出 128.43K→159.26K——弱模型受益更多,强模型可能被信息锚定。

Comparison of coding-agent benchmarks for science.
Table 1: Comparison of coding-agent benchmarks for science.
Main experimental results.
Table 2: Main experimental results.
Error-count breakdown by coding agents over the common 119 tasks.
Table 3: Error-count breakdown by coding agents over the common 119 tasks.
Pass@1 comparison of coding agents on SWE-bench Science.
Figure 1: Pass@1 comparison of coding agents on SWE-bench Science.
Pass@1 versus mean token consumption per task over the common 119-task evaluation.
Figure 5: Pass@1 versus mean token consumption per task over the common 119-task evaluation.
Scores and token consumption over the 91 tasks whose scientific-information content differs between conditions.
Figure 6: Scores and token consumption over the 91 tasks whose scientific-information content differs between conditions.
Task-level overlap of Pass@1 success on the 91-task separable subset.
Figure 7: Task-level overlap of Pass@1 success on the 91-task separable subset.
查看结构化数据
任务指标本文基线提升
119 项任务的精确修复成功率 Pass@1(综合) Claude-Opus-5 (max) 47.90% GPT-5.6-sol 40.34%;DeepSeek-V4-Pro 42.02%;最弱 Qwen3.5-397B 14.29% 全场最佳,但无一配置超过 50%,凸显仓库级科学软件工程的难度
公共测试平均得分 PublicScore DeepSeek-V4-Pro 100.00% Kimi-K3 98.32%、Claude-Opus-5 96.64%、Qwen3.5-397B 96.64% 各模型公共分普遍 93% 以上,与最高 47.90% 的 Pass@1 形成约 50 个百分点的差距,暴露只对齐公共测试的表面修复风险
失败私有测试修复率 Fail2Pass GPT-5.6-sol 69.98% Claude-Opus-5 68.60%、DeepSeek-V4-Pro 65.77%、Qwen3.5-397B 38.33% 最高,说明其擅长把坏测试修好,但综合 Pass@1 反而低于 Claude-Opus-5
回归保持 Pass2Pass GLM-5.2 97.53% Claude-Opus-5 97.37%、GPT-5.6-sol 96.30%、Qwen3.5-397B 95.16% 各配置均达 94% 以上,说明破坏已有功能不是主要瓶颈,真正的难点在修对新科学行为
Expert-exploratory 类任务(49 题) Pass@1(分范式) Claude-Opus-5 65.31% DeepSeek-V4-Pro 57.14%、DeepSeek-V4-flash 26.53%、Qwen3.5-397B 24.49% 自主根因探究上头部与尾部模型差距近 39 个百分点,是区分模型能力最强的一类任务
科学信息配对消融(91 题子集) Pass@1 GPT-5.6-sol 无信息 36.26% 对有信息 31.87%;DeepSeek-V4-flash 有信息 23.08% 对无信息 16.48% 同任务配对条件互为基线 效果模型相关:强模型被信息拖累 4.39 个百分点,弱模型受益 6.60 个百分点

局限与改进

作者自己承认两点:每个科学领域的任务数仍然偏少(6 个领域各仅 1 题,最大的化学也只有 24 题,前五大领域合计 76 题占 63.9%),跨领域比较的可靠性受限;对领域知识如何被实际使用、怎样让它真正促进任务完成的分析还比较初步。我补充几点观察:消融只在 2 个模型(GPT-5.6-sol 与 DeepSeek-V4-flash)×91 题上进行,作者也明示这是描述性配对差异、未做统计显著性检验,『强模型被锚定』的结论证据还较薄;评测把模型与 Harness 一一绑定(如 Opus-5 只配 Claude Code),无法分离框架与模型的贡献;119 题的规模下,单题成败对总分的影响约 0.8 个百分点,小差距不足以支撑排序结论;四类失败机理依赖人工审计归因,论文未报告标注者间一致性或仲裁流程。

独立分析的弱点

第一,模型与 Harness 混杂:8 个配置里模型和框架一一对应,无法回答『Opus-5 换到 Codex 会怎样』,改进方向是对头部模型做 2×2 交叉实验。第二,Pass@1 二值化过严:一个补丁通过 10 个私有科学用例中的 7 个(示例任务的典型场景)得 0 分,丢失了部分正确的信息,可改用分级分数或按契约重要度加权。第三,消融样本有限且无显著性检验:91 题上 4-6 个百分点的翻转可能落在噪声范围内,应扩展到全部 8 个配置并做配对 bootstrap 检验。第四,领域样本极不均衡(化学 24 题对 6 个单题领域),领域级结论噪声大,可按领域分层扩容或引入分层采样评测。第五,科学信息以静态文本一次性注入,未探索检索式供给、可执行证据(公式+验证脚本)等更优封装——文中已暗示与可执行证据结合的知识才有益,这值得做成系统对照。第六,基准会随时间被训练数据污染,需要私有保留集或动态任务更新机制。

未来方向

作者指出的方向是扩大模型覆盖、深入研究领域知识如何被使用并转化为任务收益。在此基础上可以延伸:其一,把『科学辅助信息』做成可控的谱系变量(无信息→检索文献片段→论文全文→专家推理链→可执行验证器),刻画每档的收益/成本曲线,回答什么样的知识封装对哪类模型最有用;其二,利用四类失败机理训练针对性能力,例如先归因再修复的两阶段智能体、强制『探索—假设—验证』循环的记忆机制,直接瞄准浅层修补与泛化失败;其三,把 Engineering-integration 类扩展到更长流水线(数据加载→参数解析→中间表示→算子装配→数值求解的全链贯通)并提高该类占比(现仅 18 题);其四,结合 token 消耗数据研究性能-成本帕累托前沿,如 GPT-5.6-sol 每任务仅 43.75K 输出 token 拿到 40.34%,如何用测试时算力分配逼近 Claude-Opus-5 的 47.90%;其五,把基准接入科学软件的持续集成,用真实上游修复做纵向追踪与回归评测。

复现评估

复现基础较好:代码开源于 github.com/OpenMOSS/SWE-bench-Science,数据集发布在 HuggingFace(OpenMOSS-Team/SWE-bench-Science),并提供公开排行榜(swescience.github.io)。任务自带锁定依赖、可运行入口的容器化快照,评测在独立干净容器中执行,公开/私有测试分离,四阶段构造流程与防泄漏措施在论文中描述完整。主要门槛在算力与 API 成本:复现主表需运行 8 种『模型+Harness』配置,每任务平均输入 token 达数百万(DeepSeek-V4-flash 约 4.84M、GPT-5.6-sol 约 3.86M),119 题×多配置×max 推理预算的调用费用不菲;失败机理的人工审计部分依赖研究者判断,第三方难以完全复现类别归属。总体而言,用公开数据重跑两三个配置是可行的,全表复现需要可观预算,基准构建侧(新任务入库)则需要领域专家参与科学契约设计与私有测试编写。