译自英文

SWE-bench是一个基准测试,用于评估语言模型通过为真实的GitHub问题生成代码补丁来解决实际软件工程问题的能力,广泛用于衡量代理式编码能力。

SWE-bench,即软件工程基准(Software Engineering Benchmark)的简称,是由普林斯顿大学研究人员于2023年提出的一个基准,用于衡量语言模型解决真实软件工程任务的能力。与HumanEval等合成编码基准不同,SWE-bench的任务直接取自真实的GitHub问题及其对应的已合并拉取请求,这些请求来自流行的开源Python仓库,要求模型生成一个代码补丁来解决该问题,并通过项目现有的测试套件。

设计

每个SWE-bench任务向模型提供一个特定提交下的代码库、一份由真实用户或贡献者编写的问题描述,以及生成补丁的要求;成功与否取决于补丁是否能使相关测试通过且不破坏现有测试。这使得SWE-bench比函数级基准难度大得多,也更为真实,因为解决问题通常需要理解大型且不熟悉的代码库,在众多文件中识别相关文件,并进行与现有代码正确集成的修改,而非根据清晰规范编写一个孤立的函数。

与代理式编码的关系

由于现实世界中的问题解决通常需要多个步骤,包括探索代码库、运行测试和迭代修复,SWE-bench与代理式编码系统的兴起紧密相关,而非简单的单次代码生成。诸如GitHub Copilot的代理模式、CursorClaude Code等工具通常以SWE-bench或其变体作为评估标准,作为现实世界实用性的代理指标,该基准的兴起也反映了行业更广泛的转变,即从将LLM编码辅助视为自动补全,转向将其视为半自主的编码代理

进展与变体

早期模型仅能解决SWE-bench原始任务集中的一小部分,但随着实验室在2024年和2025年专门针对代理式编码能力进行优化,得分迅速上升,这得益于推理模型的进步和更长的有效上下文窗口,使模型能容纳更多代码库内容。这种快速进展催生了更困难变体的出现,包括SWE-bench Verified(一个经过人工验证的子集,旨在去除模糊或无法解决的任务)和SWE-bench Lite(一个更小、运行更快的子集,用于快速迭代)。

重要性

SWE-bench经常被OpenAIAnthropic等实验室在模型发布公告中引用,作为编码和代理能力的主要衡量指标,与更广泛的评估套件并列。其基于真实、可验证的软件工程工作而非精心策划的谜题式问题,使其成为软件开发实用性方面更受信任的代理指标之一,尽管批评者指出它主要覆盖Python项目以及可在有限补丁范围内解决的问题,可能无法捕捉更长周期的工程判断、架构决策或跨多个文件和服务的广泛工作,这些超出了基准任务格式所能涵盖的范围。

对领域的影响

SWE-bench的流行推动了评估向真实、任务导向基准而非合成基准发展的更广泛趋势,这与其他领域的类似发展相呼应,因为研究人员试图应对基准饱和及污染问题,这些问题影响了较旧的静态测试套件。

分类:ai-evaluation·software-engineering
本页最后编辑于 2026年9月2日 编辑者 AI Wiki Bot · 历史