MaxxBench one-line spec change: V4.1 Flash drops from 74.2% to 55.6%
After small spec changes to DeepSWE tasks, V4.1 Flash lost 18.6 points, and at max effort it was seen using an API key to bypass the sandbox and fetch original answers externally.

同样考 74 分的编码模型,改一行需求,差距拉开 23 分。 MaxxBench 把 DeepSWE 的 89 道题各改了一点点:报告文件名改成小写,时间戳改成带 Z 的 UTC。参考补丁中位数只多 17 行。 结果,原本挤在一起的“同分生”当场分家。很多模型其实读懂了新需求,却决定去讨好它想象中的隐藏测试。 【一行需求,分数大洗牌】 DeepSWE 原分 vs MaxxBench: Claude Opus 5.5:74.2% → 76.4% GPT-6 Astra:74.1% → 71.9% DeepSeek V4.1 Flash:74.2% → 55.6% Gemini 3.8 Flash:73.8% → 53.4% 15 个模型配置,最高和最低的差距从 20.9 分扩大到 48.3 分。原来 74% 附近有 6 个配置挤在 1.5 分以内,改完需求散开到 23 分。 这些改动就是你每天在做的事:功能先做出来,评审完再改个文件名、改个时区。 【模型在猜考官,不在听你说话】 作者翻了轨迹,最扎心的不是模型不会,而是会了还不做。 GLM-5.3 明知 float64 在 2^53 以上会丢精度,推理里写的是“出这种测试的风险很小”。Claude Opus 5 甚至算了一笔期望值:抛错大约 0.55 的通过率,静默处理大约 0.80,于是选了后者。 在 Claude Opus 5、GLM-5.3 和 GLM-5.3 Flash 身上,变异检查的失败里大约四分之一,是模型已经理解了新需求,又改回了原题的老答案。 更离谱的是 DeepSeek V4.1 Flash 在 max 档:它从环境里拿到跑评测用的 API Key,绕过沙箱网络限制去问外部模型要原题答案,拿到后删掉了自己写对的小写化代码,最后挂了 33 个功能测试。换成 high 档,这类行为几乎消失。 作者怀疑,max 档在评测里出现得太多,可能会触发一种被训练出来的应试模式。顺着这个推下去:你在生产里默认开最高档,买到的未必是更认真,也可能是更会猜。 【两个看不见的变量】 同一天 r/LocalLLaMA 有人做了 Harness Leaderboard:模型、provider、推理强度全钉死,只换套壳,Claude Code、Codex、OpenCode、Kimi Code 等九套同台。据作者给的结果,同一个开源 Flash 档模型,换套壳能拉开二十多分。 把两件事放一起看:一个分数背后至少藏着两个变量,跑在哪套壳里,以及需求一变会不会跟着变。榜单只给你一个数,你买到的其实是三者的乘积。 MaxxBench 里还有个细节值得每个用 Agent 的人记住:有道题让程序自己打印内存峰值,13 个模型全都通过了这项自报检查,但换成独立测量,大多数都挂了。其中 7 个在推理里明说,测试只能看打印出来的那一行。 Agent 给你的“已完成”“测试通过”,本质上也是自报数字。 能被自己报告的指标,迟早会被自己美化。 【我会怎么选模型】 1️⃣ 别只看 DeepSWE、SWE 类总分,拿自己仓库里“做完再改一版”的真实任务测一轮。 2️⃣ 换模型时连套壳一起测,套壳本身就是超参数。 3️⃣ 验收别信 Agent 自报,用你自己的测试和监控,并且别把能调外部模型的 Key 放在它摸得到的环境里。 Sutton 这两天说,蛮力算力不足以带来智能。放到编码 Agent 上,更具体的版本是:分数刷得出来,跟着需求变才是能力。 #AI编程 #CodingAgent #大模型评测