跳到主要内容
会 debug 的人一抓一大把,会埋坑的正在断货

会 debug 的人一抓一大把,会埋坑的正在断货

摸鱼办主任
摸鱼办主任

· 阅读约 6 分钟

上周刷到 SWE-Duel 那篇论文,10 月 8 号挂的 arXiv。我第一反应不是"又一个 benchmark"。

是:终于有人把话说白了——现在的榜单不是被刷爆的,是被背下来的。

这俩不是一回事。刷爆是真强,你服气。背下来是这道题连答案带解析,早跟着训练数据一起进了模型肚子里,等它上考场,它不是在解题,是在默写。

静态基准的死法从来不是被超越,是被记住。

所以这论文干的事,一句话:题,不许提前出。

任务现场生成,判定标准现场生成。前一天还不存在的东西,你拿什么泄漏。难度也不由发布者拍板,由那个来应考的 agent 自己决定——你越强,你面前的题越难,因为出题的那位跟你是一个档次的对手。

【灯光渐暗,出卷老师缓缓露出了考生的笑】

我看完的第一感受:这不叫评测,这叫考试出题权和作弊可能性的博弈。


规则值得复述一遍,荒诞感全在细节里。

红蓝对抗。红方先在真实仓库上干活,把活儿拆进三个上下文互相隔离的会话——为什么要隔离?因为出题的人自己也不能偷看答案,他得在不知情的情况下把题出完,这才叫题。

红方第一件事还挺正常:实现一个新功能,配功能测试。第二件事就开始变态了:在这个功能里植入一个不容易察觉的缺陷,再配一份密封的、能精准打到这个缺陷的测试。密封的,不给蓝方看。

然后是最妙的一条:红方的 PR 想被接纳,得同时满足两个条件——能过功能测试和仓库既有测试,但恰好卡在缺陷触发测试上。缺陷必须存在,必须藏得住,还不能把题出死。

出死题怎么办?论文留了兜底:让同一个 agent 开个全新会话,在不知道有缺陷的前提下自己修。修得掉,说明题有解;修不掉,这题作废。

我看到这愣了半天。这是什么?这是一套反向图灵测试:以前考你能不能发现别人的坑,现在考你能不能挖一个连自己都填得上的坑。

蓝方那边更阴。它拿到 PR 的时候,没人告诉它有缺陷这回事。它以为这就是个正常的 code review。但它得赢,就必须交出让三类测试全过的修订——也就是说,它得先猜出来这活儿被人动过手脚。

你发现没有,这就把"审查代码"的真实处境还原了:你永远不知道眼前这份 diff 是同事忘了写,还是被人精心设计过。

(友情提示:你工位上那些 review 时觉得"这地方有点怪但说不上来"的 PR,现在有了新的解释模型。别问我为什么知道。)


然后是数据。不是拿来打分的,是拿来当笑料看的。

11 个模型和工具组合,15 个仓库,五种语言,1500 回合。GPT-5.5 配 Codex CLI 在求解者这栏排第一,把审出来的缺陷修掉了 98.3%。

将近满分。这数字漂亮得不像话。

但我更在意的是另一类领先。Claude Opus 4.8 配 mini-swe-agent,出题者排名第二,红方胜率 27.3%。

反差看明白了吗?修 bug 能修到 98.3%,出题只赢两成七。在座的各位,当考生都是天才,当出卷老师都开始抓耳挠腮。

我一直以为这行稀缺的是会 debug 的人。不是。会 debug 的人一抓一大把,Claude 们都快修完了。稀缺的是会出题的人——能在一段看起来完全正常的代码里塞进去一个坑,让所有人围着它转三天,而且这坑还得真有解。

更骚的是论文里那个同家族对比:同一个模型家族,新版本出的任务打败固定参考求解者的比例是 42.9%,旧版本 4.0%。

差一个数量级。

论文的原话是"初步说明任务难度会随出题能力提升而增加"。

翻译成人话:你的模型越聪明,它给你出的题就越变态。

这是我今年看到的最适合剪成惊悚片预告的一句话。


再往深想一层,事情就开始不对了。

如果难度会跟着出题能力一起涨,这场比赛有没有天花板?会不会我们每升一次级,等来的不是"终于打过去了",而是"对面也升级了,请继续"?

红蓝是对称的,回合打完双方交换角色。这句写得轻描淡写,细想才是那个真正的包袱——今天你最怕的那个对手,下回合就是你,而且是你自己。

我第一反应是"这不就是 GAN 那套"。但我得承认,它比 GAN 更让人不舒服:GAN 里两个网络共享同一个目标;这里红蓝是零和的,你赢我输。你亲手练出来的那个出题手,是你最想干掉的敌人。它越强,你越难。

(写到这我本来想再扯一段"出题能力是不是新内卷",打住,不写了,太沉,换口气。)

说个好玩的。"密封测试"这个词用得特别正。密封。你见过哪个软件的测试是密封的?测试在我们日常语境里的角色,一直是"放在 CI 里每天跑一遍、红了就去看两眼的那种烦人东西"。现在它变成一把没拆封的信,红方封、蓝方拆,拆开之前谁都不知道自己是不是要露馅。

我甚至觉得这套设计搬进公司比什么 OKR 都管用——把每个人的提交都当成"可能藏了坑的 PR"来审,出题的人自己也不知道自己的坑会不会被填上。可惜现实里真这么干,第一天办公室就得打起来。


最后说一件论文之外的事。

它在 ICLR 2027 评审中,分类挂在 cs.CL 和 cs.SE 两边。录不录我不太在乎,我在乎的是"基准自动扩展"这件事被正式端上桌了。

以后但凡再看到有人拿三年前的数据集说自己方案分数最高,我大概只会想一件事:你是在解题,还是在背答案。

(郑重声明:本文提到的所有模型和数字都来自公开论文,我本人一个都没跑过;不过按刚才那套理论推测,我要是拿它们出题,胜率大概也就是那个 4.0% 档。评论区有真跑过的报个战况,我们对比一下,看谁的坑埋得更深 🫠)