結論
「AIエージェント同士を繋ぐHTTP」
異なるフレームワーク、異なるベンダーのAIエージェント同士が会話・協調するためのプロトコル。Googleが開発。
一言で言うと
┌─────────────────────────────────────────────────────────┐
│ │
│ A2A = Agent2Agent Protocol │
│ │
│ 「AIエージェント間通信のオープンプロトコル」 │
│ │
│ ・2025年4月、Googleが発表 │
│ ・50以上のパートナー企業が参加 │
│ ・2025年6月、Linux Foundationに移管 │
│ │
│ → マルチエージェント時代の標準規格 │
│ │
└─────────────────────────────────────────────────────────┘
MCPとの違い
┌─────────────────────────────────────────────────────────┐
│ │
│ 【MCP】 │
│ │
│ エージェント ←→ ツール │
│ │
│ 「工具を使う」プロトコル │
│ 例: ファイル読み書き、DB検索、API呼び出し │
│ │
│ ──────────────────────────────────────────── │
│ │
│ 【A2A】 │
│ │
│ エージェント ←→ エージェント │
│ │
│ 「同僚と会話する」プロトコル │
│ 例: 依頼、相談、情報交換、タスク分担 │
│ │
└─────────────────────────────────────────────────────────┘
なぜ必要?
┌─────────────────────────────────────────────────────────┐
│ │
│ 【単一エージェントの限界】 │
│ │
│ 1つのエージェントに全部やらせるのは無理がある │
│ ・専門性が分散 │
│ ・コンテキストウィンドウの限界 │
│ ・単一障害点 │
│ │
│ ──────────────────────────────────────────── │
│ │
│ 【マルチエージェントの世界】 │
│ │
│ 専門家チームのように協働させたい │
│ ・営業エージェント │
│ ・在庫管理エージェント │
│ ・配送エージェント │
│ ・請求エージェント │
│ │
│ → でも異なるフレームワークで作られている │
│ → どうやって会話させる? → A2Aの出番 │
│ │
└─────────────────────────────────────────────────────────┘
車の修理屋さんの例え(公式ドキュメントより)
┌─────────────────────────────────────────────────────────┐
│ │
│ 【自動車修理工場】 │
│ │
│ 整備士A: 「リフトを2m上げて」 │
│ → MCP(ツール操作) │
│ │
│ 整備士A: 「レンチを4mm右に回して」 │
│ → MCP(ツール操作) │
│ │
│ ──────────────────────────────────────────── │
│ │
│ お客さん: 「車から変な音がするんですけど...」 │
│ → A2A(エージェント間会話) │
│ │
│ 整備士A: 「左のタイヤの写真送ってもらえます?」 │
│ → A2A(情報交換) │
│ │
│ 整備士A: 「液漏れしてますね。部品発注します」 │
│ → A2A(タスク依頼) │
│ │
│ ──────────────────────────────────────────── │
│ │
│ MCP = 工具を使う │
│ A2A = 人と会話する │
│ │
└─────────────────────────────────────────────────────────┘
アーキテクチャ
┌─────────────────────────────────────────────────────────┐
│ │
│ 【A2Aの構成】 │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Agent A │ │ Agent B │ │
│ │ (LangChain製) │ │ (AutoGen製) │ │
│ │ │ │ │ │
│ │ ┌───────────┐ │ │ ┌───────────┐ │ │
│ │ │A2A Client │ │ │ │A2A Server │ │ │
│ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │
│ └────────┼───────┘ └───────┼────────┘ │
│ │ │ │
│ │ A2A Protocol │ │
│ │ (HTTP/SSE/gRPC) │ │
│ └────────────────────┘ │
│ │
│ 異なるフレームワークでも通信可能 │
│ │
└─────────────────────────────────────────────────────────┘
Agent Card(エージェントの名刺)
{
"name": "購買エージェント",
"description": "商品の購入を代行します",
"url": "https://agent.example.com",
"capabilities": {
"streaming": true,
"pushNotifications": true
},
"skills": [
{
"id": "purchase",
"name": "商品購入",
"description": "指定された商品を購入します"
}
],
"authentication": {
"schemes": ["OAuth2"]
}
}
エージェントは自分の「名刺」を公開し、他のエージェントが見つけて連携できる。
A2Aの5つの設計原則
┌─────────────────────────────────────────────────────────┐
│ │
│ 1. Embrace agentic capabilities │
│ エージェントを「ツール」ではなく「エージェント」 │
│ として扱う。自然なやり取りを可能に。 │
│ │
│ 2. Build on existing standards │
│ HTTP, SSE, JSON-RPC など既存の標準技術を活用 │
│ │
│ 3. Secure by default │
│ エンタープライズグレードの認証・認可を標準装備 │
│ │
│ 4. Support for long-running tasks │
│ 数時間〜数日かかるタスクにも対応 │
│ 人間の承認が必要なフローも可能 │
│ │
│ 5. Modality agnostic │
│ テキスト、画像、音声、動画など様々な形式に対応 │
│ │
└─────────────────────────────────────────────────────────┘
参加企業(50社以上)
【テクノロジー企業】
・Google(発起人)
・Salesforce
・SAP
・ServiceNow
・Atlassian
・MongoDB
・Box
【金融・決済】
・PayPal
・Intuit
【コンサルティング】
・Accenture
・BCG
・Capgemini
・Deloitte
・KPMG
・McKinsey
・PwC
【AI/MLプラットフォーム】
・Cohere
・LangChain
・Workday
A2Aのフロー
┌─────────────────────────────────────────────────────────┐
│ │
│ 【典型的なA2Aフロー】 │
│ │
│ 1. Discovery(発見) │
│ クライアントがサーバーのAgent Cardを取得 │
│ │
│ 2. Task Creation(タスク作成) │
│ クライアントがサーバーにタスクを依頼 │
│ │
│ 3. Task Execution(タスク実行) │
│ サーバーがタスクを処理 │
│ 必要に応じてクライアントに質問 │
│ │
│ 4. Artifact Exchange(成果物交換) │
│ 結果をクライアントに返却 │
│ │
│ 5. Completion(完了) │
│ タスク完了を通知 │
│ │
└─────────────────────────────────────────────────────────┘
技術仕様
┌─────────────────────────────────────────────────────────┐
│ │
│ 【トランスポート】 │
│ ・HTTP + JSON-RPC 2.0(基本) │
│ ・SSE(Server-Sent Events): ストリーミング │
│ ・gRPC(v0.3〜): 高性能通信 │
│ │
│ 【SDK】 │
│ ・Python SDK │
│ ・その他言語も開発中 │
│ │
│ 【セキュリティ】 │
│ ・OAuth 2.0 │
│ ・API Key │
│ ・その他OpenAPI準拠の認証方式 │
│ │
└─────────────────────────────────────────────────────────┘
ユースケース
┌─────────────────────────────────────────────────────────┐
│ │
│ 【エンタープライズ】 │
│ │
│ ・営業エージェント + CRMエージェント + 請求エージェント│
│ ・人事エージェント + 採用エージェント + 研修エージェント│
│ ・カスタマーサポート + エスカレーション + 技術サポート │
│ │
│ 【Eコマース】 │
│ │
│ 購入者 → 購買エージェント → 在庫エージェント │
│ ↘ 配送エージェント → 追跡エージェント │
│ ↘ 決済エージェント │
│ │
│ 【金融】 │
│ │
│ ・ポートフォリオ分析 + リスク評価 + 取引執行 │
│ ・KYCエージェント + コンプライアンスエージェント │
│ │
└─────────────────────────────────────────────────────────┘
MCP + A2A の組み合わせ
┌─────────────────────────────────────────────────────────┐
│ │
│ 【推奨構成】 │
│ │
│ ・MCP: 各エージェントがツールを使う │
│ ・A2A: エージェント同士が協調する │
│ │
│ ┌─────────────┐ │
│ │ Agent A │ │
│ │ ┌────┐ │ │
│ │ │MCP │───┼──→ Tool 1 │
│ │ └────┘ │ │
│ └──────┬──────┘ │
│ │ A2A │
│ ┌──────▼──────┐ │
│ │ Agent B │ │
│ │ ┌────┐ │ │
│ │ │MCP │───┼──→ Tool 2 │
│ │ └────┘ │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
プロトコル戦争?
┌─────────────────────────────────────────────────────────┐
│ │
│ 【よくある誤解】 │
│ │
│ 「MCPとA2Aは競合している?」 │
│ │
│ → No. 補完関係。 │
│ │
│ MCP: エージェント ↔ ツール(縦の連携) │
│ A2A: エージェント ↔ エージェント(横の連携) │
│ │
│ 【ただし...】 │
│ │
│ ・AnthropicとOpenAIはA2Aに不参加 │
│ ・Google主導 vs Anthropic/OpenAI連合? │
│ ・実際の採用がどう進むかは未知数 │
│ │
└─────────────────────────────────────────────────────────┘
強みと弱み
【強み】
✓ 50社以上のエンタープライズ企業が参加
✓ Linux Foundation管理でベンダー中立
✓ 長時間タスク、非同期処理に対応
✓ セキュリティを重視した設計
✓ マルチモーダル対応
【弱み】
✗ まだ新しい(2025年4月発表)
✗ Anthropic、OpenAIは不参加
✗ 実装例・事例がまだ少ない
✗ 学習リソースが限定的
始め方
# Python SDKのインストール
pip install a2a-sdk
# サンプルを試す
git clone https://github.com/google/A2A.git
cd A2A/samples/python
python basic_agent.py
まとめ
| 項目 | 内容 |
|---|---|
| 正式名称 | Agent2Agent Protocol |
| 開発元 | Google(現在はLinux Foundation) |
| 公開 | 2025年4月 |
| 役割 | エージェント間通信の標準化 |
| 参加企業 | 50社以上 |
| MCPとの関係 | 補完関係(競合ではない) |
参考リンク
AIエージェント・自動化シリーズ、お役に立てたらフォローお願いします!