Agent 时代有个怪现象:每家发新模型,跑分都在涨,榜单上一片"超过人类""再创新高",可真上手一用,能力远没到那个份上。问题不在模型不行,在评测本身被玩坏了。SWE-bench 这类 agent 基准,本意是测"模型能不能独立修好真实 GitHub issue",现在却成了各家自报高分的角斗场。这事比聊天模型时代更值得较真:选型决策越来越按 agent 跑分下注,分虚了,钱和工程就投错地方。Agent 评测又比聊天模型评测更难守底线:任务链路长、中间步多、脚手架和 prompt 的影响被放大,同一段能力能包装出几倍的分差。本文不点名任何厂商的跑分数字,只拆机制。
刷榜是怎么发生的
刷榜不是单一动作,是一套组合拳。最直接的是过拟合:把测试集的题目、甚至答案泄漏进训练数据,模型不是在"学会修 bug",是在"背答案"。SWE-bench 由 Princeton NLP 团队在 ICLR 2024 提出,题来自十几个开源 Python 仓库(Django、scikit-learn、matplotlib 这类)的真实 issue,本意是公开可复现,但公开也是双刃剑--题一公开,就容易被反复爬进训练语料,越新的模型越容易沾光,这也正是为什么有人呼吁用私有保留集来测真实泛化。更隐蔽的是间接泄漏:哪怕没直接把题喂进去,只要训练语料混进了这些仓库的源码和 issue 讨论,模型也算"见过",泛化分照样虚高。其次是特调 prompt 和脚手架:解一道 SWE-bench 题不是答选择题,agent 得自己定位出问题的文件、读懂上下文、写出补丁、跑测试验证、失败再改,整条链路任一步掉链子都算失败--也正因为链路这么长,同一道题,最朴素的 zero-shot 调用可能只能跑通一成,但套上精心调过的 agent 框架、多轮自我反思、工具调用、test-time compute 拉满,分数能翻几倍。可这份"加成"不会跟你走,你拿同样的模型用裸 API 调,根本没有那个表现,榜单分数和真实到手能力之间有一道隐形鸿沟。再就是选择性汇报:基准里有完整集、有 Verified 子集、还有各种切片,有人在完整集跑、有人在子集跑、有人专挑容易的切片跑,横向比的时候口径根本不对齐,但对外都叫"SWE-bench XX%"。还有个常被忽略的变量是随机性:agent 任务是概率性的,同一道题这次跑通、下次失败是常态,一次跑高分就报、失败就藏,等于在噪声里挑最大值;诚实的做法是多次跑、报均值和方差,可这会压低数字,没人愿意主动这么干。最后是测试用例不严:早期 SWE-bench 部分题的测试覆盖不足,模型改个 pass 就算"通过"了,正是这条催生了 SWE-bench Verified--由人逐条核实过测试用例的约 500 题子集,专门堵这条漏。
自报 vs 第三方独立测的区别
要理解信任危机,看 SWE-bench 和 Odysseys 两个榜的对照就够。SWE-bench 官方榜(swe-bench.com)本质是自报:谁都能提交,跑分脚本和方法由提交方自己掌握,排行榜验证结果数字、但不强制复现你的整套脚手架。这意味着同一个模型,A 厂用裸调用可能只有十几分,B 厂用重脚手架能跑到五十分,对外都贴上去,用户根本分不清差距是模型能力还是工程包装。Odysseys(odysseysbench.com)走的是另一条路--第三方独立测:200 个长程真实网页任务,由榜单方统一环境、统一评测口径来跑,参评方不碰评测流程。这就是为什么 Browser Use 在 Odysseys 上以 87.4% 排第一、压过 OpenAI/Anthropic/Google/微软的 computer-use agent,这个数字有公信力--它不是 Browser Use 自己报的,是 Odysseys 独立测出来的。同样道理,LMArena 让两个模型同题输出、人类投票排高下,Artificial Analysis 把多个基准归一后横向给综合智能指数,都是这个路子:口径统一、不让厂商自己当裁判。一句话区分:自报榜考的是"你能跑到多少分",独立榜考的是"在统一裁判下你能跑到多少",后者才有横向可比性。对 agent 尤其如此--脚手架越重、分越虚,独立测就是把脚手架变量摁住。还有层更隐蔽的效应:自报榜会随时间整体上漂,不是因为模型真在进步,而是脚手架和 prompt 不断对着基准特调--对单一指标优化久了,指标就不再反映它本来想测的东西,这是 Goodhart 定律在 agent 评测上的标准演绎;独立榜至少把这条漂移压住,因为评测口径不在厂商手里。
普通人怎么辨别可信评测
不用懂评测学,记四条就够。一是看谁出的分:自报的打个问号,独立第三方(Odysseys、LMArena、Artificial Analysis、Vals AI)的可信度高一个量级,厂商自己发布会 PPT 上的数字最低。再加个直觉筛:如果一个分数高得离谱、明显甩开同级别模型一截,多半是脚手架的功劳,不是模型的。二是看口径对不对齐:是不是同一个测试集、同一套评测脚本、同样的 test-time 限制和算力预算、给不给工具、上下文窗口多大,凡是只甩一个光秃秃百分比、不说子集和条件的,基本可以略过。三是看复现成本:方法公开、代码可跑、别人能复现的才叫基准,只贴数字不给方法的,是营销不是评测--SWE-bench 之所以还是行业参照,正因为题和脚本都开源。四是最狠的一招--自己上手跑:挑你业务里的真实任务,拿几个候选模型在小样本上盲跑几遍取均值,榜单只是选型起跑线,不是终点线。Agent 评测尤其如此:任务长、链路多、随机性强,纸面分数和真实表现的 gap 比传统 LLM 大得多,榜单涨十个百分点,可能只在你业务上多解一两个 edge case。最后一句送给所有发榜厂商:把权重、prompt、脚手架全公开,让独立第三方复现,比一个又破纪录的百分比值钱得多。
参考来源
- SWE-bench 官方网站(Princeton NLP,真实 GitHub issue 修复基准):https://www.swebench.com/
- SWE-bench GitHub 仓库(含 Verified 子集与评测脚本):https://github.com/princeton-nlp/SWE-bench
- Odysseys 榜单(200 长程网页任务,第三方独立测,Browser Use 87.4% 第一):https://odysseysbench.com/leaderboard
- LMArena(盲人对打,人类投票排序):https://lmarena.ai/
- Artificial Analysis(独立综合智能指数):https://artificialanalysis.ai/