SWE-bench_Pro-os
Scale AI 出品的 AI 编程评测基准,评估大模型在企业级代码库中解决真实软件工程任务的能力,难度高于 SWE-Bench
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Scale AI 出品的 AI 编程评测基准,评估大模型在企业级代码库中解决真实软件工程任务的能力,难度高于 SWE-Bench
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,AI 编程助手席卷全球——GitHub Copilot、Cursor、Claude Code 几乎成了程序员的标配。但这些工具的真实能力边界在哪里?它们能否像人类工程师一样,拿到一个真实的 bug 报告或功能需求,独立在复杂代码库里定位问题、编写补丁、通过测试?
这正是 SWE-Bench 系列试图回答的问题。2024 年诞生的 SWE-Bench 通过让 AI 模型解决真实 GitHub Issue 来评估编程能力,引发了整个 AI 行业的高度关注。但很快研究者们发现:SWE-Bench 的题目难度不足以区分顶尖模型——GPT-4、Claude 都已接近 50% 以上的解决率。
Scale AI(知名数据标注和 AI 评测公司)认为:SWE-Bench 存在数据泄露风险,且任务规模偏简单,无法真正衡量商业级代码库中的长时推理能力。于是 2025 年 9 月,他们推出了 SWE-Bench Pro——一个更苛刻、更贴近真实企业场景的 AI 编程评测基准。
SWE-Bench Pro 采用公开 / 隐藏 / 商业三段式结构:
公开集(Public Set):题目来自 11 个真实开源项目,公开可查,包括 NodeBB(论坛系统)、Ansible(自动化运维)、Qutebrowser(浏览器)、Navidrome(音乐服务器)、Tutanota(安全邮件)等。这些项目的共同特点是代码库体积大、提交历史复杂、测试套件规范。
隐藏集(Held-out Set):来自另外 12 个仓库,题目不公开,参赛者只能提交代码后由平台自动评测结果,防止针对题目的过拟合。
商业集(Commercial Set):与 18 家初创公司合作,使用其真实代码库进行评测,完全保密。商业集的结果仅公布数字,不透露具体公司和题目。
SWE-Bench Pro 的评测流程高度工程化,分为三个核心步骤:
第一步:补丁生成(Scaffold)
项目集成了 SWE-agent 作为默认 scaffold。SWE-agent 是普林斯顿大学 NLP 组开发的开源项目,专为 SWE-bench 类任务设计的 Agent 框架。其工作流程为:接收问题描述,通过 bash 命令浏览代码库,使用编辑器修改文件,反复执行测试验证,最终输出 patch 文件。项目还提供了轻量版 mini-swe-agent,在保证效果的同时大幅降低计算开销。
第二步:补丁收集(gather_patches.py)
模型生成的 .pred 文件通过 helper 脚本聚合成统一格式的 JSON 文件,包含 instance_id、patch 内容(git diff 格式)和模型标识。
第三步:Docker 容器化评测
每个实例对应一个预构建的 Docker 镜像(托管于 Docker Hub:jefzda/sweap-images),镜像内包含项目代码库的特定版本、依赖环境,以及测试脚本。评测时将 patch 应用到镜像内,执行对应测试用例,根据 PASS/FAIL 判断是否成功。
评测脚本 swe_bench_pro_eval.py 的核心逻辑:解析 CSV 中的测试配置,从 Docker Hub 拉取镜像,在容器内应用 patch,执行 run_script.sh,比对 PASS_TO_PASS 和 FAIL_TO_PASS,最终计算 Pass@1 指标。评测支持并发执行(ThreadPoolExecutor)和 Modal 云端 / 本地 Docker 两种模式。
Scale AI 发布的论文揭示了一个令人警醒的事实:在统一 scaffold 条件下,GPT-4o、Claude Sonnet、GPT-5 等主流模型在 SWE-Bench Pro 上的 Pass@1 均未超过 25%。截至论文发布,GPT-5 以 23.3% 的得分位居榜首——这意味着在超过四分之三的企业级编程任务上,即便是最强模型也束手无策。
相比之下,SWE-Bench 公开集中 GPT-4o 已超过 50%。这说明任务难度的提升幅度远超模型能力的增长,"AI 编程全面替代人类工程师"的愿景仍相当遥远。
该项目仓库的核心结构包括:
swe_bench_pro_eval.py(主评测脚本):核心调度逻辑,支持 Modal 云端和本地 Docker 两种评测模式,内置并发执行(ThreadPoolExecutor)和测试结果聚合。helper_code/:辅助工具集,gather_patches.py 负责将分散的预测结果聚合为统一 JSON;extract_gold_patches.py 从 HuggingFace 数据集提取金标准 patch;generate_sweagent_instances.py 生成 SWE-agent 配置文件。run_scripts/:包含数百个以 instance_ 开头的子目录,每个对应一个测试实例,内含 run_script.sh(测试执行入口)和 parser.py(结果解析),镜像构建时复制到 Docker 镜像内。dockerfiles/base_dockerfile/ 和 dockerfiles/instance_dockerfile/:两层镜像体系,base 层提供统一依赖环境,instance 层为每个测试实例定制代码库版本和环境变量。SWE-agent/:作为 git submodule 引入的 SWE-agent 框架,是补丁生成的核心工具链。error_analysis/:包含 GPT-4o 和 Claude Sonnet 4.5 在各实例上的错误分析 CSV,供研究者深入理解模型弱点。适合场景:
门槛提示:
jefzda/sweap-images),避免自行构建(构建过程极慢)快速上手(推荐路径):
# 1. 拉取测试数据
python -c "from datasets import load_dataset; ds = load_dataset('ScaleAI/SWE-bench_Pro', split='test')"
# 2. 使用 mini-swe-agent 生成 patch(轻量,无需 Modal)
# 详见 SWE-agent submodule 文档
# 3. 收集并评测
python helper_code/gather_patches.py --directory results/ --prefix mymodel --output patches.json
python swe_bench_pro_eval.py --raw_sample_path=swe_bench_pro_full.csv \
--patch_path=patches.json --output_dir=output/ \
--scripts_dir=run_scripts --num_workers=50 \
--dockerhub_username=jefzda
SWE-Bench Pro 的出现重新划定了 AI 编程的参照线。它的意义不仅在于提供一个更难的基准,更在于揭示了当前 AI 在复杂长程推理方面的系统性不足。当 Pass@1 < 25% 时,我们清楚地看到:AI 尚未掌握真实软件开发的核心能力——理解上下文、追踪依赖、维护大型代码库。
但换个角度看,45.8%(Live-SWE-agent)、43.6%(SWE-agent)等开源方案已经快速追赶,与商业模型的差距正在缩小。SWE-bench Leaderboard(swebench.com)上,开源模型与闭源模型的交锋正酣——这是 AI 编程领域最具生命力的竞争场域之一。
对于关注 AI 编程进展的爱好者,SWE-Bench Pro 是一扇窗口;对于开发者,它是一套基准工具;对于整个行业,它是一个警示:通用人工智能的编程能力,远未到达终点。