← 返回资料站  /  AutoResearch
基准 评测基准 ★ 必读

ScienceAgentBench: Toward Rigorous Assessment of Language Agents for Data-Driven Scientific Discovery

ScienceAgentBench:数据驱动科研任务上的 agent 严格评测
一句话OSU 从 44 篇四学科真实论文中抽取 102 个数据分析编程任务、由 9 位领域专家逐条校验,结果最强组合(Claude-3.5-Sonnet + self-debug)独立只能解决 32.4%,加专家知识 34.3%,o1-preview 也只有 42.2%——给'AI 已能端到端自动科研'的说法提供了有据的反证。

这是什么

2024 年下半年 AI Scientist 之类的工作宣称 LLM agent 已能端到端自动化科学发现,引来大量质疑。ScienceAgentBench 的立场是:在讨论端到端自动化之前,先严格测 agent 能不能完成科研工作流里的单个环节。它把目标定位成'科研 co-pilot':替科学家写数据处理、分析、可视化的代码,每个任务的输出统一为一个可独立执行的 Python 程序文件,便于自动验证、也便于科学家直接拿去用。

任务全部来自真实科研:团队从 Bioinformatics、Computational Chemistry、GIS(地理信息)、Psychology & Cognitive Neuroscience 四个学科的 44 篇同行评审论文的开源代码库中改编出任务,9 名研究生标注、9 位领域专家(资深博士生和教授)填问卷逐条校验,再经标注者交叉复核,从 110 个初始任务筛到最终 102 个。每个任务包含四个部分:任务指令、数据集信息(目录结构+内容预览)、可选的专家知识、以及从原论文代码改编的 gold program。

这是 autoresearch 方向被引用最多的'泼冷水'基准之一(S2 引用 163+,ICLR 2025),后来被 OpenHands 官方评测框架收录,也进了 Princeton 的 HAL(Holistic Agent Leaderboard)。

任务四组件示例(Clintox 药物毒性预测):(a) 简短的任务指令 (b) 数据集目录结构与内容预览 (c) 可选的专家知识(术语解释+建议用 deepchem 的 ECFP 特征化)(d) 从原论文代码改编的 gold program。agent 的输出统一为一个自包含的 Python 文件,不要求与 gold program 用相同的工具。
任务四组件示例(Clintox 药物毒性预测):(a) 简短的任务指令 (b) 数据集目录结构与内容预览 (c) 可选的专家知识(术语解释+建议用 deepchem 的 ECFP 特征化)(d) 从原论文代码改编的 gold program。agent 的输出统一为一个自包含的 Python 文件,不要求与 gold program 用相同的工具。

机制与做法

任务构造与防污染

标注流程五步:找一段自包含、有文档的代码示例 → 收集并预处理其数据集 → 把代码改写成基准里的 reference program → 为每个任务实现可执行的成功判据脚本(并用 GPT-4o 起草细粒度 rubric)→ 写任务指令和数据集信息。指令刻意写得简短、不给操作步骤,保留科研任务的开放性。任务覆盖 Data Processing(23)、Model Development(23)、Data Analysis(59)、Info Visualization(65) 四类子任务(一个任务可含多个子任务)。

因为源码和数据都是开源的,存在训练集污染;而且他们在预实验里发现 OpenHands 之类的 agent 会走捷径——比如让它训练模型,它直接把测试集标签读出来交差。两个对策:(1) 每个数据集的测试集随机删掉 5 个数据点,靠背诵训练语料里 data loader 的程序会产出对不上的结果;(2) 涉及模型开发的任务重切数据集,测试集标签换成 -1 之类的 dummy 值,真标签只在评测端保留。

上:102 个任务的子任务分布——Data Processing(23)、Model Development(23)、Data Analysis(59)、Info Visualization(65),一个任务可含多个子任务。下:数据的异构性,从左到右为细胞显微图像(Bio)、分子活性可视化(Chem)、多图层洪水风险地图(Geo)、EEG 时间序列(Psy),这是它比 ML-Bench/DiscoveryBench 难的主要来源。
上:102 个任务的子任务分布——Data Processing(23)、Model Development(23)、Data Analysis(59)、Info Visualization(65),一个任务可含多个子任务。下:数据的异构性,从左到右为细胞显微图像(Bio)、分子活性可视化(Chem)、多图层洪水风险地图(Geo)、EEG 时间序列(Psy),这是它比 ML-Bench/DiscoveryBench 难的主要来源。

评测指标与环境

四个指标:VER(程序能否无报错跑完并按指定文件名存输出)、SR(输出是否满足任务级成功判据,如测试集性能达标、预测与答案匹配、图的质量;SR 以 VER 为前提)、CodeBERTScore(生成程序与 gold program 的嵌入相似度)、Cost(每任务平均 API 花费)。图类输出用 GPT-4o 当 judge、采 3 次响应取平均。每个任务跑 3 次独立 run,按 SR→VER→CBS→Cost 的顺序挑最好的一次报告。

为了容纳不同 agent 生成的五花八门的程序,评测管线用 pipreqs 分析生成的代码、pip-tools 自动装依赖,在动态配置的 conda 环境里执行。2025 年 1 月又发布了借鉴 SWE-bench 的容器化评测 harness,8 线程 30 分钟可以跑完 102 个任务一遍。

最强配置(Claude-3.5-Sonnet + self-debug + 专家知识)的失败按学科×子任务分解:Bio/Chem 的错误集中在 Data Processing 和 Model Development(异构科学数据难处理,数据没处理对模型也训不了);Geo/Psy 的错误集中在 Data Analysis(Geopandas、Biopsykit 等学科专用库的 API 会被写错或幻觉)。
最强配置(Claude-3.5-Sonnet + self-debug + 专家知识)的失败按学科×子任务分解:Bio/Chem 的错误集中在 Data Processing 和 Model Development(异构科学数据难处理,数据没处理对模型也训不了);Geo/Psy 的错误集中在 Data Analysis(Geopandas、Biopsykit 等学科专用库的 API 会被写错或幻觉)。

被测框架与主结果

5 个模型(Llama-3.1-70B/405B、Mistral-Large-2、GPT-4o、Claude-3.5-Sonnet)× 3 个框架(direct prompting、OpenHands CodeAct、self-debug),外加 o1-preview(只测 direct 和 self-debug)。最有意思的结果是框架对比:对 5 个模型中的 4 个,简单的 self-debug(生成→执行→看报错改代码)打败了带浏览器、bash、文件编辑等复杂工具的 OpenHands CodeAct。Claude-3.5-Sonnet 用 self-debug 比用 OpenHands 多解 10.8% 的任务(21.6%→32.4% SR),API 费用还便宜 17 倍($0.958→$0.057/任务)。唯一例外是 GPT-4o,它是唯一会真正用 OpenHands 浏览器查资料的模型。

专家知识的作用也不是单向的:多数 agent 加知识后 SR/CBS 上升但 VER 下降——知识里指定的专业工具(Geopandas、Biopsykit、deepchem 等)agent 不熟,会写出幻觉 API;不给知识时它们反而会退而生成'能跑但没意义'的程序(比如画一张空图)。失败分析显示 Bio/Chem 主要死在异构数据处理和模型开发上,Geo/Psy 主要死在学科专用库的 API 使用上;成功任务的 gold program 显著偏短(超过 75% 的成功任务 gold program 短于全集均值 58.6 行),即复杂任务基本全军覆没。

任务成败(1=成功)与 gold program 行数的关系:成功任务明显偏短(中位数约 41 行),红线为全集均值 58.6 行,超过 75% 的成功任务在均值以下——即 agent 基本只能搞定偏简单的任务,复杂任务上接近全灭。
任务成败(1=成功)与 gold program 行数的关系:成功任务明显偏短(中位数约 41 行),红线为全集均值 58.6 行,超过 75% 的成功任务在均值以下——即 agent 基本只能搞定偏简单的任务,复杂任务上接近全灭。

rubric 人评

对最强配置(Claude-3.5-Sonnet + self-debug + 知识)生成的全部 102 个程序做了 rubric 人评:GPT-4o 起草、专家修订的 rubric 把程序分为 Data Loading / Data Processing / Modeling or Visualization / Output Formatting / Output Saving 五阶段打分,每个程序两人背靠背评(评者看不到执行结果)。结论:成功与失败程序的区分主要发生在前两个阶段——数据没加载对、没处理对,后面写得再好也没用;而输出格式化和保存两个阶段成功失败组没差别,说明这类指令跟随 LLM 已经做得不错。这给'瓶颈在科学数据处理'提供了细粒度证据。

关键结果

实证核查

扎实数据、代码、评测 harness 全开源且与论文声称一致,被 OpenHands 官方和 Princeton HAL 独立采用并复现出同量级结论;评测本身的两个瑕疵(metrics 脚本 bug、自动判分的 false negative)都被公开承认并修复,反而佐证团队确实在认真维护。
论文声称 102 个任务全部来自 44 篇同行评审论文、经 9 位领域专家多轮校验,基准可复用。
HuggingFace osunlp/ScienceAgentBench 公开了完整 annotation sheet(任务指令、专家知识、数据预览、gold/eval 程序文件名逐条可查,与论文 Fig.2 的四组件结构一致);完整评测材料(datasets/gold_programs/eval_programs/scoring_rubrics)以密码 zip 分发防爬虫污染,README 目录结构与仓库实际一致。repo 166 stars、持续维护到 2026-07,SAB 于 2024-10-31 被合入 OpenHands 官方 evaluation harness。
论文声称'最强 agent 只能解决约三分之一任务',暗示这是模型能力的真实上界。
第三方独立复测支持这个结论:Princeton HAL leaderboard 用 SAB self-debug 脚手架重跑,o3-medium 33.3%($11.69/全程)、GPT-5-medium 30.4%、Claude Sonnet 4.5 30.4%、Claude-3.7-Sonnet 30.4%——2025 年的前沿模型都没有明显超过论文里 2024 年 Claude-3.5 的 32.4%(hal.cs.princeton.edu/scienceagentbench)。但要打个星号:作者 2026-04-30 发布了 verified split,自述目的是'mitigate false negatives in evaluation',即原版自动判分会把部分正确解误判为失败,原始分数可能系统性偏低,这与 OpenReview 审稿讨论中作者自己承认的 rubric false negative 问题一致。
论文描述'每任务 3 次 run 按 SR→VER→CBS→Cost 顺序选最优'的评测协议。
外部贡献者发现 calculate_metrics.py 的 tie-breaking 实现与论文描述不符——打平时在全部轨迹里搜而不是在已过滤的候选里搜,可能选中 cost 最低但 SR 并非最优的 run(issue #9,修复 PR #8,2025-02 已合入)。影响的是次级排序不是主结论,但说明第一版发布的 metrics 脚本和论文有出入。
两个防污染策略(删 5 个测试点、测试集标签换 dummy 值)'有效缓解'数据污染和 agent 走捷径。
策略确实能抓住背诵 data loader 和直接抄测试标签这两种作弊(论文 Appendix 有案例),但它只是启发式而非证明:删 5 个点对不用标准 loader 的记忆代码无效,论文自己也承认部分数据集(如完整地图)无法删点只能跳过。另外图类任务的 SR 依赖 GPT-4o-as-judge(评测跑分都需要 OpenAI key),判分有随机性,官方靠采 3 次平均缓解。
README 声称容器化评测 harness 8 线程 30 分钟跑完 102 个实例。
docs/20250110_docker 文档和 evaluation/harness 代码均在仓库中(改编自 SWE-bench),issues 里的复现问题多为环境类小问题(arm Mac docker 失败 #6、下载链接 404 #14,均已由作者响应修复),没有发现质疑主结果的 issue 或第三方翻车报告。

与我们方向的关系

对做 autoresearch 评测的人,这是'先测单环节、再谈端到端'方法论的代表作,和 AI Scientist 一系宣传形成直接对照:它给出的量化下界(约 1/3)被 HAL 用 2025 年的模型反复确认,可以直接引用作为'当前 agent 尚不能自动化数据分析环节'的证据。构造上最值得抄的三点:任务源于真实论文代码而非合成、专家问卷式校验流程(附录有完整问卷模板)、以及删测试点+dummy 标签的防污染/防捷径设计——最后这条对任何用开源数据建 agent 基准的工作都是必做项。

两个对课题组设计 agent 有直接指导意义的实验结论:(1) self-debug 这种极简 scaffold 以 1/17 的成本打败 OpenHands,复杂工具箱对多数模型是负资产,做 agent 框架选型时应先跑最简 baseline;(2) 外部知识注入会同时提高 SR 和降低 VER,说明'给 agent 塞领域知识'不是免费午餐,要配合 API 文档检索之类的机制。另外它的 rubric 五阶段人评把瓶颈定位到 data loading/processing,提示改进方向在科学数据理解而非代码生成本身。

阅读笔记

用这个基准跑评测时注意三件事:(1) 一定用 2026-04-30 之后的 verified split(HF verified split + benchmark_verified.zip),旧版自动判分有 false negative;(2) calculate_metrics.py 的 tie-breaking bug 在 2025-02 才修,之前的第三方复现数字可能受影响;(3) 评测图类任务需要 OPENAI_API_KEY(GPT-4o judge)。论文报告的 'best of 3 runs' 口径偏乐观,看单次 run 均值要查 Appendix 的 mean±std。o1-preview 的 42.2% 与其他模型不可直接比(超参不同、额外推理 token)。

材料清单

TeX 源码
已存档:Raw/scienceagentbench/source/
代码仓库github.com/OSU-NLP-Group/ScienceAgentBench
166★ · 最近推送 2026-07-18
数据集huggingface.co/datasets/osunlp/ScienceAgentBench
annotation sheet(agent 运行所需全部输入);2026-04 起请用 verified split
第三方复测hal.cs.princeton.edu/scienceagentbench
Princeton HAL leaderboard,o3/GPT-5/Claude-4.5 等模型的独立复跑结果(均 ~30-33%)
OpenReviewopenreview.net/forum?id=6z4YKr0GK6
ICLR 2025 审稿讨论,含作者对评测 false negative 的回应
OpenHands 集成github.com/All-Hands-AI/OpenHands/tree/main/evaluation/benchmarks/scienceagentbench
OpenHands 官方 evaluation harness 中的 SAB 集成

同类条目