SWE-bench 软件修复基准

用真实 GitHub 问题评测模型生成的软件修复补丁。

Star 数
★ 6.2k
最近更新
1 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具代码库 / SDK
可在哪里用
兼容但需适配
费用
软件免费,模型调用费用自付
上手难度
高 · 需要较重的基础设施
开始前需要
Python 3.8+DockerShell / 命令行网络访问本地文件系统
典型场景
评测研究人员要比较不同模型在真实 GitHub issue 修复任务上的补丁成功率时,可对同一预测文件运行 harness。
不适合
  • 存储不足120GB或内存低于16GB的机器
  • 使用ARM架构且要求稳定支持的开发者

这个 Agent 能做什么,适合哪些场景?

SWE-bench 是面向真实 GitHub 软件问题的大语言模型评测基准:模型接收代码库和 issue,并生成解决该问题的补丁。仓库提供代码、数据及 Docker 化评测 harness,支持 SWE-bench、Lite、Verified 和 Multimodal 数据集。评测通过 swebench.harness.run_evaluation 执行,生成镜像构建日志、评测日志和最终结果目录。它也提供本地模型与 API 模型的推理入口,以及在自有仓库上收集新任务的流程。采用前应预留较高的本地资源;文档建议 x86_64 环境至少具备 120GB 可用存储、16GB 内存和 8 核 CPU。

使用者先以 datasets.load_dataset('princeton-nlp/SWE-bench', split='test') 读取数据集,或在评测命令中指定数据集名称。随后,python -m swebench.harness.run_evaluation 读取预测补丁或 gold 金标准补丁,在 Docker 环境中运行评测;可通过 --dataset_name、--predictions_path、--max_workers、--instance_ids 与 --run_id 控制执行。运行会在当前目录写入 logs/build_images 的镜像构建日志、logs/run_evaluation 的评测日志,并将最终结果保存到 evaluation_results。仓库还文档化了对现有本地模型和 API 模型执行 inference 的路径,即向模型提供仓库与 issue 来生成修复。

  1. 评测研究人员要比较不同模型在真实 GitHub issue 修复任务上的补丁成功率时,可对同一预测文件运行 harness。
  2. 模型团队在提交评测前想验证标准答案执行链路时,可用 --predictions_path gold 和单个实例运行验证。
  3. 资源有限的工程团队需要较小评测集进行快速回归时,可指定 princeton-nlp/SWE-bench_Lite。
  4. 希望从现有本地或 API 模型获得修复候选的研究者,可使用仓库文档化的 inference 流程,向模型输入代码库和 issue。
  5. 希望从内部仓库构建类似软件修复任务的研究者,可使用仓库的数据收集流程;文档同时说明该类实例创建咨询目前暂停支持。
  6. 需要在云端而非本机运行评测的团队,可使用文档提到的 Modal 选项,或使用 sb-cli 进行基于 AWS 的自动评测。

如何安装或部署这个 Agent?

先安装 Docker;源码安装命令为:

git clone [email protected]:princeton-nlp/SWE-bench.git
cd SWE-bench
pip install -e .

README 标明 Python 3.8+。未文档化任何应用层凭据;拉取 Docker 镜像和下载数据需要网络访问。可用以下命令验证安装:

python -m swebench.harness.run_evaluation --predictions_path gold --max_workers 1 --instance_ids sympy__sympy-20590 --run_id validate-gold

在 Mac M 系列或其他 ARM 系统上,README 要求添加 --namespace '',以在本地构建评测镜像。

如何使用这个 Agent?

评测 SWE-bench Lite 的预测补丁:

python -m swebench.harness.run_evaluation --dataset_name princeton-nlp/SWE-bench_Lite --predictions_path <path_to_predictions> --max_workers <num_workers> --run_id <run_id>

将 <path_to_predictions> 替换为预测文件路径;使用 gold 可验证金标准补丁。可加 --modal true 在 Modal 上运行。完整参数列表可通过 python -m swebench.harness.run_evaluation --help 查看。

这个 Agent 有哪些优点和局限?

优点
  • 以真实 GitHub issue 和对应代码库为单位评测补丁,而非仅评估文本回答。
  • Docker 化评测 harness 提供可复现的执行边界,并明确产出构建日志、评测日志和结果目录。
  • 同一仓库覆盖标准版、Lite、Verified 与 Multimodal 数据集;Verified 被描述为 500 个经真实软件工程师确认可解决的问题。
  • 支持评测已有预测,也文档化了本地模型和 API 模型的 inference 路径。
局限
  • 本地评测资源开销高:文档建议至少 120GB 可用存储、16GB 内存和 8 核 CPU。
  • Docker 是运行评测的前提;默认镜像为 Linux 构建,ARM 支持仍属实验性。
  • Multimodal 测试集评测保持私有,需通过 sb-cli 提交到排行榜,不能按 README 所述方式本地运行该测试评测。
  • 数据收集功能虽存在,但仓库说明目前暂时暂停支持有关创建 SWE-bench 实例的咨询。

这个 Agent 与同类方案有什么区别?

对于非本地评测,仓库列出两条替代执行路径:sb-cli 用于基于 AWS 的自动评测,Modal 用于云端运行评测;未提供两者的功能或成本对比。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
SWE-bench 软件修复基准 当前 45 · 缺口较多 命令行工具免费 + 模型费 ★ 6.2k 1 个月前 Python —
SWE-Bench Pro 55 · 缺口较多 命令行工具免费 ★ 557 1 个月前 Python —
Multi-SWE-bench 46 · 缺口较多 命令行工具免费 ★ 364 10 个月前 Python —
mini-swe-agent 54 · 缺口较多 命令行工具免费 + 模型费 ★ 9.2k 4 天前 Python —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
45/ 100 五分制 2.3 / 5
信任安全 0/29
可靠稳定 8/14
适用触发 12/18
规范维护 11/18
有效结果 9/13
证据核验 5/8
查看各维度的扣分理由
信任安全0 / 29 · 0.0/5

该仓库是一个基准测试工具,不涉及代理权限管理、用户确认、数据流透明性或敏感数据处理。没有证据表明存在恶意行为,但也没有任何安全机制。因此所有信任标准得分为0。

可靠稳定8 / 14 · 2.9/5

自一致性:README和pyproject.toml中的安装说明一致,测试文件与文档中的示例一致。依赖可用性:依赖列表明确,但未锁定版本,可能影响可复现性。失败消息:测试仅检查返回码,未验证错误消息质量。

适用触发12 / 18 · 3.3/5

目标受众明确为研究人员和开发者,使用场景清晰。能力边界在README中说明(如资源需求、arm64支持)。触发精度:命令行参数明确。环境适配:支持Docker和Modal,但arm64为实验性。

规范维护11 / 18 · 3.1/5

信息架构清晰,有README、文档链接和目录结构。安装说明详细。命名稳定,包名为swebench。示例和FAQ:README提供了示例命令,但无FAQ。已知限制:在README中提及资源需求和arm64支持。许可证:MIT。版本变更日志:未提供。维护责任:有联系人和贡献指南。

有效结果9 / 13 · 3.5/5

输出可用性:评估结果以JSON格式存储,便于使用。边际价值:作为基准测试工具,提供了标准化的评估方法。成本效益:资源需求高,但提供了云选项。

证据核验5 / 8 · 3.1/5

声明可追溯:README引用了论文和数据集。跨来源佐证:有多个相关项目链接。事实与推断分离:README区分了事实和推荐。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
  • 该仓库是基准测试工具,不是代理产品,因此信任相关标准不适用。
  • 依赖未锁定版本,可能影响可复现性。
  • 未提供版本变更日志。
证据充分度:低 评估于 2026年8月9日 审查版本 cd37836ffec0 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →
你是这个项目的维护者?把 FARS 徽章加到 README

徽章显示当前的评审分数和结论,点击回到本页。重新评审后约一小时内更新。

FARS

[![FARS 评测](https://followagents.com/badge/swe-bench.svg?lang=zh)](https://followagents.com/zh/agents/swe-bench)
<a href="https://followagents.com/zh/agents/swe-bench"><img src="https://followagents.com/badge/swe-bench.svg?lang=zh" alt="FARS 评测"></a>

常见问题

运行本地评测需要什么机器条件?
README 建议使用 x86_64 机器,并至少预留 120GB 可用存储、16GB 内存和 8 个 CPU 核;--max_workers 建议低于 min(0.75 * os.cpu_count(), 24)。
Apple Silicon 或其他 ARM 机器可以运行吗?
可以尝试,但 ARM 支持标为实验性。验证或评测命令需添加 --namespace '',从而在本机构建评测镜像。
是否可以评测 SWE-bench Multimodal 的测试集?
README 说明其测试集评测保持私有;需通过 sb-cli 向排行榜提交。
需要哪些账号或密钥?
README 未说明应用层账号、API 密钥或凭据要求。源码安装使用 GitHub SSH 克隆示例,评测依赖 Docker,并会拉取镜像。
结果和排错信息保存在哪里?
镜像构建日志写入 logs/build_images,评测日志写入 logs/run_evaluation,最终结果写入 evaluation_results。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents