プロンプトガチャはもう古い?AI駆動開発の極意「エージェントハーネス」とは

Googleが提唱する「エージェントハーネス」の重要性
Googleは、AIエージェントによる開発をテーマにした解説動画「The Agent Factory」の要約記事を公開しました。この中で、Google Cloudのソフトウェアエンジニアであるライアン・ロポポロ氏が提唱する「エージェントハーネス」の重要性が語られています。
ロポポロ氏は2025年5月以降、コードエディタを一度も開いていないにもかかわらず、自律型コーディングを続けているとのこと。個々のコード行を書いたりレビューしたりせず、自然言語を使って作業し、最終的な成果物が組織の基準を満たしているかを判断しているといいます。
エージェントハーネスとは何か?
動画では、AIエージェントを「大規模言語モデル(LLM)とエージェントハーネスの組み合わせ」と定義しています。ハーネスとは、LLMを取り巻くもののうち、モデル自体を除く全てを指します。例えば、「Google Antigravity」で「Gemini 3.8 Flash」を使って作業する場合、Gemini 3.8 FlashがLLMで、Google Antigravityがハーネスに当たります。
LLM単体では「空はなぜ青いのか」といった一般的な質問には答えられますが、「今日はレインコートを着るべきかどうか」といったリアルタイムのデータが必要な質問には対応できません。ハーネスは、質問の意図をくみ取り、リアルタイムの気象ツールに問い合わせ、その結果を「コンテキスト」としてプロンプトに組み込んでモデルに渡し、根拠のある回答を生成させる役割を担います。
「プロンプトを書いて祈る」状態からの脱却
ロポポロ氏は、「ハーネスエンジニアリングは、モデルが成功できる環境にモデルを置くための研究であり、実践だ。これを怠ると、私が『プロンプトを書いて祈る』と呼ぶ状態に陥る」と述べています。ハーネスに先行投資することで、エンジニアは長いプロンプトを書く手間を省けます。リポジトリに構造化されたドキュメントや明確なインタフェース、見つけやすいツールがそろっていれば、モデルはハーネスを使って関連するコンテキストを自ら取得し、人の監督なしに複雑なタスクを実行できるようになります。
エージェントが失敗した際にプロンプトを調整したり再試行したりするだけでは、チーム全体に適用できる改善策にはなりません。ロポポロ氏は、介入を開発ライフサイクルのより早い段階、より低コストで対応を自動化できる段階に移す「シフトレフト」を推奨しています。プロンプトからリポジトリのドキュメント、リンター、テスト、さらに上流の評価へと移していくことで、エージェントが軌道を外れずに済むようになります。
独自のハーネスを作るより、ツールとコンテキストに投資
ハーネスエンジニアリングの中心的な課題は、エージェントが長期間にわたって一貫した作業を続けられるようにすることです。まずエージェントの作業範囲を絞り、人が確認しやすい変更範囲の小さいプルリクエストを作らせることから始めます。これを繰り返して「長期間安定して進められる」と分かれば、コードベース全体のプログラミング言語の移行のような大きな仕事まで自律的に任せられるようになります。
ロポポロ氏は、独自のハーネスを過度に作り込むと、フロンティアモデルが進化した際に技術的負債になり得ると指摘します。標準的なハーネスは、ファイルの読み込み、「grep」による検索、コマンドの実行といったプリミティブ(基本構成要素)を既に備えています。ツールとコンテキストの品質向上に力を注げば、新しいモデルを自由に採用でき、陳腐化しない部分に投資の効果を積み上げ続けられるとのことです。
カスタムハーネスの作り方
Googleのビリー・ジェイコブソン氏(シニアデベロッパーアドボケイト)は、特定のタスクに合わせてエージェントハーネスをカスタマイズする方法を紹介しています。エージェントがうまく動かないときに原因を調べるには、自分でハーネスを作ってみるのが最善だとしています。
どのワークフローでも、ハーネスを設計する上で重要な判断は以下の3つです。
- ループ:エージェントに何回反復させ、どの条件で終了させるか
- ツール:エージェントにどのツールを使わせ、いつ、どのように呼び出させるか
- メモリ:会話や作業のメモリがどれだけ重要で、いつ取り出したり、圧縮したりするか
ジェイコブソン氏は、以下の3つのカスタムハーネスを実演しました。
- 線形エージェントハーネス:反復が不要なワークフロー向け。対象を絞った検査、ファイルの変換、1回のやりとりで終わるデータ分析など、毎回同じ手順で実行させたい場合に適しています。
- クローズドループ型エージェントハーネス:バグ修正やリファクタリングが必要なタスクで、検証済みの解決策に至るまでの反復を支えます。デモでは、エージェントがコードを自動編集し、ハーネスが単体テストを実行。テストが失敗すると、失敗ログとスタックトレースをエージェントの作業メモリに戻し、全てのテストが通るまで繰り返します(最大5回に制限)。
- 安全対策付きハーネス:独自の動作を加えたいが、実行を制御する基本部分を一から作り直したくない場合に有効です。Googleの「Agent Development Kit」(ADK)は、記憶の自動管理と実行時の安全対策を備えた土台を提供します。ADKのコンテキスト圧縮機能で過去の会話を要約したり、独自のフックで危険なシェル操作を止めたりする方法が紹介されました。
モデル、ハーネス、ナレッジのバランスが性能を左右
Googleのスミタ・コラン氏(シニアデベロッパーリレーションズエンジニア)は、コーディングエージェントに必ずしも重い推論モデルは必要なく、高い性能はモデル、ハーネス、ナレッジという3つのレイヤーのバランスから生まれると説明しています。
コラン氏は、レイヤー1(モデル)としてGemini 3.8 Flashを、レイヤー2(ハーネス)としてGoogle Antigravityを、レイヤー3(ナレッジ)には「Google Skills」リポジトリを紹介しました。Google Skillsは、Google Cloudをはじめとする100以上の分野別パッケージを収録したエージェントスキルのリポジトリです。
特定のハーネスに依存せず、必要なときに対象分野の正確なコンテキストを注入することで、エージェントがクラウドの設定を“当て推量”で決めるのを防ぎます。
Googleは、効果的なコーディングエージェントを作るには、「単に大規模なモデルに置き換える」という反射的な対応から脱却し、ツールや決定論的な検証の仕組み、モデルを更新しても価値を失わない整理されたコンテキストに投資すべきだと結論付けています。


