一份编程智能体的评测报告,读起来像这样:给它 100 个真实仓库里的 bug,它自己找文件、自己改、自己跑测试。改对几道,就是几分。
这个分数在 2026 年 10 月 1 日被重新算了一次。arXiv:2610.00890 的作者们拿 Kimi K2.7 Code 做后训练,只用 1700 道自建任务、一轮 GSPO,在六个外部基准上全部拿到提升。其中最扎眼的两个数字来自 Terminal-Bench 系列:这个模型在 Terminal-Bench 4 上的 pass@1 从 0.0 涨到 7.6,在 Terminal-Bench 3 上从 1.4 涨到 12.1。
先把这个 0.0 换成人话。在 Terminal-Bench 4 上,模型跑 100 次,中通过的次数是 0。训练之后,100 次里大约 7.6 次。SWE-Marathon 那一栏更直接,5.0 到 25.0,翻了五倍。
一份会连带扣分的奖励函数
论文开篇先给了一个清单,列的是编码智能体最容易犯的四种毛病,翻译成大白话是:
- 功能做出来了,漏了一条需求
- 只测自己实现里已经跑通的用例,等于自己给自己判卷
- 把本来该保持不变的行为改坏了
- 拿着一个没人验证过的假设当结论用
这四条被论文称为"最后一公里的失败"。它们的共同点是:智能体在快结束的地方摔跤,而不是在开头就找不到方向。底座模型的 DeepSWE 失败样本里,绝大多数属于"差一点就到"(near-miss)。
训练数据的构造围绕这个设计。1700 道任务拆成两半:
| 任务类型 | 数量 | 判分方式 |
|---|---|---|
| 仓库任务 | 1000 | 隐藏的 fail-to-pass 测试,外加对既有行为的 pass-to-pass 测试 |
| 终端任务 | 700 | 专家手写的隐藏验证器 |
关键在奖励函数。奖励等于通过的目标检查比例,但只要任何一条 pass-to-pass 测试失败,整个奖励直接归零。这条设计把上面第三种毛病变成了训练惩罚项,而不是事后靠人读代码去发现。
迁移这件事他们验证了三层
作者没有只报一个基准。论文把六个基准按"训练数据收集之后才发布"筛了一遍,做了分层检验:
- 六个基准合并,p 小于 0.001
- 只看训练数据收集之后才发布的三个基准,p 等于 0.004
- 两个从未在训练中出现的 harness(智能体外壳)下,模型同样有提升
Terminal-Bench 4 是 Terminal-Bench 3 的修订版,所以五个独立任务集才是干净的样本量。论文还报告,DeepSWE 与 Terminal-Bench 3 上的中位轨迹长度缩短了 24% 到 35%。变强了,走的路还短了。
| 基准 | 训练前 | 训练后 | 变化 |
|---|---|---|---|
| SWE-Bench Pro | 60.1 | 64.8 | +4.7 |
| DeepSWE | 31.0 | 43.4 | +12.4 |
| Terminal-Bench 2.1 | 67.4 | 82.0 | +14.6 |
| Terminal-Bench 3 | 1.4 | 12.1 | +10.7 |
| Terminal-Bench 4 | 0.0 | 7.6 | 从零到有 |
| SWE-Marathon | 5.0 | 25.0 | 五倍 |
(表格里的分数是 pass@1。SWE-Marathon 这一栏此前在智柴发过另一篇,讲的是造题模型 Marathoner 本身,那篇讲怎么出题,这篇讲怎么用 1700 道题训练,两件事。)
底座模型输在哪里,是可以被读出来的
论文里有一段分析我觉得比分数更有价值。作者把底座模型失败的 DeepSWE 轨迹调出来看,发现绝大多数是 near-miss。然后对新解出的任务做配对轨迹对比,看训练后的模型具体躲开了哪些坑。四种失败模式逐一被躲开。
这是比"平均分涨了"更难伪造的证据。平均分可以被题目分布带偏,配对轨迹不能。
1700 这个数字值得单独看一眼
训练任务 1700 道,外部基准六个,其中三个是训练数据收集之后才发布的。这个比例说明作者在做迁移验证时是留了余地的,不是拿训练分布内的题去自证。
再换算一下。SWE-Bench Pro 从 60.1 到 64.8,涨了 4.7 分。DeepSWE 从 31.0 到 43.4,涨了 12.4 分。Terminal-Bench 2.1 从 67.4 到 82.0,涨了 14.6 分。涨幅并不均匀,越难的基准涨得越多,Terminal-Bench 4 那种几乎全零的更是从无到有。
这个梯度本身是个信号。如果训练只是让模型更熟悉某种代码风格,它在接近饱和的基准上不会涨 14.6 分。分数越低的基准涨幅越大,通常指向"某种通用的解题行为被强化了",而不是"背了更多答案"。
论文对机制的说法是四种失败模式被逐一避开。哪个模式对应哪个分数,论文没有拆开报,这是这篇论文最可惜的地方。
需要说明的边界
论文是 arXiv 预印本,1 月 1 日提交,未经同行评审。模型用的是 rank-32 LoRA 适配器,一轮 GSPO,训练数据 1700 道,全是自建。文中提到的四种失败模式分类是作者的判断,不是第三方复现结论。Kimi K2.7 Code 本身的规格是 1T 总参数、32B 激活的 MoE 架构,2026 年 6 月 12 日上线,262K 上下文。
这一步真正有意思的地方,和 7.6 这个数字关系不大。它把"pass-to-pass 失败即归零"这种带副作用惩罚的奖励函数,接进了编码智能体的后训练配方里,并且验证了它能跨基准迁移。这套配方目前在 Kimi K2.7 Code 上跑通一次,换个底座会怎样,论文没有回答。
信源:arXiv:2610.00890(2026-10-01 提交,15 页 2 图 4 表);Kimi K2.7 Code 规格来自 Requesty 与 everylocalai 的模型页(均更新至 10-01)。
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。