AIコーディング

プロンプト依存を脱するAIエージェントハーネス設計の要点

プロンプト依存を脱するAIエージェントハーネス設計の要点のアイキャッチ画像

AIエージェントの実力を左右する「ハーネス」

Googleが公開した「The Agent Factory」の内容によると、AIエージェントは大規模言語モデル(LLM)と「エージェントハーネス」の組み合わせとして捉えられる。ハーネスとは、モデルにツール、データ、実行手順、評価基準などを与え、作業を制御する仕組みだ。

記事では、モデル単体で答えられない問いに対し、ハーネスがユーザーの意図を把握し、外部ツールから情報を取得してコンテキストとしてモデルへ渡す例が示されている。

プロンプト調整から環境設計へ

Google Cloudのエンジニア、ライアン・サルバトーレ氏は、モデルを取り巻く環境を改善する「ハーネスエンジニアリング」の重要性を説明している。個別のプロンプトを繰り返し調整するだけでなく、リポジトリ内の文書、明確なインタフェース、利用しやすいツールを整備する考え方だ。

記事が示す開発工程の移行先は、プロンプトからドキュメント、リンター、テスト、上流の評価へと広がる。AGENTS.mdのような指示ファイルやテストに判断基準を組み込めば、エージェントが毎回詳細な指示を受けなくても作業しやすくなる。

ハーネス設計の3要素

Googleのビリー・ジェイコブソン氏は、カスタムハーネスを設計する際の判断項目として、次の3点を挙げている。

  • ループ:エージェントに何回処理を反復させ、どの条件で終了させるか
  • ツール:どのツールを、いつ、どのように呼び出せるようにするか
  • メモリ:会話履歴のうち何を保持し、いつ取り出し、必要に応じて圧縮するか

用途別のカスタムハーネス

線形エージェントハーネス

反復を必要としない処理に向く。対象記事の処理、ファイル変換、1回の実行で結果が確定するデータ抽出など、同じ手順を一度だけ実行する用途が例示されている。

クローズドループ型ハーネス

バグ修正やリファクタリングのように、検証と修正を繰り返す作業に使う。記事のデモでは、コード編集後に単体テストを実行し、失敗時にはログとスタックトレースをエージェントへ戻して再修正させている。無限反復を避けるため、試行回数は最大5回に制限されていた。

安全対策フック

独自のハーネスでは、ツール実行前にシェル操作を検査するフックも設計できる。記事では、再帰的なファイル削除、データベース削除、許可されていないリモートへのgit pushなどを停止する例が紹介されている。

記事に登場するツールと役割

  • Google Antigravity:記事ではLLMを動かすハーネスの例として説明されている。
  • Agent Development Kit(ADK):会話履歴の管理や、実行時の安全対策を提供する。コンテキスト圧縮により、長時間のデバッグで履歴が増え過ぎることを抑える使い方が紹介されている。
  • Google Skills:Google Cloudを含む100以上の分野別パッケージを収録したエージェントスキルのリポジトリとして紹介されている。必要な分野のコンテキストをエージェントへ注入する用途を持つ。
  • grepやコマンドラインツール:ファイル検索やコマンド実行など、ハーネスの基本機能として利用する。

モデル、ハーネス、知識のバランス

記事では、コーディングエージェントの性能はモデルだけで決まらず、モデル、ハーネス、知識という3層のバランスから生まれると整理している。モデルを大型化するだけでなく、ツール、決定論的な検証、モデル更新後も利用できるコンテキストへ投資することが重要だという。

編集部による整理:これは、AIコーディングの改善対象を「より良い指示文」だけに限定せず、反復制御、テスト、安全策、文書化まで含む開発環境全体として扱う考え方だと解釈できる。

出典

@IT:プロンプトエンジニアリングはもう古い? 「ハーネスの力」を説くAI駆動開発の新潮流