論文解説: AutoSaddler — エージェントの失敗ログから「壊れないハーネス」を自動で育てる
LLMエージェントの外側を固める「ハーネス」(プロンプト・ツール・ミドルウェア)を、失敗トレースの診断とパッチ生成の反復で自動最適化する枠組みAutoSaddlerを、前提知識ゼロから解説する。GAIA2/SWE-Bench Pro/Terminal-Bench 2.0で基準ハーネスをそれぞれ9.0/9.6/10.0ポイント上回った。
AutoSaddler: Automatic Harness Optimization with Durable Updates from Agent Execution Traces
一次資料 — この記事の根拠
論文の発表 2026-08-24→この解説の公開 2026-09-03同月
AutoSaddler: Automatic Harness Optimization with Durable Updates from Agent Execution TracesSungho Park, Wonjoong Kim, Rongyuan Tan ほか · 2026-08-24 · v1arXiv:2608.23041論文ページ·PDF原文の要旨(Abstract)を読む
LLM agents remain unreliable on long-horizon tasks, where small local failures can compound over extended interactions and lead to overall task failure. Although external harnesses can substantially improve robustness, harness design remains a manual and expensive process that requires searching over a large space of prompts, tool configurations, and control logic. We propose AutoSaddler, an automatic harness optimization framework that formulates harness improvement as an offline learning problem and iteratively updates the harness using failure signals from mini-batches. AutoSaddler combines failure-trace diagnosis, structured patch generation that treats the harness as code, and validation-based update selection. Experiments on GAIA2, SWE-Bench Pro, and Terminal-Bench 2.0 show that AutoSaddler substantially improves agent performance over the corresponding base harnesses, achieving gains of 9.0, 9.6, and 10.0 percentage points, respectively. Ablation studies further suggest that effective harness optimization benefits from three ingredients: deep debugging rather than shallow reflection, targeted modifications rather than unconstrained editing, and generalization-aware selection rather than trajectory-specific repair. Together, these results suggest that automatic harness optimization is a promising path toward more performant and reliable agent systems.
同じモデルなのに成績が変わる
同じLLMを使っているのに、エージェントの成功率が10ポイント違う。差を生んでいるのはモデルではなくモデルの外側、つまりシステムプロンプト、ツールの実装、ツールの説明文、エージェントループの制御ロジック、フックの文面といった部品群です。この外側の総体を harness(ハーネス) と呼びます。
今回読むのは、そのハーネスを人手ではなく機械に育てさせる論文です。原題は "AutoSaddler: Automatic Harness Optimization with Durable Updates from Agent Execution Traces"(Sungho Park ほか、arXiv:2608.23041、2026年8月24日)。
論文の主張を要約するとこうなります。LLMエージェントは長期タスクで不安定であり、小さな局所的失敗が長い対話の中で積み重なって全体の失敗につながる。外部のハーネスは頑健性を大きく改善しうるが、その設計はプロンプト・ツール構成・制御ロジックという広大な空間を人手で探索する高価な作業である。そこで著者らは、ハーネス改善をオフライン学習問題として定式化し、ミニバッチから得た失敗シグナルでハーネスを反復更新する枠組み AutoSaddler を提案する。AutoSaddler は「失敗トレースの診断」「ハーネスをコードとして扱う構造化されたパッチ生成」「検証にもとづく更新の採否判定」を組み合わせる。GAIA2・SWE-Bench Pro・Terminal-Bench 2.0 の3ベンチマークで、対応する基準ハーネスをそれぞれ 9.0・9.6・10.0 ポイント上回った。
ハーネスとは何か
ハーネスは元々、馬具のことです。馬(LLM)そのものを鍛え直さなくても、鞍や手綱の付け方を変えるだけで乗り手の意図は正確に伝わるようになる。タイトルの Saddler は「馬具職人」で、その職人仕事を自動化する、という名前です。
具体的には次の3つが「馬具」で、論文は最適化空間をこの3種類に限定しています(§3)。プロンプト(システムプロンプトや指示文)、ツール(使える道具とその引数・戻り値・docstring)、ミドルウェア(フックやエージェントループなど実行時の制御ロジック)。メモリやスキルの管理は、扱うタスクが状態を持たない前提のため対象外だと明示されています。
問題は、この3層の組み合わせが巨大で、しかも候補を1つ評価するだけで高くつくことです。エージェントは成否が判明するまで何十手も動かねばならず、その長い軌跡を人間が読んで原因を特定する作業自体が重労働になります(§1)。
「ハーネスを学習する」という見立て
中心にある発想は、ハーネス改善を機械学習のミニバッチ訓練とみなすことです(§4、付録A)。タスク集合を訓練・開発(dev)・テストに分け、毎イテレーションで訓練セットから小さなミニバッチを取り、現在のハーネスを実行し、失敗から更新を作り、汎化するかを dev で確かめる。外側の骨格はニューラルネットの学習と同じです。
違うのは中身です。ハーネスのパラメータは数値ではなくテキストと実行可能コードなので微分できません。勾配が使えない以上、「どちらへどれだけ動かせばよいか」は誰も教えてくれない。ここが本論文のすべての設計の出発点です。
目的関数を書き下す
タスク をタスク分布 から取り、ハーネスのパラメータ のもとでエージェントを走らせると、実行トレース と最終出力 が確率的に得られます。最適化空間は次の3つ組です(§3)。
いじってよいのは「指示文」「道具」「実行時の制御」の3つだけで、モデルの重みには一切触らない、という宣言です。最大化したいのはタスク分布全体での期待性能で、 を正解、 を評価指標として、
これは「いろいろなタスクを引いて、それぞれ何度も実行したときの平均点」です。期待値が二重なのは、タスクの引き方(外側)とエージェント実行のランダムさ(内側)の両方を平均するためです。 は直接観測できず1回の実行が予算を食うので、実際にはロールアウト予算 の中で探索した候補のうち dev スコアが最も高いものを返す手続きになります。テストセットはその最終評価にしか使いません。
4つのセッションが回る
1イテレーションの流れです(§4)。まず現在のハーネス をミニバッチ で走らせ、成功・失敗のトレースを集めます。次の診断・パッチセッションでは、失敗トレースとハーネスのソースコードの両方をエージェントに渡し、長大なトレースを段階的に掘り下げさせて根本原因を特定させ、対立仮説も検討させたうえでパッチ を出させます。論文は診断とパッチ生成をあえて分離していません。診断中に集めた文脈をそのままパッチに活かすためです。
パッチは同じミニバッチで検証し、 のときだけ dev セットで追加評価します。続くリフレクションセッションはパッチ前後を比較し、結果を fixed / regressed / still-failing / still-passing の4つに分類して「なぜ効いたか」「なぜ退行したか」を言語化します。得た教訓は EvoDAG という有向非巡回グラフに蓄積され(ノードが探索済みハーネス、エッジが差分)、進化セッションが次の候補 を作ります。ここで の続きに限らず、過去の任意の系統から良い部分を混ぜて作れるのが特徴です。
コメント
コメントにはログインが必要です