SWE-bench:让 AI 修真实的程序 Bug
SWE-bench(Software Engineering Benchmark)是一个从 GitHub 上的真实开源项目里取出实际 Bug 工单、要求 AI 写出修复补丁并通过原有测试的测试集——它考的不是"能不能讲出编程知识",而是"能不能真正修好代码"。
用一个类比理解
想象你是一家软件公司的新程序员。第一天上班,前辈扔给你一个"BUG-4721:用户头像上传失败"的任务单,附带整个代码库,要你找到问题所在并提交修复。SWE-bench 做的就是这件事:把真实项目的 Bug 单交给 AI,看它能不能提交一个能通过原有测试的正确补丁。
具体怎么测的?
测试集里有来自数百个真实 Python 开源项目(比如 Django、pandas、Flask 等知名库)的数百个 Bug 工单。每个工单是真实用户报告的问题,配套有已经写好的测试用例——只要 AI 的修复能让测试通过,就算答对。这意味着,AI 必须:读懂几千行甚至几万行的真实代码、定位问题所在、写出不破坏其他功能的修复,全部自主完成。
AI 现在做得怎样?
这曾经是公认最难的编程测试,早期模型几乎无法完成。随着 AI Agent 能力的提升(AI 能主动翻代码、运行调试),完成率不断提升,顶级模型目前的完成率已接近 95%。这是迄今为止对 AI 编程能力最有说服力的指标之一。
它能说明什么?
通过 SWE-bench 成绩,你可以大致判断一个 AI 辅助编程工具"能不能帮你处理真实的开发任务",而不只是"会不会背诵算法题答案"。对开发者来说,这是比任何理论题更有参考价值的指标。
有什么局限?
SWE-bench 目前以 Python 项目为主,对其他语言的代表性有限。另外,修 Bug 只是软件开发的一部分;写新功能、做架构设计的能力,SWE-bench 无法衡量。