A2A サーバーをホストする
エージェントがスキルとエージェント カードを定義したら、次の手順はサーバーでホストすることです。 ホスティングを使用すると、エージェントは HTTP 経由でクライアントやその他のエージェントからアクセスでき、リアルタイムの対話とマルチエージェント ワークフローが可能になります。
エージェントをホストすると、次のことができます。
- エージェント カードを介してその機能を公開し、クライアントや他のエージェントが検出できるようにします。
- 受信した A2A 要求を受信し、処理のために エージェント Executor に転送します。
- ストリーミング応答やステートフルな対話など、タスクのライフサイクルを管理します。
実質的に、サーバーはエージェントのロジックと外部の世界との間のブリッジとして機能し、調整されたワークフローに参加できるようにします。
エージェント サーバーのコア コンポーネント
エージェントをホストするには、次の 3 つの重要なコンポーネントが連携している必要があります。
エージェント カード
- エージェントの機能、スキル、入出力モードについて説明します。
- クライアントやその他のエージェントがエージェントを検出できるように、標準エンドポイント (通常は
/.well-known/agent-card.json) で公開されます。 - 認証されたユーザーの複数のバージョンまたは "拡張" カードを含めることができます。
要求ハンドラー
- 着信要求を エージェント Executor の適切なメソッド (
executeやcancelなど) にルーティングします。 - タスク ストアを使用してタスクのライフサイクルを管理します。タスク、ストリーミング データ、および再送信を追跡します。
- 単純なエージェントでも、対話を確実に処理するためにタスク ストアが必要です。
サーバー アプリケーション
- HTTP 要求を処理するために Web フレームワーク (Python では Starlette) を使用して構築されます。
- ASGI サーバー (Uvicorn など) と組み合わせて、ネットワーク インターフェイスとポートでリッスンを開始します。
- エージェント カードと要求ハンドラー エンドポイントを公開し、クライアントがエージェントと対話できるようにします。
A2A エージェント サーバーを設定する
- エージェントのスキルとエージェント カードを定義します。
- エージェント Executor をタスク ストアにリンクする要求ハンドラーを初期化します。
- エージェント カードと要求ハンドラーを提供して、サーバー アプリケーションを設定します。
- ASGI サーバー (Uvicorn) を使用してサーバーを起動し、ネットワーク上でアクセスできるようにします。
- 実行されると、エージェントは受信要求をリッスンし、定義されたスキルに従って応答します。
"Hello World" エージェントは、基本的なあいさつスキルを公開する場合があります。 ホストされると、エンドポイントに送信されたすべての要求に応答できます。 より複雑なエージェントは、認証されたユーザーに対して複数のスキルまたは拡張エージェント カードを提供できます。
A2A エージェントをホストすると、エージェント カード、要求ハンドラー、およびエージェント Executor を組み合わせて、クライアントとエージェントの対話に使用できるようになります。 このセットアップにより、タスクが正しく管理され、応答が確実に配信され、エージェントがマルチエージェント ワークフローに参加できるようになります。