AutoSaddler:把 Agent Harness 当代码学,自动从失败 Traces 打补丁优化性能 · 干货攻略

  • 链接: https://x.com/omarsar0/status/2092246879702769956
  • 分类: x-tips
  • 来源: X @omarsar0
  • 作者: Jay
  • 更新: 2026-08-30
  • 仓库: microsoft/AutoSaddler

这是什么

AutoSaddler 是微软研究院提出的自动 Agent Harness 优化框架,将 Harness 的改进建模为离线学习问题,用"失败信号"指导迭代更新。简单说:它让 AI 自动分析 Agent 的执行失败记录,像程序员修 Bug 一样给 Harness 打补丁——区别在于它打的是结构化补丁(prompt 规则、工具定义、中间件逻辑),并通过验证选择泛化性好的更新。

官方代参(Pass@1 测试集):

Benchmark 基础 Harness 基础得分 AutoSaddler 得分 提升
GAIA2 Default ReAct agent 53.0% 62.0% +9.0 pp
SWE-Bench Pro SWE-agent 37.3% 46.9% +9.6 pp
Terminal-Bench 2.0 Terminus 2 40.0% 50.0% +10.0 pp

GAIA2 开发集上,AutoSaddler 仅用约 1000 次任务执行就达到了 72.3% 准确率,而 Meta Harness 和 GPA 基线用了近 3000 次执行却仍停留在低 60% 区间(来源:项目主页视频说明)。


为什么值得关注

@omarsar0 分享时点出了核心价值:这是 agent harness 工程化的一个新范式。在此之前,Harness 调优全靠人工——改 system prompt、添工具定义、调控制逻辑,靠经验一点点试。AutoSaddler 把这个过程自动化了,而且效果有量化支撑。

它解决什么问题: - Agent 在长周期任务上局部失败会级联放大,最终导致整体任务失败 - 人工设计 Harness 成本高、搜索空间大(prompt × 工具配置 × 控制逻辑) - 已有自动化方案(如 GPA、Meta Harness)效率低、泛化差

值得关注的三个设计要点(均来自官方 ablation):

  1. 深度诊断优于浅层反思:诊断 Agent 每轮平均多调用 6.2 次工具、5.8 次文件访问来定位根因;到第 25 轮时产生了 13 个被采纳的补丁(vs. 无深度诊断时只有 5 个)
  2. 结构化干预优于无约束编辑:无结构时 91.5% 的补丁是trivial文本修改;AutoSaddler 主动探索"新工具"类型(接受率 83%)和"循环变更"类型(接受率 71%)
  3. 泛化感知选择是关键:移除这个机制后,GAIA2 得分从 62.0% 跌至 50.6%(下降 11.4 pp),是 ablation 中影响最大的一项;回归率趋势也不同——有选择机制时下降(−0.24 pp/iter),无选择机制时上升(+0.16 pp/iter)

核验过程

官方来源: 1. GitHub README(microsoft/AutoSaddler):确认了架构概述、V1/V2 版本区别、benchmark 数字、三类 session(Diagnosis-Patch / Reflection / Evolution)、patch taxonomy、依赖(Python 3.12-3.14 + uv + git)、配置文件路径、V2 smoke run 命令 2. arXiv 2608.23041(摘要页):确认了 abstract 内容、作者列表(微软 + POSTECH + KAIST + 南科大)、三个 benchmark 提升数字与 README 一致 3. 项目主页(autosaddler-projectpage.github.io):确认了 GAIA2 开发集 72.3% vs. GEPA 64.6% vs. Meta-Harness 61.5%、三个关键 ingredient 的具体数字(诊断工具调用次数、patch 接受率、泛化选择移除后下降 11.4 pp)

交叉验证结论: - GAIA2 +9.0 pp(SWE-Bench Pro +9.6 pp, Terminal-Bench 2.0 +10.0 pp)在三处来源中完全一致 - GAIA2 dev-set 72.3% 仅来自项目主页,GitHub README 和 arXiv 均未收录此数字(标注为原帖主张,项目主页可查) - "超过最强自动化基线 7.4/4.4/6.7 pp" 仅来自 arXiv HTML 页,GitHub README 未列,交叉验证为单一来源,标注为原帖主张


上手步骤

环境准备

AutoSaddler 需要 Python 3.12–3.14uvGit

git clone https://github.com/microsoft/AutoSaddler.git
cd AutoSaddler
uv sync --extra dev

所有 Python 命令均通过 uv run 执行。

运行 V2 Smoke Test(无需凭证)

V2 是当前推荐版本,运行确定性 smoke test:

uv run python -m autosaddler.v2.cli \
 --config configs/v2/local_template.yaml \
 --run-id local-template

重复运行同一命令会从上次状态恢复(校验输入后接续执行)。

运行 Meta-ARE/GAIA2 端到端集成

V2 smoke config 对 7 个 GAIA2 场景做两轮优化(6 个训练 case + 1 个开发 case),需提前准备 sibling 目录结构:

/
|-- AutoSaddler/
|-- Meta-ARE/
|-- meta_are_data/
`-- working_dir/
# 克隆适配版 Meta-ARE
cd ..
git clone https://github.com/pshlego/Meta-ARE.git Meta-ARE
git -C Meta-ARE checkout --detach 2419824a94fb8211fc8227ada7bff1b29f86e563
mkdir -p working_dir

# 返回 AutoSaddler 并安装依赖
cd AutoSaddler
uv sync --extra meta-are-setup

# 拉取 GAIA2 数据(Hugging Face)
# 然后运行 smoke 实验
uv run python -m autosaddler.v2.cli \
 --config configs/v2/meta_are_smoke.yaml \
 --run-id meta-are-smoke

配置结构简介

每个 V2 配置文件以 schema_version: autosaddler/v2 开头,声明四个所有权域:

区块 职责
scenario Plugin 类型、数据集、evaluator、harness 可变表面
optimization 任务选择、接受标准、开发集门控、排名、预算
provider 优化器 provider、模型、端点
storage 持久化运行根目录

配置采用严格 fail-closed 策略:相同 run ID 必须输入 byte-identical,否则拒绝。


坑与适用边界

已知限制: - 当前 V2 smoke config 是有界集成测试(7 个场景、2 轮),非完整论文实验,完整实验时间更长且有 provider 费用 - 优化依赖 LLM provider(内置 fake provider、Anthropic Claude Agent SDK、GitHub Copilot SDK transport),本地运行需配置相应凭证 - OpenClaw 和 Codex 集成、Terminal-Bench 基准集成尚未完成(README 原文:"coming soon") - SWE-Bench Pro 和 Terminal-Bench 2.0 的具体 patch 细节尚未开源,仅 base → optimized 数字可查

适用边界: - 适合已有 Agent Harness 且希望在固定基准上提分的团队 - 不适合:没有明确评估基准、无失败 traces 数据、无法承担 provider 调用的场景 - 当前覆盖的 Harness 空间:Structured component map(fake)、Git repository(Meta-ARE);其他 harness 类型需自行开发 scenario plugin


一句话结论

AutoSaddler 把 Harness 优化从人工调参变成了可复现的自动化 pipeline——深度诊断找根因、结构化补丁打代码、泛化感知选更新,三板斧下来 GAIA2/SWE-Bench Pro/Terminal-Bench 2.0 各自提升约 9–10 个百分点,且效率远超 Meta Harness 等基线。如果你在做 Agent 系统且对 harness 有持续优化需求,这个框架值得跟进。