A2Aとは?
執筆日
2025/5/23
1. 結論
異なるベンダーやフレームワークのエージェントと安全かつ効率的に接続を行うためのプロトコルです。
2. A2Aの概要
A2Aは「Agent to Agent」の略称で、エージェント同士が共通の言語でタスク(仕事依頼)や成果物をやり取りできるように定められたプロトコルです。2025年4月にGoogleが仕様を公開し、LangChain、Salesforce、Cohere、Microsoftなど50社以上が参加・貢献しています。
3. なぜA2Aが必要か
背景と課題
企業や組織では、問い合わせ対応、業務自動化、データ分析などにAIエージェントを導入する事例が増えています。しかし、各エージェントがサイロ化されてしまうと以下のような問題が生じます。
- 相互運用性の欠如:異なるプラットフォーム間で連携が難しく、連携コストや開発工数が膨大になる。
- 専門分化の阻害:単一エージェントではすべての業務をこなせず、協業による分担が難しい。
- 拡張性の制限:新たなエージェントを追加する際に、全体の連携仕様を再設計し直さねばならない。
A2Aのメリット
- 標準化による開発効率向上:一度A2Aプロトコルに対応すれば、多種多様なエージェントと自動的に連携可能。
- マルチエージェント協調:得意分野の異なる複数エージェントを組み合わせることで、複雑なタスクを分担・並列処理できる。
- 将来性と拡張性:オープンな標準のため、新規サービスやモダリティ(音声・画像など)にも容易に対応できる。
4. 主要機能(コンポーネント)
A2Aにはいくつかのコンポーネントがあります。そのいくつかを紹介します。
エージェントカード (Agent Card)
説明
エージェントの機能・スキル・エンドポイントURL・認証要件などをまとめた公開メタデータファイル。
何?
- エージェント自身の「自己紹介シート」。
- JSON形式で書かれ、エージェントが何ができるかを記述。
どう使う?
- クライアントエージェントが最適な相手を探す際に取得・参照して、依頼先を決定します。
A2Aサーバー (A2A Server)
説明
A2Aプロトコルのメソッド(JSON-RPCなど)を実装したHTTPエンドポイント。タスクの受信・実行・管理を行います。
何?
- タスク開始リクエストを受け取り、処理を実行する“仕事請負役”。
どう使う?
-
tasks/send
などのAPIを公開し、クライアントからの依頼を受け付けて結果を返します。 - 必要に応じて進捗更新(SSE)や成果物(Artifact)生成も行う。
A2Aクライアント (A2A Client)
説明
A2Aサーバーに対してタスク依頼やステータス確認、結果受け取りを行う側のアプリケーションまたは別エージェントです。
何?
- 「これをやって!」とリクエストを送る“依頼者役”。
どう使う?
- A2Aサーバーのエンドポイントに向けてAPIコールを発行し、進捗や完了通知を受信して次の処理に繋ぎます。
タスク (Task)
説明
エージェント間でやり取りする「仕事の単位」。一意IDと状態(submitted → in_progress → completed など)を持ちます。
何?
- ひとつの処理リクエストを表すオブジェクト。
どう使う?
- クライアントがメッセージでタスクを開始し、サーバーが状態遷移を伴って処理を進め、最終的に完了報告を返します。
メッセージ (Message)
説明
クライアント(role="user")とエージェント(role="agent")間で交わされる通信内容。タスク指示や返答などを含みます。
何?
- 会話や指示、確認などをやり取りする“言葉”。
どう使う?
- タスクのパラメータ設定や途中質問、結果報告などを、JSONのメッセージ単位で送受信します。
パート (Part)
説明
メッセージやアーティファクト内の最小コンテンツ単位。テキスト、ファイル、構造化データなどがあります。
何?
- コンテンツを構成する「部品」。
どう使う?
- テキストパートや画像パート、JSONフォームパートなどを組み合わせてメッセージや成果物を作ります。
アーティファクト (Artifact)
説明
タスク処理の結果として生成される成果物。レポートPDFや画像、構造化データなどが該当します。
何?
- タスク完了後に返される「成果物セット」。
どう使う?
- 完了状態のTaskオブジェクトに含められ、クライアントがダウンロード・利用します。
ストリーミング (Streaming)
説明
長時間実行タスクの進捗や中間成果をリアルタイムに受け取る仕組み。SSE(Server-Sent Events)を利用します。
何?
- リアルタイムの「進捗通知チャネル」。
どう使う?
- クライアントはSSEエンドポイントを購読し、
progress
イベントや中間アーティファクトを逐次受信します。
プッシュ通知 (Push Notifications)
説明
タスク更新時に、あらかじめ登録したWebhook URLへサーバーが自動で通知を送る機能です。
何?
- 完了やエラー発生を即座に知らせる「コールバック機能」。
どう使う?
-
tasks/pushNotification/set
APIでWebhook URLを登録し、サーバーからの更新を受け取って後続処理をトリガーします。
5. 安全かつ効率的な連携の仕組み
プロトコルの基盤としてHTTP、Server-Sent Events(SSE)、JSON-RPC を採用しています。これにより、企業が既に使っている技術との親和性が高くなります。
通信方法
-
HTTPS + JSON-RPC 2.0
タスク依頼や結果報告は、JSON-RPCフォーマットのリクエスト/レスポンスで行います。HTTPS上でTLS暗号化された通信を行うため、盗聴や改ざんを防ぎます。 -
Server-Sent Events(SSE)
長時間実行するタスクや進捗通知にはSSEを活用し、リモートエージェントからステータス更新をリアルタイムに受信できます。
6. MicrosoftのA2Aへの取り組みについて
-
Azure AI Foundry
Azure AI Foundryでは、A2Aプロトコルを活用して、内部のCopilotやパートナーのツール、既存のインフラと連携する複雑なマルチエージェントワークフローを構築できます。これにより、ガバナンスやSLAを維持しながら、エージェント間の協調が可能になります。
-
Copilot Studio
Copilot Studioでは、A2A対応により異なるプラットフォーム間でのエージェント連携が実現します。Microsoft Build 2025では、Multi-Agent Orchestrationが発表され、複数のエージェントを連携させてチームのように業務を分担できます。
-
Microsoft TeamsへのA2A統合
Microsoftは、TeamsプラットフォームにもA2Aプロトコルのサポートを拡大しています。これにより、開発者はTeams内でエージェントを構築・展開し、他のエージェントとシームレスに連携させることが可能になります。また、エージェントのメモリ機能や自動検証機能も強化されています
Discussion