探索空間
前章では、実行記録(trace)から最初のずれを見つけ、修正仮説を作った。次に決めるのは、最適化器(optimizer)へどこまで変更を許すかである。エージェントのハーネス最適化(harness optimization)における探索空間とは、最適化器が更新候補(candidate)として生成できるハーネス(harness)の集合であり、編集面(edit surface)、すなわち変更を許可する範囲によって定まる。
たとえば、システムプロンプトだけを変更する設定と、ツールの呼び出し順や再試行まで変更する設定では、作れる候補が異なる。後者は多くの失敗を直せる一方、探索と検証も難しくなる。
変更範囲の粗い見取り図
| 変更範囲 | 変更できるもの | 主に直せる失敗 | 例 |
|---|---|---|---|
| プロンプト | 指示、例示 | 指示不足、例示不足、出力形式のずれ | DSPy、GEPA |
| ワークフロー | ツールの順序、分岐、反復、再試行 | 判断の順序、確認漏れ、早すぎる終了 | AFlow |
| ハーネス実装 | ツールインターフェース、状態管理、メモリ、復旧処理 | ワークフロー編集だけでは表現できない制御 | ADAS、DGM |
これは設計初期の自由度を把握するための粗い見取り図であり、三つが排他的な階層という意味ではない。実際の成果物(artifact)はプロンプト、メモリ、ワークフロー、実行時フック(runtime hook)などに重なって保存される。Part IIの編集対象では、これらを六つの重なり得る編集面へ分け、固定すべきインターフェースとともに定義する。
どこまで広げるか
変更範囲を広げると、稀な実行経路でインターフェースを壊す、検証タスク専用のショートカットを埋め込む、ツール権限まで変えてしまう、といった危険も増える。したがって、失敗を直せる最小の編集面から始め、必要なときだけ広げるのが原則である。
要点
探索空間は広いほど良いわけではない。この三段階は方向づけに使い、実際の変更権限は成果物とインターフェースの単位で定義する。