跳到主要内容
返回时间线
arXiv来源发表:

通过测试的智能体轨迹并非等价:结构打分筛出前1024条,SWE-Bench Verified通过率27.6%

核心概要

编码智能体的监督微调不再只看最终补丁是否通过测试:按轨迹结构打分挑出的前1024条轨迹,让同一模型在SWE-Bench Verified上的pass@1从随机子集的24.8%升到27.6%。

Source-provided article image: Quality, Not Just Outcome: A Structural Scoring Framework for Selecting Coding-Agent Trajectories for Supervised Fine-Tuning
Figure 1 · arXiv

深度剖析

编码智能体的监督微调数据可以按交互过程的结构来挑,而不只看最终补丁是否通过测试。 此前的常见做法是保留最终补丁通过基准测试套件的轨迹,但这类轨迹里仍可能反复查看同一文件、打断卡住的命令,或把真正的修改拖到很晚。 在CoderForge-Preview的155144条成功轨迹上,用同一Qwen3-Coder-30B-A3B-Instruct模型和相同LoRA配方分别训练1024条最高分、最低分和随机轨迹,最高分子集在SWE-Bench Verified上达到27.6% pass@1,随机子集为24.8%,最低分子集为21.8%。

打分只看事件日志里的结构,不需要额外的语言模型裁判。 困惑度类分数受长度和分词影响,语言模型裁判在几十万条轨迹、数十亿token的规模上代价高,而且并不刻画智能体如何随时间组织搜索。 七个分量分别刻画观察熵坍缩、范围收窄、意图与动作一致、工具切换熵、修改承诺点、出错后行为多样性和脏模式指示,按固定权重合成;在AMD EPYC 7413上单worker处理3462条轨迹用时149.2秒,约43毫秒每条。

结构分高的轨迹在困难任务上带来的提升更大。 在简单任务上,最高分子集相对随机子集的优势只有1.6个百分点。 按难度拆分后,最高分与随机子集的差距在中等任务为3.4个百分点,在困难任务为4.5个百分点,两者在困难任务上都达到6.7% pass@1。

启示与展望

这套打分面向OpenHands风格的编码智能体轨迹,输入是包含动作类型、思考文本、工具观察、涉及文件路径和错误标记的步骤序列,输出是用于排序成功轨迹的标量分数。它适用于固定预算的监督微调数据选择,也适用于在语料规模上重复打分;在3462条轨迹的基准上单worker约43毫秒每条,四worker约49分钟可跑完258134条唯一轨迹。

实验使用的是单一教师模型在OpenHands脚手架下生成的CoderForge-Preview轨迹,分量解析器和阈值在其他动作空间、多语言轨迹或不同步粒度下可能需要重新校准,手工设定的分量权重也可能需要重新调整。训练轨迹被限制在32768个token以内,排除了可能包含有用恢复行为的长轨迹尾部;每个条件只训练一次,报告的pass@1差异不含多种子方差估计。下游评测限于30B模型,7B骨干的初步实验未显示稳定的选择器差异,更大骨干尚未测试。