Benchmark · agentic
SWE-bench Verified
测试 AI 智能体能否端到端地解决真实的 GitHub issue。"Verified" 集是从流行的开源 Python 仓库中挑选的 500 个经人工验证的任务。
了解更多
- 示例
- 给定一份缺陷报告和对应仓库,模型必须生成一个代码补丁——例如修复一个出错的日期解析函数,让项目的测试套件通过。
- 评分方式
- 已解决 issue 的百分比——通常以 pass@1(一次尝试)报告。越高越好。
- 验证方式
- 完全自动:应用生成的补丁,并在沙箱中运行项目真实的隐藏单元测试。只有当所有目标测试都通过且没有任何回归时,任务才算解决。
- 为何重要
- 当前最主流的真实世界编码智能体基准,也是每次前沿模型发布中的标志性数字;这里的进展反映了智能体距离自主软件工程还有多远。
示例解析
任务
仓库
django/django,处于某个固定的基础提交。缺陷报告:django.utils.text.slugify("___This-is-a-Test___", allow_unicode=True) 返回 '___this-is-a-test___',但开头和结尾的下划线与连字符应被去除,使结果为 'this-is-a-test'。模型只拿到 issue 文本和该仓库,必须输出一个 unified diff 格式的补丁。解答
--- a/django/utils/text.py
+++ b/django/utils/text.py
@@ def slugify(value, allow_unicode=False):
value = re.sub(r"[^\w\s-]", "", value.lower())
- return re.sub(r"[-\s]+", "-", value)
+ return re.sub(r"[-\s]+", "-", value).strip("-_")
解析
slugify 会合并内部的分隔符,但从不修剪两端的
-/_,因此在最后一个 re.sub 后追加 .strip("-_") 即可去除它们;该补丁改动最小,并保留其余所有行为。SWE-bench Verified 将补丁应用到基础提交处的仓库,并通过运行隐藏测试套件评分——只有当所有 FAIL_TO_PASS 测试都变为通过、同时所有 PASS_TO_PASS 测试保持通过时,才算解决。