SWE-Bench Pro
评测模型与编码智能体解决长周期软件工程任务的能力。
- Star 数
- ★ 534
- 最近更新
- 10 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 55/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 模型研发团队需要比较不同模型或编码 harness 在长周期仓库级任务上的补丁解决率。
- 不适合
- 需要开箱即用编码助手的开发者
- 无法运行容器化评测的团队
- 只想评测短小、孤立代码题的用户
这个 Agent 能做什么,适合哪些场景?
SWE-Bench Pro 是面向长周期软件工程任务的基准、数据集与评测工具集,而不是直接面向开发者的编码助手。每个任务向模型提供代码库和 issue,并要求其生成解决问题的补丁。V2 提供跨 11 个仓库的 642 个已验证任务、HARD-51 子集,以及采用 Harbor 格式的任务目录、验证器、参考解法和公开容器镜像。仓库还保留原有的 v1 流程,包括 `swe_bench_pro_eval.py`、运行脚本、Dockerfile 和 Docker Hub 镜像。用户可通过 Hugging Face 加载数据,使用自选 harness 或仓库中的 SWE-agent 子模块生成 `.pred` 文件,再汇总成 JSON 并执行容器化评测。
它从 Hugging Face 的 ScaleAI/SWE-bench_Pro 数据集中读取任务,让所选模型或 harness 针对代码库与 issue 生成补丁。SWE-agent 子模块提供补丁生成脚手架,也可使用其他 harness;生成结果保存为每个实例的 .pred 文件。helper_code/gather_patches.py 将这些文件汇总为包含 instance_id、patch 和 prefix 的 JSON 数组。v1 的 swe_bench_pro_eval.py 使用任务样本、补丁 JSON、run_scripts 和容器镜像执行并行评测;V2 则把任务封装为 v2/tasks/ 下的 Harbor 目录,并随附验证器、参考解法及 GHCR 镜像。V2 还提供 HARD-51 和锁定协议工具,用于离线智能体阶段与全新沙箱中的重新评分。
- 模型研发团队需要比较不同模型或编码 harness 在长周期仓库级任务上的补丁解决率。
- 智能体开发者希望使用公开、可复现的容器环境验证补丁,而不是只做文本质量判断。
- 研究人员需要分析完整 V2、HARD-51 或原始 v1 数据集上的性能差异。
- 排行榜参赛团队需要复现 SWE-agent 或 mini-swe-agent 的实验流程并整理提交结果。
- 评测基础设施工程师需要研究离线智能体执行和全新沙箱复评的锁定协议。
如何安装或部署这个 Agent?
先安装仓库声明的 Python 依赖:
pip install -r requirements.txt安装 Docker,以便运行可复现的容器化评测。v1 流程推荐配置 Modal:
modal setup # Follow the prompts to generate your token随后确认 ~/.modal.toml 包含:
token_id = <token id>
token_secret = <token secret>
active = true如果使用 v1 的本地 Docker Beta 路径,则不需要额外的 Modal 配置,运行评测时加入 --use_local_docker。V2 评测使用 Harbor;README 展示了 harbor run 调用,但没有给出 Harbor 的安装命令。
如何使用这个 Agent?
加载默认的 V2 测试集、HARD-51 或原始 v1 数据集:
from datasets import load_dataset
v2 = load_dataset('ScaleAI/SWE-bench_Pro', split='test') # V2, 642 tasks (default config)
hard = load_dataset('ScaleAI/SWE-bench_Pro', 'hard', split='test') # HARD-51
v1 = load_dataset('ScaleAI/SWE-bench_Pro', 'v1', split='test') # original 731 tasks使用自选 harness 生成 .pred 补丁文件;如采用 SWE-agent,应先按 SWE-agent git 子模块中的说明配置并运行脚手架。然后汇总预测:
python helper_code/gather_patches.py \
--directory swe_bench_pro_results/sample1 \
--prefix sample1 \
--output sample1_patches.json使用 v1 评测器执行评测:
python swe_bench_pro_eval.py \
--raw_sample_path=swe_bench_pro_full.csv \
--patch_path=<your_patches>.json \
--output_dir=<output_directory> \
--scripts_dir=run_scripts \
--num_workers=100 \
--dockerhub_username=jefzdaV2 可通过 Harbor 执行任务;以下命令用参考补丁运行 50 个并发任务:
harbor run -p v2/tasks -e modal -n 50 -a oracle这个 Agent 有哪些优点和局限?
- V2 包含 642 个经过验证、覆盖 11 个仓库的任务,并提供更具挑战性的 HARD-51 子集。
- 每个 V2 任务都附带验证器、参考解法和无需登录即可拉取的公开 GHCR 容器镜像。
- 锁定协议将离线智能体阶段与全新沙箱复评分开,有助于保持评测边界一致。
- 既支持自选补丁生成 harness,也提供 SWE-agent 和 mini-swe-agent 相关流程。
- v1 与 V2 都被保留,便于复现旧结果并迁移到新格式。
- 它是基准与评测基础设施,不会直接充当日常编码助手或自动修复产品。
- 完整流程涉及 Python 依赖、Docker、数据下载、补丁汇总和评测命令,配置成本高于单命令工具。
- v1 推荐使用 Modal;本地 Docker 路径被明确标为 Beta。
- v1 与 V2 使用不同的任务格式、镜像来源和评测流程,迁移时需要区分两套管线。
- README 提到排行榜存在已识别的问题并正在处理,采用排行榜数据时需要留意其状态。
这个 Agent 与同类方案有什么区别?
相较于其灵感来源 SWE-Bench,SWE-Bench Pro 明确聚焦更具挑战性的长周期软件工程任务。仓库同时展示 SWE-agent 与 mini-swe-agent 作为补丁生成脚手架;README 称 mini-swe-agent 在 Sonnet 4.5 上的结果与 SWE-agent 可比,但未提供更广泛的直接比较。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| SWE-Bench Pro 当前 | 55 · 缺口较多 | 命令行工具免费 | ★ 534 | 10 天前 | Python | — |
| SWE-bench 软件修复基准 | 45 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 6k | 15 天前 | Python | — |
| Multi-SWE-bench | 46 · 缺口较多 | 命令行工具免费 | ★ 362 | 9 个月前 | Python | — |
| FrontierAgent | 74 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 5k | 今天 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 说明了数据集、容器镜像、Modal、Docker 和输出文件的主要流向,测试脚本还通过 trap、Git 恢复和临时文件清理提供了有限回滚能力,并给出论文、上游 SWE-bench、贡献者及数据集归属。扣分原因是没有权限最小化或操作前确认机制;脚本会安装软件包、启动 Redis、修改及删除测试文件,并且依赖网络、容器和可选云服务。Modal 令牌位置虽有说明,但没有密钥保护、轮换或日志脱敏指导。Python 依赖只有宽松下界,任务脚本还执行未锁定的 npm install,未见锁定、哈希、漏洞扫描或供应链缓解措施。
V1/V2 的划分、补丁收集格式、评测步骤和所示脚本整体一致;解析器产生结构化测试结果,验证器保留原始日志并报告缺失测试。扣分原因是依赖外部数据集、镜像仓库、Docker、Modal、npm 和 Redis,且版本约束宽松;run_script.sh 在超时或 Mocha 失败时输出空测试 JSON,可能掩盖原始故障并将其转化为较不明确的缺失测试失败。没有把未执行的确定性或结果正确性计入评分。
材料明确面向评测长周期软件工程代理的人群,覆盖任意补丁生成工具、SWE-agent、本地模型、Modal 和本地 Docker,并区分 V2、HARD-51 与遗留 V1。命令、参数和选择测试文件的行为较明确。扣分原因是本地 Docker 被标为 Beta,环境假设偏重 Linux、Bash、Docker 和特定目录布局;没有完整的资源规模适配、非容器环境或替代云后端说明。
README 按概览、安装、镜像、使用和复现实验组织,包含可复制命令、JSON 示例、版本新闻、已知排行榜问题及 V1/V2 迁移说明。MIT 正文完整,因此许可证满分。扣分原因是没有独立 FAQ、正式发布记录或系统化变更日志;命名同时涉及 SWE-Bench Pro、SWE-bench_Pro、V1/V2 及多种镜像路径,虽可理解但不完全统一。版权方有标注,但未验证的发布者身份、缺少明确维护联系人和支持或安全报告渠道,使维护责任只能部分确认。
框架把代理补丁整理为统一 JSON,并提供容器化验证、逐测试状态、日志和 reward 文件,对比较软件工程代理有明确增量价值。扣分原因是这里只提供静态材料,不能确认实际结果质量;推荐命令使用 100 个 worker,且可能涉及模型推理、云计算、大量镜像下载和 npm 安装,却没有成本、运行时间、磁盘、内存或缩减配置的量化指导。
关键主张通常指向具体目录、数据配置、镜像命名、命令和输出结构,README 与解析器、运行脚本和许可证之间有较好的内部对应;V1 与 V2、公共与私有排行榜也被明确区分。扣分原因是“642 个已验证任务”和“oracle 642/642”等结论在所给文件中主要是声明,未附汇总证据或可审计结果;外部论文、数据集和排行榜未在本次静态审查中独立核验,部分复现表述也没有清楚区分作者确认与独立验证。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 在隔离容器中运行评测脚本;它们会安装依赖、启动服务、重写测试文件并删除匹配路径。
- 在投入大规模计算前锁定并审计 Python、npm、容器镜像和子模块版本;当前依赖约束不足以提供可重复或供应链安全保证。
- 不要把超时后产生的空测试结果误判为普通测试失败;应同时检查保留的 stdout、stderr 和运行退出状态。
- Modal 配置包含长期令牌信息;限制文件权限,避免将配置或日志提交到仓库,并按组织政策轮换密钥。
- 642/642、排行榜复现和验证状态均应通过独立运行或附带结果制品核验;本评估未执行代码。
常见问题
它是可以直接处理代码库的编码智能体吗?
V2 与 v1 有什么区别?
swe_bench_pro_eval.py、运行脚本及 Docker Hub 镜像。运行评测必须使用 Modal 吗?
--use_local_docker 的本地 Docker Beta 路径。V2 示例则通过 Harbor 的 Modal 环境运行。容器镜像需要登录才能下载吗?
docker pull 无需登录。v1 使用 jefzda/sweap-images Docker Hub 仓库中的预构建镜像。能否使用自己的模型或运行框架?
vllm。具体适配工作取决于所选 harness。