AutoSaddler:调校智能体"外壳",三基准成功率各涨约十个百分点

长程任务里,一步小错怎么滚成整盘失败

AutoSaddler 的整篇论文只回答一个问题:它如何把调校 harness 变成一场防止长程错误滚雪球的离线训练。这套系统最终把 GAIA2、SWE-Bench Pro、Terminal-Bench 2.0 三个公认难打的基准,成功率各拉高了 9.0、9.6、10.0 个百分点。成绩是结果,把雪球挡在训练阶段才是本事。要相信这条主线,得先看连续四步证据:一次真实的翻车证明雪球真的会滚,长程任务的机制解释它为什么滚得起来,harness 这一层指明该在哪拦,手工调校的昂贵说明为什么非自动化不可。四步证据,说的是同一件事。

第一步,雪球真的会滚,AutoSaddler 自己迭代里的一次真实翻车就是标本。自动调校进行到第 20 轮,成功率突然崩了。一个为某条失败轨迹准备的补丁,给智能体最常用的发消息工具加了一道重定向:所有发给用户的消息都被强制转给一个新工具。眼前那条轨迹被修好了,一大批原本能完成的任务却被连带弄坏,搜索轨迹在第 20 轮一头栽到 33.8%,几乎腰斩此前堆出来的进度。这不是工程师手滑,而是小错滚雪球最典型的一幕:一个补丁修好一条轨迹,却弄坏一片任务。这次重定向补丁为什么能从修一条变成毁一片?要回答它,得先看清长程任务的错误是如何累积的。

第二步,长程任务的机制解释雪球为什么滚得起来。让一个 LLM agent 完成"在手机里订好机票、再发确认消息给用户"这类需要几十步交互的任务,模型经常在最不该出错的地方出错。最反常的是,它的能力是锯齿状的:难任务会做,看似更简单的相邻任务反而失败。论文把这种表现称为 jagged intelligence(锯齿状智能),并指出一个更麻烦的特性:单个小错误本身往往无害,但在长交互里被不断放大。AutoSaddler

放大到什么程度,可以做一道算术题。假设每一步操作出错的概率只有 1%,看起来微不足道;但几十上百步的错误率连乘下来,成功率就会一路跌向三分之一甚至更低。agent 前 35 步一路正常,最后一步把消息发错了对象,整个任务按失败计分,前面所有正确步骤都不作数。长程任务就是这么残酷:棋盘上的棋一步都不能走错,因为整局只记胜负。

知道了错误会滚雪球,还得知道该在哪一层拦住它。模型权重不好动,但模型外面那层"外壳"是可以动的。这里说的外壳有个正式名字,叫 harness,由三层构成:提示词规约(prompt)、工具配置(tool)、中间控制逻辑(middleware)。中间控制逻辑决定循环怎么走、什么时候调哪个工具。平时常说的"改 prompt"只是其中一层。另一篇论文给过一个更刺眼的数字:固定同一个模型,只改动 harness,在同一基准上可以造成数倍的成绩差。Meta-Harness

最后一步,这一层为什么非交给算法不可。杠杆如此之大,调起来却极贵。设计空间巨大,每一条候选都要 agent 完整跑完长轨迹才能评估,分析失败轨迹又得靠人工,一套好用的 harness 常常是几个工程师数周的心血。而雪球滚动不会等人:2026 年的 agent 已经从聊天框走进了生产环境,订票、写代码、运维全都要它上手,可靠性成了上线前的第一道坎,人肉打磨的速度开始跟不上。

基准上的现实比这更刺眼。GAIA2 论文自己报告,最强的商用模型在默认设定下也只有 42.1% 的通过率,前沿模型大面积卡在平台期。GAIA2 换句话说,换更强的模型已经越来越难买到进步,而外围那层没人认真管过的 harness,可能还藏着大片没动过的空间。于是问题变得很自然:既然模型升级的路越走越窄、外壳又如此关键如此昂贵,能不能让算法自己去调它?

只动提示词为何不够:把调校当成一场离线训练

自动化的答案并不顺手。摆在面前的现成路线有两条,各缺一块。

第一条只动 prompt。以 GEPA 为代表的提示词优化器把搜索空间限制在提示词一层,用自然语言反思代替强化学习的策略梯度,靠 Pareto 前沿维持一群各有所长的候选,演化着改 prompt。它在自己的任务上样本效率惊人,能比 GRPO 少用 35 倍的 rollout;但工具配置和编排逻辑一概不动。这条路管得太窄,大量失败恰恰出在工具和循环上,prompt 写得再漂亮也够不着。GEPA

第二条把整个 harness 当代码放开改。Meta-Harness 让一个 coding agent 直接读写 harness 的源码,改完就跑、跑完就存,把全部历史候选、执行轨迹和得分堆进文件系统,供下一轮随意翻阅。它的信息量极大,每轮中位数要读 82 个文件。自由度很高,但管得太松:循环里没有显式的验证与筛选关卡,改动是变好了还是变坏了,没有一道"值得采纳"的闸门。Meta-Harness

AutoSaddler 的关键洞察,是把"调 harness"整体改写成一场离线训练。任务集被拆成训练、验证、测试三份;每一轮迭代只在一个小批量(mini-batch)上跑当前 harness,收集失败信号,然后诊断、打补丁、验证、记录、进化。论文自己点明了这套对应关系:在小批量上跑出失败信号,约等于一次前向传播;生成结构化补丁,约等于文本梯度下的反向传播;补丁要先在小批量上验证、再在验证集 D_dev 上过一道泛化关,论文称之为提交进 EvoDAG 之前的泛化闸门(generalization gate);把每次修改的来龙去脉写进进化记录,约等于维护优化器状态。AutoSaddler

为什么这个类比成立?因为 harness 本来就是一段可以版本化、可以 diff、可以回滚的配置代码。把它当训练对象,就等于把"改配置"这件手艺活拆成了标准动作:收集信号、算出修改方向、验证修改是否有效、把有效修改的来龙去脉存档。所谓补丁,小到给工具描述补一句话,大到新增一个工具、重写一段循环逻辑。

具体每一轮是这样走的:先在小批量上评估当前 harness H_n;诊断与打补丁会话分析失败轨迹,产出补丁和修补后的 H'_n;在小批量上验证 H'_n 是否真的变好;通过之后,再在验证集上检查这个补丁能不能泛化到小批量之外的任务。无论采纳与否,反思会话都会比较补丁前后的执行结果,把教训连同性能信号写进一张持续累积的进化记录图,论文叫它 EvoDAG,一张以历史 harness 为节点、以补丁为边的有向无环图;下一轮进化就从这张图里合成新的 harness。

图注:论文 Figure 2,AutoSaddler 的三段式迭代循环。七步流程:在小批量上评估当前 harness,诊断并打补丁,在小批量上验证,通过后再在验证集 D_dev 上检查泛化(条件触发,并非每轮必做),反思会话比较补丁前后结果并把教训写入 EvoDAG,进化会话再合成下一个 harness。三个色块对应三个会话。AutoSaddler

这个转译的真正价值在于,它把 agent 可靠性链条里最贵的一环,从"手艺活"变成了可以重复、可以验证、可以叠加的"训练"。接下来的三个设计,就是这场训练能否成立的关键。

扫一眼失败记录就改为何不行:诊断要取证,补丁要定点

让 LLM 自己修 harness,最容易掉进两个陷阱:扫一眼就改,以及想改哪改哪。

陷阱一,扫一眼就改。最省事的做法是把失败轨迹喂给 LLM,让它读一遍直接推断失败原因,这是提示词优化社区里的浅层反思范式。AutoSaddler 明确拒绝这种做法:它把诊断和打补丁焊在一起,让诊断 agent 用 Claude Agent SDK 像医生取证一样,一步步调工具查证据,而不是对着病历猜病因。取证到什么程度?它会重放失败轨迹,调用同样的工具,找出工具输出与预期不符的那一步,再翻看相关文件和上下文,最后带着证据下诊断、带着诊断写补丁。量化的差距很说明问题:相比只打补丁不诊断的会话,诊断加补丁的会话每走一步平均多调用 6.2 次工具、多访问 5.8 个文件;到第 25 轮,累计被采纳的补丁数从 5 个涨到 13 个。消融实验把深度诊断换回浅层反思,GAIA2 上直接掉 4.2 个百分点(62.0% 对 57.8%)。AutoSaddler

陷阱二,想改哪改哪。如果把整个 harness 代码放开给模型自由编辑,91.5% 的改动会塌缩成纯文本编辑,也就是只改提示词文字,不碰任何结构和逻辑。AutoSaddler 把补丁空间强制结构化,3 层共 9 个子类型,每一类都是明确的"改哪里":

层子类型类别
Prompt规则新增 Rule AdditionS
Prompt规则修改 Rule ModificationS
Tool新增工具 New ToolC
Tool参数修改 Argument ModificationC
Tool实现修复 Implementation FixC
Tool描述修复 Description FixS
Middleware钩子 PreToolUse HookS
Middleware基础设施改动 Infrastructure ChangeC
Middleware循环逻辑改动 Agent Loop LogicC

其中 C 代表 Capability 类,动的是可执行代码与编排逻辑;S 代表 Steering 类,只改文本。两类还按"先 Capability 后 Steering"分阶段调度:前几轮只许动结构,把能力缺口补上,后半程再切到行为级微调,思路类似把学习率从大调小。AutoSaddler

结构化的收益直接反映在采纳率上。改动代码和逻辑的补丁明显更常被采纳:新增工具 83%、循环逻辑改动 71%、基础设施改动 67%,是全部九类里最高的三个;而不设结构时,这三类关键补丁只占 4%,结构化之后占比提到 25% 以上。就连耐用性都不一样:Capability 补丁修复率 55%、回归率 8%,Steering 补丁修复率 58% 但回归率 17%。纯文本改动见效快,却更容易弄坏别处;改代码的补丁难写一点,但更经得起后续迭代。消融实验放开成自由编辑,掉 5.1 个百分点(62.0% 对 56.9%)。

图注:AutoSaddler 项目页工程版图(非论文 Figure)。九个补丁子类型按 Prompt、Tool、Middleware 三组排列,柱顶数值依次为 62、50、83、0、58、61、55、67、71;改动代码与逻辑的补丁(新增工具 83%、循环逻辑改动 71%、基础设施改动 67%)接受率最高,纯文本类的整体偏低。项目页

深挖根因值 4.2 个百分点,定点下药值 5.1 个百分点。但最贵的一课还没到:改完不验证。

修好一条轨迹,却弄坏整片任务:验证与 EvoDAG 的兜底

第三个设计叫泛化感知的更新选择。大白话是:补丁修好了眼前这条轨迹不算数,必须证明它没有弄坏其他任务,才允许被采纳。

这套机制由两部分组成。反思会话把每次改动的前后结果分成四类教训:修好了(fixed)、退步了(regressed)、仍然失败(still-failing)、仍然通过(still-passing),对每类问不同的问题:为什么有效、为什么退步、为什么还不够、这个改动是不是真的有用。四类教训连同性能信号一起写进 EvoDAG;进化会话拿到的不是最新一版,而是整张图,可以从任意历史节点组合出下一个候选。AutoSaddler

验证兜底值多少钱?消融实验把反思会话和验证集评估一起去掉,只凭训练集结果决定采纳与否,GAIA2 掉 11.4 个百分点(62.0% 对 50.6%),是三个设计里降幅最大的一项。再拆细一点:单独去掉验证集筛选,掉 10.7 个百分点;在此基础上再拿掉反思会话和 EvoDAG,又掉 5.1 个百分点。也就是说,验证集筛选本身是核心贡献,反思与进化图谱是锦上添花的加成。更本质的差别在回归率:AutoSaddler 每轮净回归递减 0.24 个百分点,越改越稳;去掉验证的版本每轮递增 0.16 个百分点,越改越糟。论文还还原了一个具体的翻车现场:消融版在第 20 轮给常用发消息工具装上了重定向钩子,第 21 轮回归率从 8% 跳到 22%;而同一个失败模式,AutoSaddler 自己在第 4 轮就撞上过,被验证机制挡了下来。AutoSaddler

为什么"修好一条、弄坏一片"会反复发生?因为这类事故的结构都是同一个:补丁针对的是一种失败模式,可它作用的代码路径是共享的,凡是走同一条路径的任务全被波及。给发消息工具装重定向钩子,修好的是"那条任务里消息发错对象"的问题,弄坏的是所有其他依赖正常发消息的任务。验证集存在的意义,就是把这类连带伤害在采纳之前拦下来,而不是等它在测试里爆出来。

回到开头那场翻车。完整版系统其实也跌进了同一个坑,但它有救援机制:第 20 轮跌到 33.8% 之后,进化会话没有在坏掉的最新版上继续打补丁,而是回退到历史节点,把验证过的组件逐个 pick 回来,第 27 轮回到全局峰值 72.3%。后来还有一次过度 pick,第 46 轮把所有钩子一股脑装上,跌了 12.3 个百分点;第 47 轮诊断出是转向开销过载,剪回 4 个补丁,恢复到 69.2%。AutoSaddler 这整段起落留下的教训是:当一个补丁把系统带崩,最快的修复不是继续往前硬改,而是回到证据确凿的历史节点重来。EvoDAG 把"回退"和"组合"也变成了搜索的一部分,这正是那张图存在的意义。

图注:论文 evolution_dag 图。纵向节点是 Iter0 到 Iter47 各代 harness,节点大小与颜色对应验证集准确率;顶部色块标出四个迭代阶段,红色虚边表示进化会话从历史节点主动 pick 有效组件,不是失败标记。第 20 轮跌至 33.8%,第 27 轮到达全局峰值 72.3%。AutoSaddler

三个设计的贡献至此各归其位:深挖根因 4.2 个百分点,定点下药 5.1 个百分点,验证兜底 11.4 个百分点。那整套系统在真实基准上,到底能跑出什么成绩?

在三个硬基准上,这套自动调校值多少分

AutoSaddler 选了三个形态完全不同的长程基准做测试,默认骨干模型是 Claude Opus 4.6。

GAIA2 测的是异步手机环境:一个模拟手机平台上有 12 个 app、101 个工具,agent 要在事件不断推送、用户随时插话的环境里完成跨 app 任务。它难在交互是活的,agent 的每一步写操作都会被校验器逐条对照标准答案判定,任务做到一半用户还可能发来新消息,agent 得学会处理打断和异步通知。GAIA2 AutoSaddler 把默认 ReAct agent 的 53.0% 提到 62.0%,涨 9.0 个百分点,三个测试 universe 全部超过 60%,而 GEPA 在其中一个只有 47.9%。AutoSaddler

SWE-Bench Pro 测的是企业级多文件代码修改:1865 道题、41 个真实仓库,平均每个改动牵涉 107.4 行代码、4.1 个文件,题目难度按"专业工程师要花数小时到数天完成"来设计,远超老一代 SWE-Bench 那种一两行的修补。AutoSaddler 把 SWE-agent 基线的 37.3% 推到 46.9%,涨 9.6 个百分点。SWE-Bench Pro 值得一提:SWE-Bench Pro 论文自己报告,前沿模型在这类任务上的通过率整体不到 45%,而 AutoSaddler 没换模型、没换训练数据,只调外壳就越过了这条线。模型升级都不一定能买到这么大的进步。

Terminal-Bench 2.0 测的是硬核命令行操作:89 个真实终端任务,横跨软件工程、系统管理、机器学习、网络安全甚至个人助理。它的测试验证的是容器最终状态而不是命令文本,解法不唯一,没有标准答案可以背,frontier 模型配上最好的脚手架也到不了 65%。Terminal-Bench 2.0 AutoSaddler 在 40 题的测试分割上拿到 50.0%,比 Terminus 2 的 40.0% 高 10 个百分点,还超过手工精调的 Terminus KIRA 2.5 个百分点。这是三个基准里唯一一处自动调校压过顶级手工调优,含金量就在这里。AutoSaddler

图注:Terminal-Bench 2.0 论文的模型排行图:横轴是模型及(模型加 agent 脚手架)组合,纵轴是任务解决率,误差线为 95% 置信区间。最高分约 63%,frontier 整体不到 65%,开源模型明显偏低。AutoSaddler 的 50.0% 正是在这个难度的基准上拿到的。Terminal-Bench 2.0

这些提升是不是拿算力烧出来的?恰恰相反。论文的效率曲线显示,AutoSaddler 用约 1000 次任务执行就在验证集上达到 72.3%,而 GEPA 和 Meta-Harness 消耗约 2800 次才饱和在 64.6% 和 61.5%。按喂给优化器的轨迹条数算,差距更夸张:AutoSaddler 147 条就到顶,Meta-Harness 要 1400 条,差了一个数量级。在 Terminal-Bench 2.0 上对比更极端:AutoSaddler 只用了 31 次任务执行就拿到 73.7% 的验证集成绩,Meta-Harness 花了 98 次才停在 63.2%。

图注:论文 Figure 1。左图横轴为总任务执行数:AutoSaddler 约 1000 次到达 72.3%,GEPA 与 Meta-Harness 约 2800 次才饱和于 64.6% 与 61.5%。右图横轴为优化消耗的轨迹条数:AutoSaddler 147 条即达最佳,Meta-Harness 1400 条才有 61.5%。AutoSaddler

样本效率是实打实的设计红利:每一轮只在小批量上验证,通过之后才动用验证集,验证被做成了省钱工具,而不是烧钱工具。三组证据放到一起,可以下一个判断了:自动 harness 优化不是实验室玩具,它比两条现成路线都强,还超过了手工精调的顶级方案。

值得带走的配方,和它没解决的问题

先回答一个最实际的问题:调出来的 harness 是一次性运气,还是持久资产?论文用三组鲁棒性实验回答。独立重跑一遍优化,在同一个 universe 上拿到 58.6%,比默认 agent 高 7.1 个百分点;换一个训练分布重新优化,测试仍有 57.4%,比默认高 5.9 个百分点;把骨干模型从 Opus 4.6 换成小得多的 Haiku 4.5,保持原 harness 不动,仍然高出默认 agent 5.6 个百分点。结论很清楚:这些更新能跨模型、跨训练分布迁移,是持久的资产,不是碰运气撞出来的。AutoSaddler

耐用性的来源,AutoSaddler 这样解释:它改的是外壳,不是模型参数,工具怎么定义、循环怎么走、提示词怎么组织,这些抽象对不同的模型大体成立。但落到实验层面,这些实验与一种可能解释相符:就跨模型与跨训练分布而言,结果只显示了所测情形的增益,即把骨干模型从 Opus 4.6 换成小得多的 Haiku 4.5、以及换一个训练分布重新优化。更广范围的迁移性还没有被验证。这也正是论文标题里 durable updates(持久更新)这个词的含义:一次离线调校的产出,可以反复复用,而不是每换一个模型就作废重来。

论文的主张可以压缩成一句话:有效的 harness 优化需要三件事,深度调试(deep debugging)、定点干预(targeted interventions)、显式的泛化选择(explicit selection for generalization)。这句话和三个消融一一对上,也是这套系统最值得带走的东西。落到一个想调校自己 agent 的团队身上,就是三条具体动作:失败轨迹不要扫一眼就猜,要取证之后再下结论;补丁不要乱改,按层分类、先补能力后调行为;改动不要看了训练集就采纳,先在验证集上证明它没弄坏别的事。这三条不依赖 AutoSaddler 的任何实现细节,可作为其他框架测试时的设计原则。

边界也必须画清楚。AutoSaddler 的定位是部署前的离线调校:任务无状态、数据已备好、一轮一轮离线迭代,它不覆盖在线持续学习。相邻就有两条它没走的路:SAMULE 走的是训练专门的反思模型,让 agent 自己产出高质量反思;SAMULE AgentStream 则评测 agent 在可配置任务流里实时自演化的可靠性,AgentStream 这两条路线和离线 harness 优化在 2025–2026 年间并行生长,彼此并不替代。

论文也坦白了自己的局限:每生成一个补丁,优化端的计算成本不低,论文自评"中等偏高";深度诊断依赖 Claude Agent SDK 的工具能力;依赖带标注的训练数据与明确的成败信号,且当前只覆盖无状态独立任务。作为预印本,它的数字还没有经过同行评审的二次检验。它打开的方向也很明确:放松监督信号、扩展到有状态任务、在更广的 LLM 家族上验证,以及把更新做得更可迁移;harness 与模型权重联合优化则属于相邻工作已在探索的路线。

长期以来,提升 agent 可靠性的路只有两条:换更强的模型,或者人肉打磨外围配置。AutoSaddler 证明了第三条路:让优化过程自己去调校那层外壳。深挖、定点、验证,这份配方把 agent 可靠性链条里最贵的一环,变成了一场可以重复、可以验证、还能跨模型迁移的离线训练。这句话,比 AutoSaddler 这个名字本身更值得记住。

想深入可以读原文:AutoSaddler: Automatic Harness Optimization with Durable Updates from Agent Execution Traces:arXiv:2608.23041

参考文献

  1. AutoSaddler: Automatic Harness Optimization with Durable Updates from Agent Execution Traces(论文原文):https://arxiv.org/abs/2608.23041
  2. AutoSaddler Project Page(官方项目页):https://aka.ms/AutoSaddler-website
  3. Gaia2: Benchmarking LLM Agents on Dynamic and Asynchronous Environments(GAIA2 基准):https://arxiv.org/abs/2602.11964
  4. SWE-Bench Pro: Can AI Agents Solve Long-Horizon Software Engineering Tasks?(SWE-Bench Pro 基准):https://arxiv.org/abs/2509.16941
  5. Terminal-Bench: Benchmarking Agents on Hard, Realistic Tasks in Command Line Interfaces(Terminal-Bench 2.0 基准):https://arxiv.org/abs/2601.11868
  6. GEPA: Reflective Prompt Evolution Can Outperform Reinforcement Learning(GEPA,prompt-only 优化路线):https://arxiv.org/abs/2507.19457
  7. Meta-Harness: End-to-End Optimization of Model Harnesses(Meta-Harness,harness-as-code 优化路线):https://arxiv.org/abs/2603.28052
  8. SAMULE: Self-Learning Agents Enhanced by Multi-Level Reflections(相邻路线):https://arxiv.org/abs/2509.20562
  9. AgentStream: How Well Do Self-Evolving LLM Agents Perform Under Streaming Tasks?(相邻路线):https://arxiv.org/abs/2608.00155
AutoSaddler:调校智能体“外壳”,三基准成功率各涨约十个百分点