0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[1分でわかる]A2Aってなんだ?

0
Posted at

結論

「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エージェント・自動化シリーズ、お役に立てたらフォローお願いします!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?