A2A サーバーをホストする

完了

エージェントがスキルとエージェント カードを定義したら、次の手順はサーバーでホストすることです。 ホスティングを使用すると、エージェントは HTTP 経由でクライアントやその他のエージェントからアクセスでき、リアルタイムの対話とマルチエージェント ワークフローが可能になります。

エージェントをホストすると、次のことができます。

  • エージェント カードを介してその機能を公開し、クライアントや他のエージェントが検出できるようにします。
  • 受信した A2A 要求を受信し、処理のために エージェント Executor に転送します。
  • ストリーミング応答やステートフルな対話など、タスクのライフサイクルを管理します。

実質的に、サーバーはエージェントのロジックと外部の世界との間のブリッジとして機能し、調整されたワークフローに参加できるようにします。

エージェント サーバーのコア コンポーネント

エージェントをホストするには、次の 3 つの重要なコンポーネントが連携している必要があります。

エージェント カード

  • エージェントの機能、スキル、入出力モードについて説明します。
  • クライアントやその他のエージェントがエージェントを検出できるように、標準エンドポイント (通常は /.well-known/agent-card.json) で公開されます。
  • 認証されたユーザーの複数のバージョンまたは "拡張" カードを含めることができます。

要求ハンドラー

  • 着信要求を エージェント Executor の適切なメソッド ( executecancelなど) にルーティングします。
  • タスク ストアを使用してタスクのライフサイクルを管理します。タスク、ストリーミング データ、および再送信を追跡します。
  • 単純なエージェントでも、対話を確実に処理するためにタスク ストアが必要です。

サーバー アプリケーション

  • HTTP 要求を処理するために Web フレームワーク (Python では Starlette) を使用して構築されます。
  • ASGI サーバー (Uvicorn など) と組み合わせて、ネットワーク インターフェイスとポートでリッスンを開始します。
  • エージェント カードと要求ハンドラー エンドポイントを公開し、クライアントがエージェントと対話できるようにします。

A2A エージェント サーバーを設定する

  1. エージェントのスキルとエージェント カードを定義します。
  2. エージェント Executorタスク ストアにリンクする要求ハンドラーを初期化します。
  3. エージェント カードと要求ハンドラーを提供して、サーバー アプリケーションを設定します。
  4. ASGI サーバー (Uvicorn) を使用してサーバーを起動し、ネットワーク上でアクセスできるようにします。
  5. 実行されると、エージェントは受信要求をリッスンし、定義されたスキルに従って応答します。

"Hello World" エージェントは、基本的なあいさつスキルを公開する場合があります。 ホストされると、エンドポイントに送信されたすべての要求に応答できます。 より複雑なエージェントは、認証されたユーザーに対して複数のスキルまたは拡張エージェント カードを提供できます。

A2A エージェントをホストすると、エージェント カード、要求ハンドラー、およびエージェント Executor を組み合わせて、クライアントとエージェントの対話に使用できるようになります。 このセットアップにより、タスクが正しく管理され、応答が確実に配信され、エージェントがマルチエージェント ワークフローに参加できるようになります。