AutoSaddler:微软基于执行追踪自动优化Agent框架,性能最高提升10个百分点!
AutoSaddler: Automatic Harness Optimization with Durable Updates from Agent Execution Traces

随着大型语言模型(LLM)能力的飞速提升,我们见证了它们在诸多单步交互任务中展现出令人惊艳的表现。然而,当这些模型被真正放入自主代理(Agent)系统中,去执行需要长期规划、多步推理和复杂环境交互的任务时,一种被称为“参差智能”(Jagged Intelligence)的现象便会显现:它们在某些复杂任务上游刃有余,却在看似更简单的相关任务上一败涂地。这种不稳定性直接构成了当前 Agent 应用走向生产环境的核心障碍。在长周期的任务轨迹中,哪怕只是一个非常微小的工具调用失误,如果不能被及时纠正,就会在后续交互中像滚雪球一样不断放大,最终导致整个任务失败。
ArXiv URL:https://arxiv.org/abs/2608.23041v1
为了让 Agent 更具鲁棒性,业界目前通行的做法是在 LLM 外部包上一层“Harness(外部框架)”。这并非简单的系统提示词,而是一个由指令规范、工具接口配置以及运行时中间件(例如重试机制、错误捕获和决策循环逻辑)共同构成的复杂外壳。实证表明,一个精心设计的 Harness 能够大幅提升 Agent 的性能。但在实际工程中,设计这层外壳完全是一个依赖人工直觉的“炼丹”过程:开发者需要在一个庞大且离散的搜索空间中反复试错,每一次测试还需要等待 Agent 跑完漫长的任务轨迹,不仅耗时费力,且一旦切换底层模型或更换应用场景,整个调优过程又要推倒重来。
面对这一昂贵的工程瓶颈,韩国科学技术院(KAIST)、微软等机构的研究人员提出了一套名为 AutoSaddler 的自动化 Harness 优化框架。这项工作的核心思想十分巧妙:不再将 Agent 优化局限于单薄的“提示词工程”,而是将 Harness 视为一段完整的代码,把框架层面的改良转化为一个标准的“离线学习”过程。
实验结果证明了这条技术路线的巨大潜力。在 GAIA2、SWE-Bench Pro 和 Terminal-Bench 2.0 这三个极具挑战性的前沿基准测试中,AutoSaddler 仅凭借小批量的错误追踪反馈,就让默认基准系统的长周期任务成功率分别提升了 9.0、9.6 和 10.0 个百分点。更值得关注的是,相较于此前业内先进的自动化调优基线,它仅使用了不到十分之一的任务执行追踪数据,便早早达到了更高的性能上限。
为什么提示词优化不够用?
要真正理解 AutoSaddler 的价值,我们必须先理清当前大模型自动化优化技术面临的边界。在过去的两年里,基于自动提示词优化(Auto Prompt Optimization)的方法层出不穷。这些方法通常将失败的输出直接喂给一个强大的 LLM(作为“反思者”),让其生成新的提示词,再通过梯度下降或进化算法寻找局部最优解。
但这套逻辑在长周期 Agent 任务中遭遇了滑铁卢。当 Agent 执行一个包含几十个步骤的软件修复或数据检索任务时,最终的失败往往埋伏在极其深度的交互日志中。传统的“浅层反思”机制根本无法在长文本中定位到真正的 Root Cause(根本原因)。并且,许多导致任务失败的原因根本不是提示词语气不够严厉,而是缺乏关键工具的支持,或者控制循环的逻辑陷入了死胡同。因此,AutoSaddler 明确将优化的数学空间定义为 $\theta=(\theta_{\text{prompt}},\theta_{\text{tool}},\theta_{\text{middleware}})$,将目标扩展到了提示词、工具和中间件三个完整维度,以此来实现预算受限下的预期任务性能最大化。
AutoSaddler 的核心机制:系统即代码,离线且迭代
如何在这个更为广阔和复杂的空间中进行高效优化?AutoSaddler 将这一过程设计为一个由微批次(mini-batch)驱动的离线迭代闭环。其整体架构不再依赖简单的问答反思,而是由多个专门分工的子 Agent 相互配合完成深度诊断、结构化修补和经验演化。

整个迭代过程可以清晰地拆解为三个接力进行的“会话”:
诊断与修补会话(Diagnosis-Patch Session)
当 Agent 在一批训练任务上执行完毕后,无论成功或失败,所有的执行追踪轨迹(Traces)都会被送入诊断模块。不同于以往那些将整个长追踪暴力塞入 LLM 上下文的方法,AutoSaddler 赋予了诊断 Agent(基于 Claude Agent SDK 构建)直接访问文件和进行代码级操作的权限。这就像给一位资深工程师配备了完整的 Debug 工具箱。它会主动去查阅代码库中当前的 Harness 结构,逐步抽丝剥茧地调取追踪日志中的异常节点,通过多步骤的工具调用确认导致崩溃的真实原因。诊断得出结论后,并不是输出一段空泛的建议,而是直接针对 $\theta$ 空间发起结构化干预——将 Harness 视为代码,直接生成修改工具定义或调整中间件逻辑的代码补丁(Patch)。
反思会话(Reflection Session)
当带着新补丁的 Harness $H^{\prime}_{n}$ 被重新放到该微批次上运行时,系统会严格对比修复前后的效果。这里的对比不仅仅是看“分数变高了没有”,更重要的是将其细分为四种状态:成功修复、出现退化、依然失败、原本通过且不受影响。针对每一种状态,反思 Agent 都需要回答特定的深度剖析问题:比如补丁到底治愈了哪个具体的失败模式?为什么会引发原本成功的任务意外崩溃?如果补丁进入了验证集进行扩展评估,它是否展现出了超出当前微批次的泛化能力?所有这些反思得出的宝贵经验,连同具体的补丁和性能数据,都会被打包成一个“经验节点”。
演化会话(Evolution Session)
这是防止系统陷入局部最优的关键一步。AutoSaddler 在后台维护了一个进化有向无环图(EvoDAG)。这个图结构记录了所有的优化历史和积累下来的“经验教训”。在生成下一代 Harness $H_{n+1}$ 时,演化 Agent 并非单纯在当前表现最好的版本上继续微调,而是被允许站在上帝视角,翻阅 EvoDAG 中的记录,并将历史记录中不同分支上的有效机制进行合并重组(Merge)。这种类似于遗传算法中的交叉操作,使得系统能够有效融合来自不同演化路径的优秀设计,避免因为对某一个异常样本过度拟合而走向死胡同。
实验结论:为什么这套机制行之有效?
为了验证这套“系统即代码”优化的真实效力,研究团队在三个难度极高的任务集上进行了详尽的测试:模拟日常数字生活全能助手的 GAIA2、测试企业级软件工程能力的 SWE-Bench Pro(SBP),以及聚焦真实终端操作的 Terminal-Bench 2.0(TB2)。结果令人振奋:相较于系统默认搭载的基础 Harness,AutoSaddler 带来了肉眼可见的质变。不仅通过率分别飙升了 9.0、9.6 和 10.0 个百分点,它甚至比目前最强、采用自动化代码编辑端到端优化的基线 Meta-Harness 还要高出平均 6 个百分点左右。
更惊人的是这套方法的学习效率。在训练成本的高昂代价面前,效率就是生命。根据对 GAIA2 优化轨迹的详细观测,像 Meta-Harness 这种端到端搜索方法,往往需要消耗多达 1400 次的 Agent 任务试错,才能让开发集上的准确率艰难爬升到 61.5% 左右并陷入停滞。而 AutoSaddler 仅仅消耗了大约 147 次轨迹追踪反馈,就以极快的收敛速度突破了性能瓶颈,其极高的样本利用率在数据稀缺和计算昂贵的 Agent 优化场景下具有不可估量的价值。
本文提供的几项消融实验,犹如为我们解剖了这头高阶优化的“手术室”,进一步印证了其内部设计的合理性。这三大设计原则也恰好构成了未来自动化 Agent 系统的设计基石。
第一,长周期的修复必须依赖深度诊断,浅尝辄止的反思是无效的。
在对比实验中,如果拿掉基于文件访问和多步调查的“深度诊断”模块,退化为传统那样让 LLM 扫一眼日志就给结论的做法,GAIA2 上的测试成绩立刻会出现大幅滑坡。日志分析表明,拥有深度诊断能力的 Agent,在每一次寻找原因时,平均会多调用 6.2 次调查工具、多翻阅 5.8 次底层文件。正是这种刨根问底的 Debug 态度,让它能找出导致崩溃的最底层参数错位,并在后续迭代中保持更高的补丁采纳率。
第二,结构化干预比无约束的代码乱改更有力量。
当我们开放了所有 Harness 代码的编辑权,如果不加任何规范,系统往往会偷懒——它会高度倾向于去修改最简单的系统提示词(这种被称为 Steering 补丁的操作在自由模式下占比高达 91.5%)。然而,数据的无情反馈表明,那些真正能让系统能力跃升、且不易带来性能退化的补丁,往往是底层能力的扩展(Capability 补丁,如编写新工具、重构循环逻辑)。尽管这些底层修改的生成难度极高,但在 AutoSaddler 结构化的 taxonomy 引导下,系统被迫去探索这些高价值的“深水区”,最终证明这类针对性修改比纯文本修饰的生命力要顽强得多。
第三,泛化感知是避免“为了修复而修复”的护城河。
如果你只盯着一个任务的失败去写补丁,极大概率会破坏系统原本在其他任务上的稳定性。AutoSaddler 依赖 EvoDAG 的记忆网络和开发集扩展评估机制,实施的是一种“泛化感知选择”。这使得它保留下来的更改,不再是只解决某个单一执行轨迹报错的“临时创可贴(hot-fix)”,而是能够在整个任务分布中发挥长久效用的耐用更新(durable updates)。
结语
从 AutoSaddler 的突破中,我们能够清晰地看到 Agent 开发范式正在发生一次重要的转折。过去我们总是试图通过无休止地雕琢模型本身的 Prompt,期望它在复杂的外部世界中不犯任何错误;但真正的工程共识正在形成:强大的智能体不仅需要聪明的“大脑”(LLM),更需要一副强健且能够自我进化的“骨架”(Harness)。
将 Harness 视为可读写、可验证的代码,并利用 LLM 自身的代码能力和追踪分析能力进行离线闭环进化,为破除人工调优的黑盒状态提供了一条切实可行的坦途。尽管 AutoSaddler 在寻优过程中仍会产生不小的优化器端 API 成本,但用极其稀少的微批次数据换取长达 10 个百分点的性能提升,足以证明这条路走对了。在不久的将来,当我们为一个新的专有领域部署大语言模型时,也许不再需要一整个团队耗时数周去编写防御性的胶水代码,一切只需交给像 AutoSaddler 这样的基建,在几百次失败的废墟之上,一个健壮的生产级 Agent 就将自动崛起。