Command Palette
Search for a command to run...
AutoSaddler:基于智能体执行轨迹的持久化更新实现自动脚手架优化
AutoSaddler:基于智能体执行轨迹的持久化更新实现自动脚手架优化
摘要
大语言模型(LLM)智能体在长周期任务上仍不可靠,微小的局部故障会在长时间的交互中不断累积,最终导致整体任务失败。尽管外部脚手架可以显著提升鲁棒性,但脚手架设计仍是一个需要在大规模提示、工具配置和控制逻辑空间中搜索的手动且昂贵的过程。我们提出 AutoSaddler,一个自动脚手架优化框架,它将脚手架改进形式化为一个离线学习问题,并利用小批量数据中的失败信号迭代更新脚手架。AutoSaddler 结合了故障轨迹诊断、将脚手架视为代码的结构化补丁生成,以及基于验证的更新选择。在 GAIA2、SWE-Bench Pro 和 Terminal-Bench 2.0 上的实验表明,AutoSaddler 相较于对应的基础脚手架显著提升了智能体性能,分别取得了 9.0、9.6 和 10.0 个百分点的增益。消融研究进一步表明,有效的脚手架优化得益于三个要素:深度调试而非浅层反思,针对性修改而非无约束编辑,以及泛化感知的选择而非针对特定轨迹的修复。这些结果共同表明,自动脚手架优化是迈向更高性能和更可靠智能体系统的一条有前景的路径。项目网站和代码将在 https://aka.ms/AutoSaddler-website 上发布。
一句话总结
POSTECH、KAIST 等机构提出 AutoSaddler,一种自动 harness 优化框架,将 harness 改进视为基于 agent 执行轨迹的离线学习,结合失败轨迹诊断、基于代码的结构化补丁生成以及基于验证的选择,大幅提升 LLM agent 的鲁棒性,在 GAIA2、SWE-Bench Pro 和 Terminal-Bench 2.0 上分别取得了 9.0、9.6 和 10.0 个百分点的提升。
核心贡献
- AutoSaddler 是一种自动 harness 优化框架,将 LLM agent 的 harness 改进形式化为离线学习问题,结合深度失败诊断、将 harness 视为代码的结构化补丁生成以及泛化感知的更新选择,以产生持久的 harness 改进。
- 在 GAIA2、SWE-Bench Pro 和 Terminal-Bench 2.0 上,AutoSaddler 分别将 agent 性能相较于基础 harness 提升了 9.0、9.6 和 10.0 个百分点,并且分别比最强的自动化基线高出 7.4、4.4 和 6.7 个百分点。
- 消融研究表明,有效的 harness 优化受益于深度调试而非浅层反思、有针对性的修改而非无约束编辑,以及泛化感知的选择而非针对特定轨迹的修复。
引言
大型语言模型表现出锯齿状智能,在某些任务上表现良好,而在密切相关的任务上却失败,这削弱了它们在自主、多步骤 agent 应用中的可靠性。为了缓解这一问题,开发者在模型周围构建外部 harness 层(prompts、tools、middleware),但手动调整这些 harness 缓慢、昂贵且难以扩展,因为设计空间巨大,评估长时域轨迹成本高昂。作者将自动 harness 优化形式化为离线学习问题,并引入 AutoSaddler,一个利用训练任务批次中的失败信号迭代优化 harness 的框架。AutoSaddler 结合了对失败轨迹的深度诊断、对 harness 代码的结构化补丁以及泛化感知的选择,以产生持久的更新,从而提升 agent 在不同环境中的性能。
方法
作者提出 AutoSaddler,一个专为 LLM agent harness 自动优化而设计的迭代框架。他们将此 harness 优化形式化为离线学习问题,采用小批量训练范式来管理基于 rollout 评估的高昂成本。优化空间定义在三类不同的 harness 参数上,即 prompts、tools 和 middleware,表示为 θ=(θprompt,θtool,θmiddleware)。主要目标是在预定义的 rollout 预算 K 内,最大化目标任务分布上的期望任务性能。
请参考框架图以全面了解迭代优化循环。
如下图所示,每次迭代 n 首先在从训练集采样的小批量 Bn 上评估当前 harness Hn(参数为 θn)。然后工作流进入诊断-补丁会话。在此阶段,来自小批量的执行轨迹(包括成功和失败的运行)由诊断-补丁 Agent 进行分析。为了缓解长上下文挑战,该 agent 被提供 harness 代码库和结构化指导,以逐步检索相关轨迹细节。基于这些证据,agent 识别出可疑的根本原因并提出结构化补丁 Δθn。补丁空间并非允许无约束编辑,而是严格组织为与 harness 层对应的三个类别:Prompt、Tool 和 Middleware。此外,作者将这些补丁类型划分为两个更高层次的组:能力补丁,修改可执行代码或编排逻辑;以及引导补丁,由文本编辑组成。为了有效优化这些补丁,AutoSaddler 采用分阶段补丁调度策略,类似于学习率调度,优化从能力补丁阶段开始,然后过渡到引导补丁阶段。
在生成更新后的 harness Hn′=Hn+Δθn 之后,系统在同一小批量上验证补丁。如果补丁带来了小批量性能提升,则进一步在开发集上评估以估计泛化性。无论验证结果如何,工作流都会进入反思会话。在此,反思 Agent 比较补丁前后的轨迹,将结果分类为已修复、已退化、仍然失败和仍然通过的情况。通过有针对性的自我反思问题,引出关于补丁有效性、解决的失败模式以及观察到的退化情况的见解。提取的经验教训以及补丁描述和评估指标作为节点级属性存储在 EvoDAG 中。
进化会话利用 EvoDAG,一个有向无环图 G=(V,E),作为优化过程的累积记忆。每个节点 vn∈V 代表一个先前探索过的 harness,并标注了相关的经验教训和性能信号,而每条有向边 e∈E 代表父 harness 与其后代之间的差异。进化 Agent 并非仅仅从最近的 harness 继续,而是查阅完整的 EvoDAG 来合成下一个候选 harness Hn+1。通过根据积累的经验教训,从先前探索过的 harness 的任意子集中组合元素,这种合并操作类似于进化搜索,使框架能够通过在不同谱系间重组成功组件来逃离局部最优。一旦 rollout 预算耗尽,AutoSaddler 返回在开发集上取得最高经验分数的候选 harness。
实验
AutoSaddler 在三个不同的基准上进行了评估:GAIA2、SWE-Bench Pro 和 Terminal-Bench 2.0,使用基础 harness,并与以 prompt 为中心的基线(GEPA)和 harness 优化基线(Meta-Harness)进行比较。它始终优于基础 harness 和最强的自动化基线,并且在 Terminal-Bench 上甚至超越了手动专家调整的 harness。消融研究表明,其三个核心设计原则(深度诊断、结构化干预和泛化感知选择)至关重要:移除其中任何一个都会显著降低性能,其中泛化感知选择最为关键,因为它能防止过拟合并减少在未见场景上的退化。
补丁分类法将 harness 修改组织为 prompt、tool 和 middleware 类别。每个子类型被标记为能力或引导,区分扩展或修复功能工具的补丁与引导 agent 行为的补丁。这种分离明确了补丁是改变 agent 能做什么还是如何使用现有能力。能力补丁包括添加新工具、修改工具参数和修复内部工具实现,所有这些都扩展或纠正功能行为。引导补丁包括 prompt 规则的添加或修改、工具描述修复以及工具使用前的钩子,这些引导行为而不增加新的功能能力。
AutoSaddler 在 GAIA2 上取得了最高的测试集 Pass@1,优于默认 agent 和所有自动化基线。消融研究表明,其三个核心设计原则——深度诊断、结构化干预和泛化感知选择——都对整体性能有显著贡献,其中移除泛化感知选择会导致最大的性能下降。AutoSaddler 将 Pass@1 相较于默认 agent 提升了 9.0 个百分点(从 53.0% 到 62.0%)。它比最强的自动化基线 GEPA 高出 7.4 个百分点(54.6% vs. 62.0%)。移除深度诊断使 Pass@1 从 62.0% 降至 57.8%。移除结构化干预使 Pass@1 从 62.0% 降至 56.9%。消融泛化感知选择导致性能下降最大,从 62.0% 降至 50.6%。
AutoSaddler 发现的 harness 在 SWE-Bench Pro 和 Terminal-Bench 2.0 上始终优于手动和自动化基线。在 SWE-Bench Pro 上,它将平均 Pass@1 相较于 SWE-agent 手动 harness 提升了 8.4 个百分点,并比最佳自动化基线 GEPA 高出 6.2 个百分点。在 Terminal-Bench 2.0 上,它相较于基础 Terminus 2 harness 提升了 10.0 个百分点,甚至比专家调整的 KIRA harness 高出 2.5 个百分点。AutoSaddler 在 SWE-Bench Pro 上取得了最高的平均 Pass@1,优于手动 SWE-agent harness 以及自动化 GEPA 和 Meta-Harness 基线。在 Terminal-Bench 2.0 上,AutoSaddler 超越了手动专家调整的 Terminus KIRA harness,证明了自动 harness 优化的有效性。
补丁分类法将 harness 修改分为能力补丁和引导补丁,明确它们是扩展工具功能还是引导 agent 行为。AutoSaddler 作为一种自动 harness 优化方法,在 GAIA2、SWE-Bench Pro 和 Terminal-Bench 2.0 上始终超越手动和自动化基线。消融研究表明,其深度诊断、结构化干预和泛化感知选择三个设计原则都至关重要,其中泛化感知选择对于维持性能最为关键。