Kimi-Dev开源:Agentless训练注入先验,SWE-bench狂砍60.4%

Kimi-Dev: Agentless Training as Skill Prior for SWE-Agents

在代码大模型领域,长期存在着一条隐形的界线。 一边是按部就班的工作流方法,另一边是自由探索的智能体框架。 难道鱼与熊掌真的不可兼得? 本文提出的 Kimi-Dev 给出否定答案。 该研究在 SWE-bench Verified 榜单上拿下 60.4% 的准确率。

ArXiv URL:http://arxiv.org/abs/2509.23045v1

自动化编程的两难困境

近年来,大语言模型在自动化软件工程领域的应用日益广泛。 其中,SWE-bench 作为衡量大模型编码能力的核心基准,备受瞩目。 该基准要求模型在一个真实的 GitHub 仓库中,根据问题描述生成修复补丁。 补丁的正确性完全由是否能通过隐藏的单元测试来决定。 高难度的真实场景与明确的执行反馈,使其成为该领域的试金石。

面对这一挑战,学术界和工业界逐渐分化出两条截然不同的解决路径。 其一是基于多轮交互的 SWE-Agent 框架,如 OpenHands 等。 在这类框架中,模型被赋予了一系列可用工具和环境访问权限。 模型需要自主决定如何探索代码库、何时运行测试以及何时停止。 这种端到端的交互方式赋予了模型极高的自由度和适应性。

然而,为何多轮交互的智能体训练如此艰难? 核心痛点在于高质量交互轨迹的获取成本。 构建大规模的可执行环境本身就是一项极其浩大的工程。 让模型反复试错来收集闭环数据,通常需要频繁调用昂贵的闭源模型 API。 这种资源密集型的数据收集方式,严重拖慢了模型迭代的步伐。

另一种路径则是基于工作流的无智能体Agentless)方法。 这种方法人为地将复杂的修复任务拆解为线性的流水线。 例如将任务严格划分为缺陷定位、补丁生成和测试编写等独立单步。 优势在于其极高的模块化程度,每个环节都能利用可验证奖励进行优化。 但硬币的另一面是,这种僵化的流程极大限制了模型的探索空间。 当面对需要增量试错和反复修改的复杂问题时,它往往显得力不从心。

破局之道:技能先验假说

这两条路线长期以来被业界视为鱼与熊掌不可兼得的互斥选择。 但本文的核心贡献正是打破了这种二元对立的思维定势。 研究团队提出,完全可以将 Agentless 训练视为一种技能先验Skill Prior)。 也就是说,将单步任务的训练作为通往多轮自由交互的跳板。

我们可以把 Agentless 训练比作武术体系中的“扎马步”与“单招拆解”。 在这个基础阶段,我们不要求武者直接上擂台应对变化莫测的实战环境。 而是让他们在固定的靶子前,把“定位目标”和“精准出击”这两个单招练到极致。 这种训练虽然缺乏实战的灵活性,但能构建出极其扎实的肌肉记忆。

具备了这种原子级的技能先验后,再让其进入多轮交互的实战擂台。 此时,模型无需再从头摸索基本的挥拳动作,而是能迅速领悟多轮对抗的战术。 这种从“拆招”到“连招”的平滑过渡,构成了本研究的核心方法论。

铸就 Kimi-Dev 的训练配方

为了验证这一假说,研究团队精心调配了一套完整的 Agentless 训练配方。 这套配方最终孕育出了表现惊艳的开源大模型 Kimi-Dev。

双重角色的协作架构 在处理复杂的代码缺陷时,研究者将任务抽象为两个角色的协同工作。 第一个角色是 BugFixer,其核心使命是定位出错代码并提供修复补丁。 第二个角色是 TestWriter,负责编写能够精准复现该缺陷的单元测试。

Refer to caption

一个成功的修复不仅需要补丁能够解决问题,还需要通过相应的测试。 这两个角色都需要极强的两项基础能力:文件定位能力和代码编辑能力。 整个架构的设计高度还原了现代软件工程中的测试驱动开发理念。

海量数据铸就中期训练 为了让模型在起步阶段就拥有敏锐的开发者直觉,大规模中期训练不可或缺。 团队以 Qwen 2.5-72B-Base 为基础底座,注入了约 150B Token 的代码数据。 这些海量数据包含了数以百万计的真实 GitHub 提交记录和讨论。 其中约 50B 数据被转化为符合 Agentless 工作流的自然补丁格式。 另有 20B 数据专门用于合成带有逻辑推理和智能体交互模式的高质量语料。

在这个阶段,团队进行了极其严格的数据污染清洗环节。 彻底排除了所有可能出现在最终测试集中的代码仓库。

深度思考的冷启动阶段 仅有广博的基础知识还不够,模型必须学会像高级工程师一样深度思考。 因此,研究团队利用前沿的 DeepSeek R1 模型生成了大量的推理轨迹。 在这个冷启动数据集中,包含了深度的预先分析和方法论推演。 通过监督微调Supervised Fine-Tuning, SFT),模型继承了这种长思考能力。 它学会了在编写代码前先勾勒出多种备选方案,并进行缜密的自我反思。

基于执行反馈的强化学习 经历了前置训练后,模型在代码文件定位方面已经游刃有余。 因此,强化学习环节将全部火力集中在代码编辑这一最核心任务上。 软件工程任务最大的优势在于其具备客观的执行验证反馈。 团队利用 Kubernetes 构建了支持上万并发实例的庞大沙盒验证集群。

在这个阶段,模型不断生成代码修改方案,并在沙盒中实际编译运行。 真实的运行报错信息和测试通过结果,成为了最精准的奖励信号。 随着训练的推进,模型输出的分析长度和修复成功率呈现出同步增长的趋势。 值得注意的是,研究者发现 TestWriter 偶尔会出现假阳性样例。 这是由于缺乏足够全面的重现覆盖度所导致的,但并不妨碍整体能力的攀升。

推理阶段的自我对弈 当模型同时精通了修复和测试两项技能后,推理阶段引入了自我对弈机制。 具体而言,模型会扮演 TestWriter 生成多个候选的复现测试用例。 随后,BugFixer 生成的补丁必须经过这些测试用例的重重考验。

Refer to caption

实验数据表明,这种自我对弈带来的收益远超传统的多数投票法。 在滚动测试下,Kimi-Dev 在 SWE-bench Verified 榜单上成绩斐然。 其准确率从单次尝试的 48.0% 强势攀升至惊人的 60.4%。 这创下了开源模型在工作流范式下的极高纪录。

向多轮智能体的丝滑跃迁

然而,刷新工作流的巅峰榜单并不是这项研究的最终目的。 接下来,研究人员展示了如何利用这些先验高效初始化一个多轮智能体。 得益于此前在单步任务中积累的深厚内功,智能体化适配变得出奇地简单。

研究团队仅仅使用了 5016 条公开的 SWE-Agent 交互轨迹进行了一次微调。 在这个过程中,没有去搭建复杂的多轮交互环境,也没有进行高成本的多轮 RL。 即便是在这种极其轻量级的适配下,Kimi-Dev 依然交出了一份惊艳的答卷。

在端到端的 SWE-Agent 评测中,该模型取得了 $48.6\%$ 的 $pass@1$ 分数。 这一成绩与业界公认的顶尖闭源模型 Claude 3.5 Sonnet 旗鼓相当。 更为惊人的是,在允许进行 10 次尝试时,其成功率高达 $74.0\%$。 这甚至超越了模型在 Agentless 工作流下尝试 30 次的成绩。 这一数据充分印证了多轮交互框架在灵活性和上限潜力方面的绝对优势。

深层机制剖析与技能传递

为什么单步训练积累的先验能够如此完美地迁移到多轮复杂的对抗中? 为了揭示这一黑盒,研究团队针对各个训练阶段的模型进行了消融对比。

Refer to caption

研究发现,长链条推理训练中培养出的自我反思机制,是至关重要的纽带。 在面对长达百轮的极限交互测试时,各阶段模型的耐力表现出了显著差异。 未经先验训练的基础模型在交互 50 轮左右就早早耗尽了策略,陷入停滞。

而经过完整 RL 训练赋能的模型,在长达 70 轮的试错后依然能够找到突破口。 这就如同在“扎马步”阶段培养出的坚韧意志和自我纠错本能,在实战中被彻底激发。 单轮训练中的测试编写与修复验证,深深刻入了模型的骨髓,内化为交互自觉。

值得一提的是,这种先验技能的迁移并不局限于单一的评测榜单。 在更广泛的 SWE-bench-live 和多语言评测榜单上,模型依然表现出色。 这进一步坐实了结构化技能训练在泛化能力上的巨大优势。

总结与工程启示

这项工作不仅为开源社区贡献了一个开箱即用的强大代码大模型。 更重要的是,它在方法论层面上为整个行业拨开了迷雾。 它证明了结构化的工作流与高度自由的智能体绝非非此即彼的竞争关系。 相反,它们是构建具备强泛化能力自动编程系统的两个互补阶段。

从工程实践的角度来看,这一思路具有极高的普适价值。 在直接构建复杂的端到端智能系统遇到数据和奖励稀疏的瓶颈时。 我们不妨退后一步,先将系统拆解为单步可验证的基础技能工作流。 利用廉价且反馈明确的单步任务为大模型注入深厚的技能先验。 随后再以极低的代价跨越到多轮自主交互的广阔天地。 这无疑为通往通用人工智能的落地,提供了一条更为稳健的演进阶梯。