SWE-bench 软件修复基准
用真实 GitHub 问题评测模型生成的软件修复补丁。
按维度查看评分与理由
该仓库是一个基准测试工具,不涉及代理权限管理、用户确认、数据流透明性或敏感数据处理。没有证据表明存在恶意行为,但也没有任何安全机制。因此所有信任标准得分为0。
自一致性:README和pyproject.toml中的安装说明一致,测试文件与文档中的示例一致。依赖可用性:依赖列表明确,但未锁定版本,可能影响可复现性。失败消息:测试仅检查返回码,未验证错误消息质量。
目标受众明确为研究人员和开发者,使用场景清晰。能力边界在README中说明(如资源需求、arm64支持)。触发精度:命令行参数明确。环境适配:支持Docker和Modal,但arm64为实验性。
信息架构清晰,有README、文档链接和目录结构。安装说明详细。命名稳定,包名为swebench。示例和FAQ:README提供了示例命令,但无FAQ。已知限制:在README中提及资源需求和arm64支持。许可证:MIT。版本变更日志:未提供。维护责任:有联系人和贡献指南。
输出可用性:评估结果以JSON格式存储,便于使用。边际价值:作为基准测试工具,提供了标准化的评估方法。成本效益:资源需求高,但提供了云选项。
声明可追溯:README引用了论文和数据集。跨来源佐证:有多个相关项目链接。事实与推断分离:README区分了事实和推荐。
- 该仓库是基准测试工具,不是代理产品,因此信任相关标准不适用。
- 依赖未锁定版本,可能影响可复现性。
- 未提供版本变更日志。
这个 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 来生成修复。
- 评测研究人员要比较不同模型在真实 GitHub issue 修复任务上的补丁成功率时,可对同一预测文件运行 harness。
- 模型团队在提交评测前想验证标准答案执行链路时,可用
--predictions_path gold和单个实例运行验证。 - 资源有限的工程团队需要较小评测集进行快速回归时,可指定
princeton-nlp/SWE-bench_Lite。 - 希望从现有本地或 API 模型获得修复候选的研究者,可使用仓库文档化的 inference 流程,向模型输入代码库和 issue。
- 希望从内部仓库构建类似软件修复任务的研究者,可使用仓库的数据收集流程;文档同时说明该类实例创建咨询目前暂停支持。
- 需要在云端而非本机运行评测的团队,可使用文档提到的 Modal 选项,或使用 sb-cli 进行基于 AWS 的自动评测。
这个 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?
先安装 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 与同类方案有什么区别?
对于非本地评测,仓库列出两条替代执行路径:sb-cli 用于基于 AWS 的自动评测,Modal 用于云端运行评测;未提供两者的功能或成本对比。
常见问题
运行本地评测需要什么机器条件?
--max_workers 建议低于 min(0.75 * os.cpu_count(), 24)。Apple Silicon 或其他 ARM 机器可以运行吗?
--namespace '',从而在本机构建评测镜像。是否可以评测 SWE-bench Multimodal 的测试集?
需要哪些账号或密钥?
结果和排错信息保存在哪里?
logs/build_images,评测日志写入 logs/run_evaluation,最终结果写入 evaluation_results。