【徹底解説】Agent2Agentプロトコルとは？ A2A × MCP：次世代AIエージェント連携基盤


## はじめに

近年、AI技術は目覚ましい進化を遂げ、様々な分野で活用され始めています。
しかし、特定のタスクに特化したAIエージェントが増えるにつれて、**「それぞれのAIが持つ能力を組み合わせて、もっと複雑な問題を解決できないか？」** という新たな課題が生まれてきました。

例えば、旅行計画を立てるAI、最新ニュースを要約するAI、専門知識を持つAIなどが個別に存在しても、それらが連携できなければ、ユーザーはそれぞれのAIに個別に指示を出す手間がかかってしまいます。

この課題に応えるためにGoogle Cloudが提唱するのが、**Agent2Agent (A2A) プロトコル**です。

**Agent2Agent (A2A) プロトコルとは？**

https://www.publickey1.jp/blog/25/google_cloudaiagent2agent50.html

簡単に言うと、**異なる会社やフレームワークで作られたAIエージェント同士が、安全かつスムーズに「会話」し、協力し合えるようにするための共通言語（オープン標準規格）** です。


```mermaid
graph LR
    subgraph MultiAgentSystem["マルチエージェントシステム (A2Aが実現する世界)"]
        direction LR
        User(ユーザー) --> |複雑な指示| ClientAgent(司令塔<br>エージェント)
        ClientAgent --> |旅行手配依頼| TravelAgent(旅行<br>エージェント)
        ClientAgent --> |情報収集依頼| NewsAgent(ニュース<br>エージェント)
        ClientAgent --> |専門分析依頼| ExpertAgent(専門分析<br>エージェント)
        TravelAgent --> |手配結果| ClientAgent
        NewsAgent --> |要約情報| ClientAgent
        ExpertAgent --> |分析レポート| ClientAgent
        ClientAgent --> |統合された回答| User
    end
```

この記事では、Google Cloudが推進するこの新しいプロトコル「Agent2Agent (A2A)」について、以下の点を深掘りしていきます。

* なぜA2Aが必要なのか？その**設計思想**
* エージェント間の役割分担：**アーキテクチャ**
* 通信の仕組み：**技術仕様**と**メッセージ**
* 安全な連携のための**セキュリティ**
* **Google Cloudでの導入方法** (ADK)
* 具体的な**ユースケース**
* 他の技術との**比較**

A2Aプロトコルを理解することで、AIエージェント連携の未来と、それが私たちのビジネスや生活にどのような変革をもたらす可能性を秘めているのかが見えてくるはずです。

### A2Aプロトコルの設計思想：なぜ「共通言語」が必要なのか？

Google Cloudは、エンタープライズ向けのAI導入支援で培った経験から、複数のAIエージェントが連携する「マルチエージェントシステム」の重要性を認識していました。
そこで、AccentureやSalesforce、SAP、ServiceNowなど、50社以上のテクノロジーパートナーと協力し、ベンダーやフレームワークの垣根を越えて使えるオープン標準としてA2Aプロトコルを策定しました。

**MCPとの関係：役割分担**

A2Aは、Anthropic社が提唱する**Model Context Protocol (MCP)**を補完する形で設計されています。
MCPがAIエージェントに外部データやツールへの接続手段（いわばAI用の「USB-Cポート」）を提供するのに対し、A2Aは**エージェント同士の直接的な協調**に焦点を当てています。

https://qiita.com/syukan3/items/f74b30240eaf31cb2686

```mermaid
graph TD
    subgraph AIAgentEcosystem [AIエージェントエコシステム]
        AIAgent[AI エージェント]
        ExternalSystem[外部システム<br>（データ/ツール）]
        AnotherAgent[他のAIエージェント]

        AIAgent -- "MCP （Model Context Protocol）<br>データやツールと接続" --> ExternalSystem
        AIAgent -- "A2A （Agent2Agent Protocol）<br>他のエージェントと連携" --> AnotherAgent
    end
```

https://qiita.com/syukan3/items/5c3c9321d713bc1d8ecf

**A2Aを支える5つの設計原則**

A2Aプロトコルは、以下の5つの重要な原則に基づいて設計されています。

1.  **エージェントの自律性を尊重:** 
各エージェントは独立しており、記憶やツールを共有していなくても、自然に協力できます。
一方が他方を単なるツールとして使うのではなく、対等な立場で対話し、柔軟に協調することを目指します。
2.  **既存の標準技術を活用:** 
通信にはWebで広く使われる**HTTP**、レスポンスの逐次送信には**Server-Sent Events (SSE)**、メッセージ構造には**JSON-RPC**を採用。
これにより、企業が既に利用している技術との親和性が高く、導入のハードルを下げています。
3.  **デフォルトでセキュア:** 
企業システムでの利用を前提とし、**OpenAPI**仕様に準拠した強力な**認証・認可**メカニズムを標準でサポート。
エージェント間の通信を安全に保護します。
4.  **長時間実行タスクのサポート:** 
短時間で完了するタスクから、人間が介在し数時間～数日かかるような大規模タスクまで、幅広く対応。
タスク実行中の**リアルタイムな進捗報告**や状態更新を可能にし、長時間の協調作業を支援します。
5.  **モダリティにとらわれない:** 
テキストだけでなく、**音声や動画**などのリッチメディアも扱えるように設計。
エージェントは画像や音声ストリームなどもやり取りでき、より豊かなユーザー体験を提供できます。

これらの設計思想により、A2Aは特定のベンダーに縛られず、多様なAIエージェントが共通のルールで連携できる基盤を提供します。
開発者は異なるプラットフォームのエージェントを自由に組み合わせ、革新的なソリューションを構築しやすくなります。

### アーキテクチャ：クライアントエージェントとリモートエージェント

A2Aプロトコルでは、エージェント間の役割を明確にするために **「クライアントエージェント」**と**「リモートエージェント」** という概念を導入しています。

* **クライアントエージェント:** 
タスク全体の管理者。
ユーザーや他のシステムから指示を受け取り、タスクを分解して、適切なリモートエージェントに指示を出します。
* **リモートエージェント:** 
特定の専門知識や能力を持つ実行者。
クライアントエージェントから依頼されたサブタスクを実行したり、関連情報を提供したりします。

```mermaid
graph LR
    ClientAgent[クライアントエージェント<br>（タスク管理・指示）] --> |"A2A Request<br>サブタスク依頼"| RemoteAgent[リモートエージェント<br>（タスク実行・情報提供）]
    RemoteAgent --> |"A2A Response<br>実行結果・情報"| ClientAgent
    
    subgraph A2AProtocolFeatures ["A2Aプロトコルが支える機能"]
        direction TB
        SecureCollaboration[セキュアな協調]
        TaskManagement[タスク管理と状態同期]
        UXNegotiation[ユーザー体験ネゴシエーション]
        CapabilityDiscovery[能力発見]
    end
    
    ClientAgent --> |支える| A2AProtocolFeatures
    RemoteAgent --> |支える| A2AProtocolFeatures
```

**例：出張手配タスク**

1.  ユーザーが「来週の〇〇への出張予定を立てて」と**クライアントエージェント（計画立案担当）** に依頼します。
2.  クライアントエージェントはタスクを分解し、
    * 「〇〇行きの最適なフライトとホテルを探して」と**リモートエージェントA（旅行情報担当）** に依頼。
    * 「承認された旅程で予約処理をして」と**リモートエージェントB（予約処理担当）** に依頼。
3.  各リモートエージェントは担当タスクを実行し、結果をクライアントエージェントに返します。
4.  クライアントエージェントは結果を統合し、最終的な出張計画をユーザーに提示します。

このモデルにより、システム全体は**分散型アーキテクチャ**となり、各リモートエージェントは専門分野に特化できるため**疎結合**（互いの依存度が低い状態）になります。
これにより、新しい専門エージェントの追加や既存エージェントの入れ替えが容易になり、システム全体の柔軟性と拡張性が高まります。

### 技術仕様の詳細：どのように通信するのか？

A2Aプロトコルは、実績のあるWeb標準技術を基盤としています。

* **通信基盤:** 
**HTTP** を使用します。
各エージェントはHTTPサーバーまたはクライアントとして動作し、リクエストとレスポンスを送受信します。
* **メッセージ形式:** 
**JSON-RPC** を採用。
タスク依頼（関数呼び出しに相当）やその結果などをJSON形式で表現します。
* **ストリーミング:** 
長時間タスクの進捗や部分的な結果をリアルタイムに伝えるために、**Server-Sent Events (SSE)** を利用します。
これにより、リモートエージェントは処理を続けながら、クライアントエージェントに情報をプッシュ通知できます。

```mermaid
sequenceDiagram
    participant Client as クライアント<br>エージェント
    participant Remote as リモート<br>エージェント

    Client ->> Remote: HTTP POST (JSON-RPC: タスク依頼)
    activate Remote
    Note over Remote: タスク処理開始
    Remote -->> Client: HTTP 200 OK (タスク受付完了)
    deactivate Remote

    activate Remote
    loop 長時間タスク処理中
        Remote -->> Client: SSE Event (進捗通知/中間結果)
    end
    Note over Remote: タスク完了
    Remote -->> Client: SSE Event (最終結果/Artifact)
    deactivate Remote
```

**API仕様と開発キット (ADK)**

A2AのAPI仕様は、認証やエラー処理に関して**OpenAPI**標準に準拠しており、メッセージフォーマットなどの詳細は**JSON Schema**として定義され、GitHub (Google/A2Aリポジトリ) で公開されています。

開発を容易にするため、Googleはオープンソースの**Agent Development Kit (ADK)** を提供しています。

* **Python SDK:** 現在、Python向けのADK ( `pip install google-adk` ) が利用可能で、わずか100行程度のコードでA2AおよびMCP準拠のエージェントを構築できます。
* **マルチLLM対応:** GoogleのGeminiだけでなく、Vertex AI Model Gardenを通じてAnthropic、Meta、Mistral AIなど200以上の外部LLMを利用可能です。
* **MCP標準対応:** ADKはMCPにも対応しており、外部データソースやツールへの接続も容易です。
* **今後の展開:** JavaやC#など、他の言語向けSDKも将来的に提供予定です。LangChainやMicrosoftなどもA2AやMCPへの対応を進めています。

### メッセージフォーマットと制御ロジック：何をやり取りするのか？

エージェント間のコミュニケーションは、A2Aで定義された以下の要素で行われます。

* **タスク (Task):** 
エージェントが他のエージェントに依頼する仕事の単位。
一意のID、目的、入力データ、制約条件などを持ちます。
タスクにはライフサイクル（未完了→実行中→完了/失敗）があります。
    ```mermaid
    stateDiagram-v2
        [*] --> Pending: タスク受信
        Pending --> Running: 実行開始
        Running --> Running: 状態更新 (進捗報告)
        Running --> Suspended: 一時停止
        Suspended --> Running: 再開
        Running --> Completed: 完了 (成果物生成)
        Running --> Failed: 失敗
        Completed --> [*]
        Failed --> [*]
        Suspended --> Failed: タイムアウト等
    ```
* **成果物 (Artifact):** 
タスクの最終的な出力。生成されたテキスト、画像データ、実行結果ログなどが該当します。
* **メッセージ (Message):** 
タスクに関するやり取り。どのタスクに関連するかを示すID、送信者、メッセージ種別（指示、返答、中間報告、エラー等）が含まれます。
* **パート (Part):** 
メッセージ内に含めることができる構造化されたコンテンツ片（画像、音声、UI部品など）。
`Content-Type`が明示され、エージェント間で最適な表現形式を**ネゴシエーション（交渉）** できます。
例えば、「画像を表示できるか？」を確認し、可能なら画像パートを、不可能なら代替テキストを送る、といった調整が可能です（ユーザー体験のネゴシエーション）。

**能力発見 (Capability Discovery) とエージェントカード (Agent Card)**

エージェント同士が互いの能力を知るための仕組みも重要です。

* **エージェントカード (Agent Card):** 
各エージェントが自身の能力（提供できる機能、役割、対応フォーマットなど）や要求する認証方式などを記述したJSON形式の「自己紹介カード」。
    ```mermaid
    graph TD
        AgentCard[エージェントカード （JSON）]
        subgraph Metadata [基本情報]
            AgentName[エージェント名]
            Description[説明]
            EndpointURL[アクセス先URL]
        end
        subgraph Capabilities [提供能力]
            SupportedTasks[対応できるタスクの種類]
            OutputFormats[出力可能な形式 （text/plain image/png等）]
            InputRequirements[必要な入力情報]
        end
        subgraph Security [セキュリティ要件]
            AuthSchemes[要求する認証方式<br>（OAuth2 APIキー等）]
            Credentials[認証情報（オプション）]
        end
        AgentCard --> Metadata
        AgentCard --> Capabilities
        AgentCard --> Security
    ```
* **能力発見:** 
クライアントエージェントは、タスクを実行する前に、利用可能なリモートエージェントのエージェントカードを参照し、最も適したエージェントを動的に選択できます。
これにより、環境内のエージェント構成の変化にも柔軟に対応できます。

これらの仕組みにより、エージェントはタスク指向で効率的に協調し、複数の処理を並行して進めながら、柔軟なワークフローを実現できます。

### セキュリティモデル：安全な連携のために

企業システム間の連携においてセキュリティは最重要事項です。
A2Aは **「Secure by default」** を掲げ、強力なセキュリティ機能を標準で組み込んでいます。

* **認証・認可:** 
**OpenAPI仕様**で定義されている多様な認証スキーム（APIキー、OAuth2、OIDC、Bearerトークン、mTLSなど）をサポート。
エージェントは自身が受け入れる認証方式をエージェントカードで宣言できます。呼び出し側は適切な認証情報を提供する必要があります。
* **通信路の暗号化:** 
HTTPを基盤としていますが、実運用では**HTTPS/TLS**による通信の暗号化が前提となります。
これにより、通信内容の盗聴や改ざんを防ぎます。
* **ガードレール (Guardrails):** 
ADKなどの実装レベルで、エージェントの動作に制限をかける仕組み。
例えば、「許可されたAPI以外は呼び出さない」「特定の操作は実行しない」といったポリシーを設定し、意図しない挙動や権限の乱用を防ぎます。

### Google Cloudにおける構築・導入手順 (ADK活用)

Google Cloudでは、ADKを使ってA2A/MCP準拠のエージェントを効率的に開発し、デプロイするための環境が整備されています。

**開発からデプロイまでの流れ:**

```mermaid
graph TD
    A[1 エージェント定義<br>（ADKでロジック実装<br>LLM/ツール選択<br>Agent Card作成）] --> B[2 ローカルテスト<br>& プロトタイピング<br>LangChain等とも連携可]
    B --> C{3 デプロイ先選択}
    C -- サーバレス --> D[Cloud Run]
    C -- コンテナ管理 --> E[Google Kubernetes Engine （GKE）]
    C -- マネージド --> F[Vertex AI<br>Agent Engine]
    subgraph Deploy[デプロイ]
      D
      E
      F
    end
    Deploy --> G[4 運用 & モニタリング<br>相互接続設定<br>Cloud Logging/Monitoring活用]
```

1.  **エージェント定義:** 
Python ADKを使ってエージェントのロジック、使用するLLM、連携するツール（MCP経由）を実装します。
他のエージェントを呼び出すコードも記述し、エージェントカードを作成します。
2.  **テスト:** 
ローカル環境でエージェントを実行し、動作を確認します。
3.  **デプロイ:** 
エージェントをコンテナ化し、以下のいずれかの環境にデプロイします。
    * **Cloud Run:** 
    手軽なサーバレスコンテナ実行環境。
    * **Google Kubernetes Engine (GKE):** 
    大規模なコンテナオーケストレーション環境。
    * **Vertex AI Agent Engine:** 
    ADKで構築したエージェントをホスティングするマネージドサービス。
    スケーラビリティやモニタリングをGoogle Cloudが管理します。
4.  **運用:** 
デプロイ後、各エージェントのエンドポイントURLや認証情報を設定し、相互接続を確立します。
Cloud LoggingやCloud Monitoringで動作を監視し、必要に応じてエージェントを追加・更新します。

ADKとGoogle Cloudのマネージドサービスを活用することで、開発者はA2Aプロトコルの詳細を意識しすぎることなく、エージェントのコアロジック開発に集中し、迅速にマルチエージェントシステムを構築・運用できます。

### 開発者向けユースケース：A2Aで何ができるのか？

A2Aプロトコルは、複数のAIエージェントが協力することで、単一のAIでは実現が難しい様々な価値を生み出します。

* **マルチエージェントの協調作業:**
    * **例:** プロジェクトマネージャー役のエージェントが、データ分析エージェント、レポート作成エージェント、外部API連携エージェントにタスクを割り振り、結果を統合して最終報告を作成する。
    * **メリット:** 複雑な問題を複数の専門エージェントによるチームプレーで効率的に解決。
* **企業業務の自動化（クロスシステム連携）:**
    * **例:** 営業支援エージェント（CRM担当）が顧客情報を取得し、在庫管理エージェント（ERP担当）が在庫を確認、提案書作成エージェントがそれらをまとめて見積書を自動生成する。
    * **メリット:** 従来は人手や個別連携が必要だった部門横断的な業務プロセスをシームレスに自動化。
* **複数LLMの連携による高度なAI:**
    * **例:** 創造的な文章生成が得意なエージェント、論理的な分析が得意なエージェント、最新情報に強いエージェントを組み合わせ、それぞれの強みを活かした高精度な回答を生成する。
    * **メリット:** 単一モデルの限界を超え、多様な要求に応えられる汎用的なAIソリューションを構築。
* **人間を支援する対話エージェントの複合:**
    * **例:** 社内ヘルプデスクのチャットボットがユーザーからの質問を受け、裏側でFAQ検索エージェントやITシステム操作エージェントと連携して回答を生成・提示する。
    * **メリット:** ユーザーには単一の窓口に見せつつ、背後で複数の専門知識を活用し、高度なサポートを提供。プラグイン的に機能を拡張可能。
* **マルチモーダルな対話サービス:**
    * **例:** 音声で「部屋のレイアウト案を作って」と依頼すると、音声認識エージェント、インテリア設計エージェント、画像生成エージェント、音声合成エージェントが連携し、レイアウト案の3D画像と音声説明を生成する。
    * **メリット:** テキスト、音声、画像などを扱う専門エージェントを組み合わせ、一貫性のあるリッチなユーザー体験を提供。

A2Aは、AIエージェントを個別のサイロから解放し、「チーム」として機能させるための鍵となります。企業は乱立しがちなAIを連携させ、相乗効果を生み出すことが期待できます。

### 関連技術との比較：A2Aの位置づけ

A2Aは新しい試みですが、周辺には関連する技術やフレームワークが存在します。

```mermaid
graph TD
    subgraph OpenStandards [オープン標準]
        A2A["**Agent2Agent Protocol (A2A)**<br>(Google Cloud)<br><u>AI ↔ AI 通信</u>の標準化"]
        MCP["**Model Context Protocol (MCP)**<br>(Anthropic)<br><u>AI ↔ データ/ツール接続</u>の標準化"]
    end
    subgraph Frameworks [フレームワーク/ライブラリ]
        LangChain["**LangChain / LangGraph**<br>(Agent Protocol 試案)<br>LLMアプリ開発、エージェント実行インターフェース"]
        Autogen["**Microsoft Autogen**<br>マルチエージェント対話<u>実験</u>フレームワーク"]
        ADK["**Google Agent Dev Kit (ADK)**<br><u>A2A/MCP実装支援</u>ライブラリ (Python)"]
        SemanticKernel["**Microsoft Semantic Kernel**<br>AIオーケストレーションSDK (MCP対応)"]
    end

    A2A -- "**補完関係**" --> MCP
    ADK -- "実装" --> A2A
    ADK -- "実装" --> MCP
    LangChain -- "**連携可能性**<br>(A2Aサポート表明)" --> A2A
    SemanticKernel -- "連携" --> MCP
    Autogen -. "目的は近いが<br>標準プロトコルではない" .-> A2A
```

* **Anthropic Model Context Protocol (MCP):** 
A2Aを**補完**する関係。
MCPはAIと外部データ/ツールの接続、A2AはAI同士の接続を担当。
組み合わせて利用可能です。
GoogleのADKもMCPに対応しています。
* **LangChain Agent Protocol:** 
LangChainが提案するエージェント実行の共通インターフェース試案。
A2Aとは焦点が異なりますが、将来的には連携し、LangChain上でA2A通信が容易になる可能性があります。
LangChain社もA2A策定パートナーです。
* **Microsoft Autogen:** 
マルチエージェント対話を実現するPythonフレームワーク。
A2Aのような標準**プロトコル**ではなく、特定の**実装/ライブラリ**です。
実験的な開発に適しています。
* **他社の動向:** 
MetaやOpenAIも複数モデル連携の重要性は認識していますが、A2Aのような明確なオープン標準はまだ打ち出していません。
OpenAIのプラグインは、ChatGPT中心の連携であり、対等なエージェント間通信とは異なります。

A2Aは、既存の標準（MCPなど）と協調しつつ、様々なベンダーやフレームワークで作られたAIエージェントを繋ぐ**ハブ**となることを目指す、業界横断的な取り組みと言えます。

### まとめ：AIエージェント連携の未来へ

Google Cloudの **Agent2Agent (A2A)** プロトコルは、AIエージェントがベンダーやフレームワークの壁を越えて自由に「対話」し、協調するための重要な一歩です。

* **オープン標準:** 特定技術に依存せず、多くの企業が参加。
* **実用性重視:** Web標準技術を活用し、セキュリティも確保。
* **開発支援:** ADKにより、開発者は容易にA2A準拠のエージェントを構築可能。
* **豊富なユースケース:** 業務自動化から高度なAI連携、マルチモーダル体験まで実現。

A2Aプロトコルが普及すれば、開発者はレゴブロックのように様々なAIエージェントを組み合わせ、これまで考えられなかったような革新的なアプリケーションやサービスを生み出すことができるようになるでしょう。
まさに **「Agent to Agent」** でAIが協力し合う未来が、すぐそこまで来ています。


https://qiita.com/syukan3/items/5becdc4f786aedbfa80a

https://qiita.com/syukan3/items/174e43235bde8a1a0694

---
### 会社紹介

**株式会社 Mosaica**  
最先端テクノロジーで社会課題を解決し、持続可能な未来を創造する IT カンパニー。
AI ソリューション、クラウド統合、DX 推進、経営コンサルティングなど包括的なサービスでビジネス変革を支援しています。  

詳しくは [公式サイト](https://mosaica.co.jp/) までお気軽にご相談ください。
公式サイト： https://mosaica.co.jp/