上周翻 arXiv 的 cs.LG 新提交流,扫到一个标题起得一点不绕的:SWE-VERIFIER: Selective Verification for Cost-Efficient Coding Agents。10 月 21 日挂的 v1,八位作者,密歇根和 UW 那几个名字里,Lu Wang、Rada Mihalcea 都在。
先声明,这期不是常规 repo 巡礼。模型、代码、数据都放出来了,入口在论文里,别问我要 owner/repo——这次真没有,我也懒得现编一个凑数。
它干的事一句话就能说完:教编码 agent 学会“只在值得怀疑的时候才怀疑”。
我点进去,是因为被这件事烦过。现在这些编码 agent 的算力账,大头不在“想”,在“想歪了还继续想”——动作选错一步,后面一长串交互历史全是废的,token 照烧,账单照跳。全步验证听着最稳妥:每一步都采几个候选动作、都打分、都排个序。问题是每一步都这么干,省下的那点返工钱还不够付验证的钱。
这篇的核心观察就一句:采样加验证确实能改善决策,但把它无差别地铺满整条轨迹,纯属用钱买安心。
机制不复杂,我用自己的话说。agent 想执行某个动作,先别急,把这个动作丢给 SWE-Verifier 打个分;分数难看的,才去补采几个候选动作;执行前再对候选排一次序。分数看得过去的,直接放行,一步都不多花。
有点像组里那位最凶的 reviewer,不是每一行都拦下来看,是闻到味道才叫停。
基座是 Qwen3.5-4B,够小。训练数据是偏好数据:动作配上对应的环境观测,再配上由 rubric 引导的教师分数。说白了就是在教一个 4B 模型判断“这一手像不像臭棋”。
有个细节我挺喜欢——它给动作打分的时机是在执行之前,不是执行完之后回头复盘。事后诸葛亮式的验证谁都会做,难的是在下手之前拦住。
数字这块,mini-swe-agent 框架下对着 MiniMax-M2.7 跑:解决率 75.47% → 77.20%,推理成本跑到原来的 1.09 倍。换 DeepSeek-V4-Flash,72.60% → 74.27%,1.13 倍成本。而且训练时根本没用过 DeepSeek-V4-Flash 的动作数据,是直接迁过去的。
1.7 个点,我不打算吹成什么压倒性胜利。SWE 类任务的方差摆在那儿,单看第一组我会说“有点东西,但还没到让我拍桌子的程度”。
真正让我多看两眼的是两组数字之间的关系。花 9% 的额外成本换 1.7 个点,这个兑换率我认;但更关键的是第二组——没过训练就能迁移,说明它学到的是“这个动作在当前观测下靠不靠谱”这种跟具体模型关系不大的判断,而不是背下了某个模型的出牌习惯。可迁移的验证器,比多涨两个点的验证器值钱得多。
然后是我觉得全文最该被拎出来讲的那个数:在两个被测模型上,实际触发验证的步骤占比不到 4%。
96% 的步骤它选择了放行,解决率仍然跟轨迹基线、全步验证基线打平或者更高,成本还显著更低。这一条基本就把“全步验证”那条路线的性价比问题摊在桌面上了——以前大家做全步验证,是拿它当上界引用的;现在这个上界被一个 4B 的小模型用 4% 的触发率摸到了。
我前面说涨幅不够炸,那是站在排行榜的视角讲的。站在这条 4% 的视角上,这篇的结论比它的主表凶得多。
想试的话,门槛得说清楚。模型、代码、数据都放出来了,链接在论文里,这点没得挑。但它不是那种 pip install 完就能用的东西:SWE-Verifier 是个中间件,要塞进你自己的 agent 循环里,替换掉原来那套采样接口。动作空间、观测格式、rubric 怎么写,都得按你的任务重新对齐。论文里的实验全在 mini-swe-agent 这套 harness 上做的,换框架、换任务域,顺不顺我不敢替作者担保。
我自己只把论文从头到尾读了一遍、翻了下放出来的东西,没真跑——这句先声明在前头,别把我这段当成实测结论。
你手上在跑长轨迹的编码 agent,单步成本已经能让你在月底看账单时沉默三秒,那这篇值得花一晚上。尤其是你已经在用全步验证、或者因为成本问题一直不敢上验证的——这个“选择性触发”的思路正好卡在你那个犹豫的位置上。
不适合谁:任务本来就短、一轮两步就收工的,验证器再轻也是多余的抽象。还有一类,你的 agent 单步成本本来就低得可以忽略,那这套东西省下来的钱不够你改接口的工钱。
观察名单里现在多了个位置。我想等的不是它自己出 v2,是等有人把它接到别的 harness、别的任务域上跑出第三方数字来——一个可迁移的验证器,价值全在“迁移”这两个字上,而这个结论目前只有作者自己的两组实验撑着。等真有第三方把它搬到别处还能涨,我再回来更新这一篇。
能不能打,你自己拉下来跑一圈最准。
