Agent Harness
エージェントハーネスは、基盤モデルにツール、メモリ、制御ループ、権限、モニタリングを組み合わせ、実用的なAIエージェントにします。
エージェントハーネスとは、基盤モデルを実用的なAIエージェントにするソフトウェアレイヤーです。モデルを指示、ツール、メモリ、実行ループ、権限、検証、監視で囲みます。LangChainによるエージェントハーネスの構造を簡潔に表すと、モデルが知能を提供し、ハーネスがその知能を利用可能にします。この違いが重要なのは、信頼性の高いエージェント型ワークフローがモデル品質だけに依存しないためです。
エージェントハーネスの仕組み#
ハーネスは、モデルにコンテキストを繰り返し与え、その応答を解釈し、承認されたアクションを実行して、次の判断に向けて結果を返します。一般的な構成要素は次のとおりです。
- 指示とコンテキスト: エージェントの役割、利用可能な情報、制約、完了条件を定義します。
- ツール実行: Model Context Protocolツールなどのインターフェースを通じて、モデルをAPI、データベース、コードインタープリター、ビジョンモデルに接続します。
- 状態とメモリ: 複数のステップやセッションにわたって、計画、観察結果、ファイル、以前のアクションを保持します。
- 制御フロー: リトライ、分岐、サブエージェント、タイムアウト、トークン予算、停止条件を管理します。
- トレースと評価: OpenAI Agents SDKのトレーシングなどの機能を使って、判断とツール呼び出しを記録します。
- 安全性制御: OpenAIのエージェントガードレールなどの仕組みを通じて、権限、入力チェック、出力検証、人間による承認を適用します。
ループの各ターンは次のように動作します。
再利用可能な構成要素を提供するエージェントSDKとは異なり、ハーネスは特定のアプリケーション向けに構成された実行時の動作です。また、ツール接続を標準化するMCPや、エージェント間の通信に重点を置くGoogleのAgent2Agentプロトコルとも異なります。
エージェントハーネスが重要な理由#
エージェント構築に関するOpenAIのガイドと効果的なエージェントに関するAnthropicのガイダンスでは、シンプルで組み合わせ可能なパターンから始めることを推奨しています。実際には、適切に設計されたハーネスによって、定型的な状態管理を外部化し、検証を追加することで、モデルの重みを変更せずに信頼性を高められます。最近の研究では、編集可能な自然言語ハーネス、Meta-Harnessによる自動最適化、HarnessXによる適応的な構成が探られています。
コンピュータービジョンの例#
ビジョンエージェントでは、Ultralytics YOLO26を認識ツールとして利用し、次の処理を決定論的なハーネスロジックで制御できます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
labels = {results[0].names[int(cls)] for cls in results[0].boxes.cls}
action = "Send alert" if "person" in labels else "Continue monitoring"
print(action)この例では、モデルに制限のない制御を許すのではなく、明示的な判断ルールとYOLOの予測モードを組み合わせています。
実際のアプリケーション#
- 製造業の目視検査: ハーネスがカメラ画像を取得し、欠陥検出を実行して信頼度のしきい値を確認します。その後、メンテナンスチケットを作成し、不確実なケースでは人間によるレビューを依頼します。
- 待ち行列管理: ビジョンエージェントが人数と待ち時間を計測し、設定可能な収容人数と時間の上限を超えた場合にのみスタッフへ通知します。
チームはUltralytics Platformを使ってデータセットにアノテーションを付与し、専用のビジョンモデルを学習させ、エンドポイントをデプロイし、これらのワークフロー内で監視できます。
ベストプラクティス#
ツールの適用範囲を狭く保ち、取り消せない操作には承認を求め、再試行を冪等にし、構造化出力を検証してください。また、最終回答だけでなく、一連の実行経路全体をテストします。OWASPのエージェント型アプリケーションのリスクと、策定が進むNISTのAIエージェント標準に従ってください。OpenHarnessなどのオープンな実装は、モジュール式の権限、フック、メモリ、ツール、マルチエージェント連携の例にもなります。










