Snorkel AI 上线了一个新的开源基准测试网站,叫 Senior SWE-Bench,用来衡量 AI 编程 agent 能不能像资深工程师一样干活,而不是像个只会照单抓药的初级程序员。网站首页放出的一道题目很能说明问题:给开源图书元数据项目 BookWorm 的导入流水线加一个 Google Books 元数据回退源,需求写得像一份工程规格书——新建哪几个函数、URL 参数怎么拼、多个匹配结果时该记什么警告日志、原有字段该保留还是覆盖,全部列得清清楚楚。

这道题选在一个微妙的时间点冒出来。就在不久前,OpenAI 在官方博客里明确表态,不再用自己当年联合发布的 SWE-bench Verified 衡量前沿编程能力,理由是这套跑了两年多的标准存在测试缺陷、还有模型在训练中见过标准答案导致的记忆污染问题。老标杆刚被亲手缔造者判了出局,新来的 Senior SWE-Bench 想接班,但目前能看到的只有官网上这一道题的细节,看不到排行榜,也看不到第三方跑分。

一道题里藏着的“判断力”考验

传统 SWE-bench 系列的任务,通常来自真实 GitHub issue,但issue 本身往往已经写得很具体——报错信息、复现步骤、甚至修复思路都摆在那儿,agent 更多是把自然语言“翻译”成代码补丁。Senior SWE-Bench 的卖点是反过来:故意减少这种过度具体化的指令,让 agent 面对更接近真实工作场景的模糊需求。

但从 BookWorm 这道题的公开细节看,它并没有完全放开手——STAGED_SOURCES 要加哪个字符串、URL 参数名叫什么、遇到多个匹配结果该跳过并记日志,这些要求依然写得极细。这更像是把“怎么做”的自由度收窄到接口设计和边界情况处理上:agent 要自己判断什么时候该新建函数、什么时候该复用已有逻辑、字段冲突时该扩展还是覆盖。这确实比一句“修复某某 bug”的传统 issue 更接近工程师日常的判断工作,但离“完全开放的模糊需求”还有距离。

两种任务描述方式对比 传统 SWE-bench 任务 issue 已给出报错信息 复现步骤基本写全 修复思路接近明说 考验:自然语言转代码 更像“翻译”而非判断 Senior SWE-Bench 任务 给出接口/字段级硬性要求 边界情况需自行判断 冲突逻辑需权衡取舍 考验:接口设计+边界处理 更接近日常工程判断

老王刚被亲手拉下马

SWE-bench Verified 是行业跑了很久的标配跑分基准,由 OpenAI 联合发布的 500 条人工验证子集,本意就是解决原版 SWE-bench 里表述模糊、测试损坏的问题。它一度是最常被各家实验室拿来秀成绩的基准。但 OpenAI 自己在官方博客里承认,这套基准已经出现两个致命伤:一部分测试用例本身有缺陷,会把正确答案判成错误;另一部分模型在训练过程中很可能见过标准补丁,导致分数虚高,也就是所谓的训练数据污染。OpenAI 明确转向推荐 SWE-bench Pro。

这不是某个新玩家的攻击性判断,而是基准的联合发布方自己承认“饱和”。这意味着,任何打着“下一代 SWE-bench”旗号出场的新基准,如果不能证明自己没有类似的测试缺陷和污染风险,迟早会被问同一个问题。

两条不同的接班路线

同期还有另一个方向的尝试叫 Multi-SWE-bench,走的是完全不同的路子——它盯的是 SWE-bench 系列语言覆盖过窄的问题,把测试范围从原来几乎只有 Python 扩展到 Java、TypeScript、Go、Rust、C++ 等多种语言生态。

Senior SWE-Bench 选的是另一条路:不追求语言覆盖广度,而是死磕任务的开放性和工程判断力。这两条路线其实回答的是两个不同的问题——“agent 能不能跨语言干活”和“agent 能不能像资深工程师一样拿捏模糊需求”,谁能真正接班 SWE-bench Verified 留下的空位,取决于哪种缺陷更致命,目前还没有定论。

新基准最大的软肋:没有排行榜

检索现有公开信息,看不到 Senior SWE-Bench 被独立第三方复现或引用的记录,也没有主流实验室公开跑分对比。换句话说,它目前更像是 Snorkel AI 自建的一套评测样例展示,还没有经历“被社区拿来刷分、再被发现漏洞”这个 SWE-bench Verified 走过的完整周期。

这对想用它判断产品能力的企业工程团队是个提醒:一道题设计得再精巧,也不等于一套经得起大规模刷分和审计的基准。真正要看的信号,是它有没有公开任务构建方法论、有没有主流实验室愿意跑分对比、能不能在一两年内不被指出饱和或污染——这几条,目前都还没有答案。