A2AとMCP:AIエージェントは本当に両方のプロトコルが必要なのか?

MCPはエージェントにツールを提供します。A2Aはエージェントに同僚を提供します。

目次

AIエージェントのアーキテクチャは、2つのレイヤーに分裂し始めています。

1つのレイヤーは、AIアシスタントにツール、データ、API、ファイル、データベース、検索システム、カレンダー、チケット管理システムなどの外部機能へのアクセスを提供することであり、ここにMCPが位置づけられます。

もう1つのレイヤーは、1つのAIエージェントが別のAIエージェントを発見し、通信し、委任し、協働することであり、相手は別のチーム、フレームワーク、ベンダー、組織によって構築されたものかもしれません。ここにA2Aが位置づけられます。

厄介なのは、両プロトコルが同じ問題を解決するかのように議論されることが多いことですが、実際にはそうではありません。境界には重複があり、その重複こそがほとんどすべての混乱の源です。しかし、明確な思考モデルはシンプルです:

MCPは主にエージェントからツールへの接続であり、A2Aは主にエージェント間接続です。

A2A and MCP protocol architecture — AI agents connected via A2A, each accessing tools via MCP

すべてのAIシステムが両方を必要とするわけではありません。実際、ほとんどの小規模なエージェントプロジェクトはMCPから始め、A2Aは実質的なマルチエージェントの境界を持つまで無視すべきでしょう。しかし、大規模なエージェントシステム、特に別々にデプロイされたエージェント、専門エージェント、ベンダーエージェント、または長時間実行される委任タスクを含むシステムを構築している場合、A2Aは意味を持ち始めます。

この記事では、違い、重複、アーキテクチャ上のトレードオフ、そして実際に両方を必要とする場面について説明します。あなたの決定がエージェント間通信ではなく、機能がAgent SkillかMCPサーバーかに関係する場合は、Agent Skills vs MCP Servers decision frameworkをご覧ください。

MCPとは?

MCPはModel Context Protocol(モデルコンテキストプロトコル)の略です。

これは、AIアプリケーションとエージェントを外部ツール、リソース、プロンプトに接続するためのオープンプロトコルです。実用的な観点から言えば、MCPはデスクトップアシスタント、IDE、コーディングエージェント、チャットアプリケーションなどのAIホストが1つ以上のMCPサーバーに接続することを可能にします。

MCPサーバーは以下のような機能を公開できます:

  • Tools(ツール):モデルが使用できる呼び出し可能な関数
  • Resources(リソース):ファイル、APIデータ、ドキュメント、データベースレコードなどの読み取り可能なコンテキスト
  • Prompts(プロンプト):再利用可能なプロンプトテンプレートやワークフロー

公式のMCPアーキテクチャはホスト、クライアント、サーバーモデルに基づいています。

MCPホストはユーザーがやり取りするアプリケーションです。MCPクライアントは特定のMCPサーバーへの接続を維持するプロトコルコンポーネントです。MCPサーバーはクライアントに機能を公開します。

例えば、コーディングアシスタントは以下に接続できます:

  • ファイルシステムMCPサーバー
  • GitHub MCPサーバー
  • データベースMCPサーバー
  • Sentry MCPサーバー
  • Slack MCPサーバー

ユーザーの視点からすれば、アシスタントがより有用になります。システムアーキテクチャの観点から言えば、アシスタントは外部コンテキストとアクションへの制御されたアクセスを得たことになります。

これがMCPの主な価値です:AIアプリケーションがツールとコンテキストに到達する方法を標準化します。

MCPはツール統合として最も理解しやすい

MCPはツールだけではありませんが、ツールは理解する最も簡単な方法です。

MCPなしでは、すべてのAIアプリケーションは外部システムごとにカスタム統合コードを必要とします。1つのエージェントフレームワークには独自のプラグイン形式があり、別のものには独自ツールスキーマがあり、さらに別のものには異なるAPIラッパーパターンがあります。すべての統合が何度も再構築されます。

MCPはその無駄を減らすことを目指しています。

ツールプロバイダーがMCPサーバーを公開すれば、多くのMCP互換クライアントが使用できます。開発者が内部システムのためにMCPサーバーを構築すれば、複数のAIアプリケーションが接続できます。MCP servers in GoMCP servers in Pythonの実用的な実装ガイドは、プロトコルが重い作業をこなすことで統合レイヤーがいかにシンプルになるかを示しています。

これがMCPが急速に重要になった理由です。退屈だが痛ましい統合問題を解決します。

そして退屈な統合問題は、誰もがやる必要のある反復的な作業を減らすからこそ生き残る、持続可能な標準が生まれる場所です。

A2Aとは?

A2AはAgent2Agent Protocol(エージェントツーエージェントプロトコル)の略です。

これは、独立したAIエージェントシステム間の通信と相互運用性のためのオープン標準です。個々のビルディングブロック——Agent Cards、タスクライフサイクル、メッセージ、パーツ、アーティファクト——の詳細については、What Is the A2A Protocol? Agent Cards and Tasks Explainedで各概念を詳しく解説しています。公式のA2A仕様は、異なるフレームワーク、言語、ベンダーによって構築されたエージェントが共通の相互作用モデルを通じて通信する方法としてこのプロトコルを説明しています。

重要なフレーズは「独立したエージェントシステム」です。

A2Aは主に1つのアシスタントに電卓、データベース、ファイルシステムへのアクセスを与えることではありません。A2Aは、独自の機能、状態、ポリシー、タスクモデル、そして裏側で独自のツールを持つ可能性のある別のエージェントと通信することです。

A2AエージェントはAgent Cardを通じて何ができるかを宣伝できます。別のエージェントやクライアントはその機能を発見し、タスクを送信し、メッセージを交換し、アーティファクトを受け取り、タスクライフサイクルを追跡できます。

A2Aは以下のような概念を導入します:

  • Agent Cards
  • エージェントとクライアント
  • タスク
  • メッセージ
  • パーツ
  • アーティファクト
  • タスク状態
  • ストリーミングと非同期作業

これらの概念を合わせると、A2Aは単純なツール呼び出しプロトコルよりもエージェント協働プロトコルに感じられます——エージェントがアイデンティティ、状態、そして他のエージェントとの継続的な関係を持つという考えに基づいて設計されています。

A2Aはエージェント協働として最も理解しやすい

ユーザーがエンタープライズアシスタントに以下のように尋ねたと想像してください:

「日本での市場参入要旨書を作成してください。法的考慮事項、価格リスク、ローンチプロジェクト計画を含めてください。」

単純なアシスタントはすべて自分で行おうとするかもしれません。しかし、大規模なエージェントシステムは作業の一部を委任するかもしれません:

  • リサーチエージェントが市場情報を収集
  • 法務エージェントが規制上の考慮事項を確認
  • 財務エージェントが価格リスクを見積もる
  • プロジェクト計画エージェントが納品計画を作成
  • 執筆エージェントが最終的な要旨書を組み立てる

それらのエージェントがすべて1つのコードベース内の内部関数である場合、A2Aは必要ないかもしれません。直接関数やサービスを実行できます。

しかし、それらのエージェントが独立したシステムであり、異なるチームやベンダーに所有されている可能性がある場合、標準的なエージェント間プロトコルが有用になります。

それがA2Aの使用ケースです。

A2A vs MCP:シンプルな違い

最も単純な比較は以下の通りです:

質問 MCP A2A
主な関係 エージェントからツールへ エージェント間
主な目的 AIアプリをツール、データ、プロンプトに接続 独立したエージェントが通信・協働できるようにする
典型的な作業単位 ツール呼び出しまたはリソース読み取り タスク、メッセージ、アーティファクト、委任
最も適したケース ツール統合 マルチエージェント相互運用性
エージェントがデータベースツールを呼び出す リサーチエージェントが法務エージェントに委任
スコープ コンテキストと機能へのアクセス エージェント調整とタスク交換

この表は完璧ではありませんが、初期の思考モデルを構築するのに有用です。要するに、MCPは「このAIアプリケーションは外部機能にどのようにアクセスするか?」という質問に答え、A2Aは「このエージェントは別のエージェントとどのように連携するか?」という質問に答えます。

この区別は重要です。ツール統合とエージェント協働では異なる失敗モードがあります。悪いツール呼び出しが間違ったデータを返すか、間違ったファイルを修正する可能性がありますが、悪いエージェント委任は責任の連鎖を不明確にし、機密コンテキストを漏洩させ、エージェント間でループし、作業を重複させ、誰も監査できないアーティファクトを生み出す可能性があります。A2Aはアーキテクチャの1つ上のレベルに位置し、その失敗モードは相応の高い結果を伴います。

開発者がA2AとMCPを混同する理由

この混乱は理解できます。

多くのMCPサーバーは単なる愚かなツールではありません。一部のMCPサーバーはマルチステップ作業を実行できます。一部のエージェント的な外見の高レベル機能を公開しています。MCPサーバーは計画サービス、検索システム、さらには別のLLM駆動ワークフローをラップできます。

その時点で、線が曖昧になります。

research_topicという名前のMCPツールが複雑なリサーチワークフローを実行する場合、それはツールですか、それともエージェントですか?

正直な答えは:アーキテクチャ的には、状況次第です。

ホストがツールスキーマを持つ呼び出し可能な機能として扱う場合、それはツールとして機能しています。

独自のアイデンティティ、機能、タスクライフサイクル、メッセージ、アーティファクト、委任動作を持っている場合、それはエージェントになり始めています。

これが「A2A vs MCP」が宗教的な議論になるときに誤った枠組みである理由です。より良い枠組みは:

  • この外部機能はツールとしてモデル化するのが最善か?
  • それとも独立したエージェントとしてモデル化するのが最善か?

その決定がプロトコル選択を導くべきです。

MCPだけのケース

ほとんどのAIプロジェクトはMCPだけから始めるべきです——これは少し意見を含んだ立場ですが、実用的なものです。

コーディングアシスタント、内部チャットボット、ローカルAIワークフロー、個人自動化エージェント、単純なエンタープライズアシスタントを構築している場合、最初の問題は通常エージェント間協働ではありません。最初の问题是ツールアクセスです。

アシスタントにファイルを読み、データベースを照会し、ドキュメントを検索し、APIを呼び出し、チケットを開き、ログを要約し、メトリクスを検査し、レコードを更新させる必要があります。

MCPはそれに非常に適しています。

MCPだけを使用するのは:

  • エージェントが主にツールとデータへのアクセスを必要としている場合
  • ホストアプリケーションを制御している場合
  • ほとんどの統合を制御している場合
  • 外部システムが実際には自律的なエージェントではない場合
  • ワークフローが主に同期的または短時間実行の場合
  • 通常のツール呼び出しで十分である場合
  • エージェント発見を必要としない場合
  • エージェント間タスク状態を必要としない場合
  • 独立したエージェントからのアーティファクトを必要としない場合

多くのシステムでは、MCPと良いアプリケーションアーキテクチャだけで十分です。多くのチームは、実際にはツール使用アシスタントであるシステムにA2Aを過剰設計しますが、それはプロトコルの問題ではなく、どのプロトコルも解決できないアーキテクチャ規律の問題です。

A2Aだけのケース

A2Aだけのシステムはより稀ですが、存在し得ます。

システムが主にエージェント間の通信についてであり、各エージェントがすでに内部的に自分のツールを管理している場合に、MCPなしでA2Aを使用するかもしれません。

例えば:

  • 専門エージェントのマーケットプレイス
  • ベンダー間エージェント統合
  • 組織間ワークフロー
  • 各エージェントが独自のプライベートツールチェーンを持つマルチエージェントシステム
  • クライアントが内部ツール詳細を知る必要のない委任ネットワーク

このモデルでは、A2Aは独立して管理されたエージェント間のパブリック境界です。エージェントAはエージェントBがPostgreSQL、Elasticsearch、MCP、LangChain、カスタムAPI、シェルスクリプトのどれを使用しているかを知る必要はありません。エージェントAはエージェントBが何ができるか、タスクを送信する方法、結果を受け取る方法だけを知る必要があります。

それはきれいな抽象化です。

A2Aだけを使用するのは:

  • エージェントを独立したサービスとして公開している場合
  • 呼び出し側がエージェントの内部ツールを知るべきでない場合
  • エージェント機能発見が重要である場合
  • 直接ツールアクセスよりも委任が重要である場合
  • タスクが長時間実行される可能性がある場合
  • 結果にアーティファクトが含まれる可能性がある場合
  • エージェントが異なるベンダーやチームによって構築されている可能性がある場合

A2Aは、独立して所有されたエージェントが内部ツールチェーンを公開せずにタスクとアーティファクトを交換する必要があるシステム境界で最も強力です。それはすべてのエージェントランタイムのすべてのレイヤーに配線する必要のあるプロトコルではありません。

A2AとMCPを両方使用するケース

最も興味深いアーキテクチャはA2A vs MCPではありません。それはA2A plus MCPです。

このパターンでは、エージェントは他のエージェントにA2Aインターフェースを公開しますが、内部的にはツールアクセスにMCPを使用します。

これにより、2つのきれいなレイヤーが得られます:

  • A2A外側:エージェントが互いに通信する方法
  • MCP内側:各エージェントがツール、データ、サービスにアクセスする方法

これが最も持続可能な思考モデルかもしれません。

カスタマーサポートエージェントはA2Aインターフェースを公開するかもしれません。他のエージェントはサポート関連タスクを委任できます。内部的には、サポートエージェントはZendesk、Slack、ドキュメント検索、CRM参照、内部ポリシー取得のためにMCPサーバーを使用します。

DevOpsエージェントはA2Aインターフェースを公開するかもしれません。他のエージェントはインシデント調査を依頼できます。内部的には、Prometheus、Grafana、GitHub、Kubernetes、ログ、クラウドAPIのためのMCPサーバーを使用します。

財務エージェントはA2Aインターフェースを公開するかもしれません。他のエージェントは予算分析を要求できます。内部的には、スプレッドシート、会計システム、請求書データベース、予測モデルのためのMCPサーバーを使用します。

このパターンはエージェント間のきれいな境界を維持します。他のエージェントはすべてのツールに直接アクセスする必要はありません——専門エージェントと通信し、そのエージェントがタスク完了に必要なツールを内部的に決定します。

それは実際の組織が機能する方法にも似ています。誰もがプロダクションデータベースへの直接アクセスを持つわけではありません。そのドメインを担当するチームやサービスに依頼します。

参照アーキテクチャ:A2A外側、MCP内側

実用的なマルチエージェントアーキテクチャは以下のように見えるかもしれません:

User
  |
  v
Primary assistant or orchestrator
  |
  |-- A2A --> Research agent
  |              |
  |              |-- MCP --> Web search
  |              |-- MCP --> Document store
  |
  |-- A2A --> Coding agent
  |              |
  |              |-- MCP --> GitHub
  |              |-- MCP --> Filesystem
  |              |-- MCP --> CI system
  |
  |-- A2A --> DevOps agent
                 |
                 |-- MCP --> Metrics
                 |-- MCP --> Logs
                 |-- MCP --> Kubernetes

この設計では、A2Aはエージェント間の委任を処理し、MCPは各エージェントとそのツール間の統合を処理します。オーケストレーターはすべての専門家が使用できるすべてのツールを知る必要はありません——どのエージェントがどのタイプの作業を担当しているかだけを知る必要があります。これによりツール過負荷が減り、全体的なアーキテクチャがよりモジュール化されます。そのオーケストレーターレイヤーの内部トポロジー——ハブアンドスポーク、階層ツリー、ファノアウト、メッシュのいずれを使用するか——はMulti-Agent Orchestration Patternsで解説されている別の設計判断です。推論、メモリ、ルーティング、ツールがプロダクションアシスタント内でどのように機能するかについてより深い処理は、AI Assistant Architecture: LLM, Memory, Tools, Routing, Observabilityで詳細を扱っています。

A2Aが過剰である場合

「他のエージェント」が実際には単なる関数である場合に、A2Aは過剰です。

あなたのアプリケーションがいくつかのツールを呼び出す1つのLLMワークフローを持っている場合、現代風に聞こえるからといってA2Aを追加しないでください。Python関数、HTTPエンドポイント、キュー、またはMCPツールで十分かもしれません。

A2Aは以下の場合に多すぎるかもしれません:

  • エージェントが1つしかない場合
  • すべてのコンポーネントが1つのコードベース内にある場合
  • ワークフローが短く同期的である場合
  • 発見を必要としない場合
  • 独立したタスク状態を必要としない場合
  • 別々のエージェントアイデンティティを必要としない場合
  • サードパーティエージェントを想定していない場合
  • ベンダーまたはフレームワーク相互運用性を必要としない場合

プロトコルは無料ではありません——概念、インフラストラクチャ、デバッグ表面、セキュリティ懸念、運用コストを追加します。退屈なAPIや単純な関数呼び出しがより良い工学選択であることがあり、必要性ではなく習慣からA2Aに手を伸ばすことはそれ自体過剰設計です。よりシンプルなオプションを選択することはA2A反対ではなく、アーキテクチャ推進です。

MCPが不十分な場合

MCPは明らかにエージェントであるものを表現するために使用すると不十分だと感じ始めます。

例えば、MCPサーバーが以下のようなツールを公開すると仮定します:

complete_enterprise_procurement_review

そのツールは以下を行います:

  • ベンダーデータを読み取る
  • ポリシールールを確認する
  • 明確化の質問をする
  • 法務レビューを委任する
  • リスクレポートを作成する
  • 複数のアーティファクトを返す
  • 20分実行する
  • タスク状態を維持する
  • 監査履歴を必要とする

ある時点で、それを「ツール」と呼ぶのは不自然になります。なぜならその機能はもはや単純な呼び出し可能関数ではなく、独自の状態、委任、監査要件を持つワークフロー所有の専門家だからです。それはまさにA2Aがツールの抽象化を自然な境界を超えて引き伸ばすよりもより良い適合となる場所です。

MCPは強力なツールを公開できますが、エージェントアイデンティティ、ピア協働、タスク所有、委任セマンティクス、マルチエージェント監査トレイルを魔法のように解決するわけではありません。

それらがあなたの実際の問題である場合、あなたはA2Aの領域にいます。

セキュリティ:誰もが過小評価している部分

セキュリティモデルはA2AとMCPの両方が深刻になる場所です。

MCPはエージェントにツールとデータへのアクセスを与えます。それはAIシステムがファイルを読み、データベースを照会し、APIを呼び出し、メッセージを送信し、チケットを更新し、インフラストラクチャアクションをトリガーできる可能性があることを意味します。

A2Aはエージェントが他のエージェントに作業を委任することを可能にします。それは1つのエージェントがコンテキストを渡し、アクションを要求し、別のエージェントからアーティファクトを受け取れる可能性を意味します。

両方とも強力です。両方とも危険になり得ます。

主なセキュリティ質問は異なります:

MCPの場合:

  • このエージェントはどのツールを使用できるか?
  • どんなデータを読み取れるか?
  • どんなアクションを実行できるか?
  • ユーザーはアクションを承認するか?
  • ツールメタデータはモデルを操作できるか?
  • ローカルとリモートサーバーは信頼されているか?

A2Aの場合:

  • どのエージェントが互いに話せるか?
  • 各エージェントは何というアイデンティティを持つか?
  • エージェントAはエージェントBに権限を委任できるか?
  • どれだけのコンテキストを共有できるか?
  • 最終結果に対して誰が責任を負うか?
  • タスクチェーンは監査できるか?

これが「すべてを接続するだけ」が悪い戦略である理由です。追加するプロトコルが増えるほど、システムを安全で監査可能に保つためにポリシー、アイデンティティ、ログ、承認フロー、最小権限パーミッションが必要になります。

良いプロダクションアーキテクチャには以下を含めるべきです:

  • エージェントアイデンティティ
  • ツールアイデンティティ
  • ユーザーアイデンティティ
  • スコープ付きパーミッション
  • リスキーアクションのための承認ゲート
  • タスクレベルの監査ログ
  • ツール呼び出しログ
  • 委任ログ
  • アーティファクト由来
  • レート制限
  • タイムアウトポリシー
  • エグレス制御

A2AとMCPの両方で構築している場合、セキュリティは後付けではありません。それはアーキテクチャの一部です。A2A and MCP Agent Security: Identity, Delegation, and Audit Trailsは完全な脅威モデル、アイデンティティレイヤー、ゲートウェイパターン、委任制御を詳しく解説しています。

可観測性:ログだけでなくトレースが必要

マルチエージェントシステムはデバッグが困難です。

ユーザーが1つの質問をします。オーケストレーターが2つのエージェントを呼び出します。1つのエージェントが3つのツールを呼び出します。別のエージェントが部分的な進捗をストリーミングします。3つ目のエージェントが失敗して再試行します。最終的な答えは妥当に見えますが、どのデータソースが影響を与えたか誰も知りません。

それはプロダクションでは許容できません。

MCP中心のシステムでは、以下を観察する必要があります:

  • ツール選択
  • ツール引数
  • ツール結果
  • ツールレイテンシ
  • ツールエラー
  • ユーザー承認
  • モデルに注入されたコンテキスト

A2A中心のシステムでは、以下を観察する必要があります:

  • エージェント発見
  • タスク作成
  • タスク状態変化
  • エージェント間メッセージ
  • 生成されたアーティファクト
  • 委任チェーン
  • 失敗と再試行
  • 最終的な答えの由来

システムがよりエージェント的になるほど、追跡可能性が重要になります——作業が複数のエージェント、ツール呼び出し、アーティファクトハンドオフにまたがる場合、単純なアプリケーションログは不十分です。すべての答えがその起源にまで追跡できるようなタスクトレースが必要です。Observability for LLM Systems: Metrics, Traces, Logs, and Testing in Productionはこのツールと計装側を詳しく扱っています。エージェントが長時間実行されるA2Aタスクで進捗をストリーミングするかinput_requiredで一時停止する場合、A2A Streaming and Async Tasks for Long-Running Agent Workflowsは各状態遷移と委任ホップで何をログすべきかを解説しています。

意思決定フレームワーク:A2A、MCP、両方、それともどちらも必要ないか?

この意思決定フレームワークを使用してください。

シンプルなコードで十分の場合、どちらも使用しない

以下の場合、通常の関数、API、またはキューを選択します:

  • すべてのコンポーネントを制御している場合
  • LLMネイティブツール発見の必要性がない場合
  • エージェント相互運用性の必要性がない場合
  • システムが決定論的である場合
  • 統合が安定してシンプルである場合

すべての統合にAIプロトコルが必要なわけではありません。

エージェントがツールを必要とする場合、MCPを使用する

以下の場合、MCPを選択します:

  • AIアプリが外部データを必要とする場合
  • エージェントがツールを呼び出す必要がある場合
  • 再利用可能な統合を望む場合
  • ツール発見を望む場合
  • 標準的なクライアントサーバー統合を望む場合
  • コーディングエージェント、アシスタント、IDE、内部ツールを構築している場合

これはほとんどのビルダーにとってデフォルトの開始点です。

エージェントがピアを必要とする場合、A2Aを使用する

以下の場合、A2Aを選択します:

  • エージェントが独立してデプロイされている場合
  • エージェントが互いを見つけ合う必要がある場合
  • エージェントが異なるチームやベンダーによって構築されている場合
  • タスクが長時間実行される場合
  • 委任が重要である場合
  • アーティファクトが重要である場合
  • ツール境界だけでなくエージェント境界を必要とする場合

これはアーキテクチャの単位がエージェントである場合に正しい選択です。

専門エージェントがツールを必要とする場合、両方を使用する

以下の場合、両方を選択します:

  • エージェントが互いに協働する場合
  • 各エージェントもまたツールアクセスを必要とする場合
  • 委任と実行間のきれいな境界を望む場合
  • プライベート内部ツールチェーンを持つ専門エージェントを望む場合
  • 拡張可能なマルチエージェントアーキテクチャを望む場合

これが最も現実的なエンタープライズパターンです。

一般的なアンチパターン

アンチパターン1:すべてのツールをエージェントにする

すべての関数にエージェントラッパーがふさわしいわけではありません。

通貨変換APIはたぶんツールです。データベースクエリはたぶんツールです。ファイルリーダーはたぶんツールです。

すべての小さな機能をA2Aエージェントとしてラップすることは不要な複雑さを生み出します。

アンチパターン2:1つのMCPツールの背後に全体のエージェントを隠す

逆の間違いも一般的です。

MCPツールが秘密裏に長い、状態付き、マルチエージェントワークフローを実行する場合、MCP抽象化は薄すぎるかもしれません。タスク状態、委任、アーティファクト、責任への可視性を失います。

その時点で、それはA2A境界をふさわしいかもしれません。

アンチパターン3:すべてのエージェントがすべてのツールを呼び出せるようにする

これはパーミッションの混沌を生み出します。

専門エージェントにはスコープ付きツールが必要です。執筆エージェントはプロダクションデータベースアクセスを必要としないかもしれません。リサーチエージェントはインフラストラクチャデプロイメントの権限を必要としないかもしれません。

最小権限を使用してください。

アンチパターン4:リスキーアクションに人間の承認なし

エージェントシステムは沈黙して高影響アクションを実行すべきではありません。

以下のようなアクションには人間の承認が必要です:

  • 外部メール送信
  • プロダクションデータ修正
  • インフラストラクチャデプロイ
  • ファイル削除
  • パーミッション変更
  • サービス購入
  • 機密データ共有

プロトコルは統合を容易にします。それらは説明責任を除去するわけではありません。

実用的な例

例1:ローカルコーディングアシスタント

ローカルコーディングアシスタントはMCPを使用して以下にアクセスします:

  • ファイルシステム
  • Gitリポジトリ
  • テストランナー
  • パッケージマネージャー
  • ドキュメント検索

おそらくA2Aは必要ありません。

MCPだけで十分です。

例2:エンタープライズサポートアシスタント

サポートアシスタントはMCPを使用して以下にアクセスします:

  • CRM
  • チケット管理システム
  • ドキュメント
  • Slack
  • カスタマーデータベース

最初はMCPだけで十分です。

後で、会社は専門エージェントを追加します:

  • 請求エージェント
  • 法務ポリシーエージェント
  • プロダクトトラブルシューティングエージェント
  • エスカレーションエージェント

これでサポートアシスタントが他のエージェントに作業を委任する必要があるため、A2Aが意味を持ち始めます。

両方を使用します。

例3:エージェントマーケットプレイス

プラットフォームはサードパーティエージェントに機能を宣伝し、他のエージェントからタスクを受け取ることを可能にします。

プラットフォームは各エージェントの内部実装を知りません。

A2Aは強力な適合です。

個々のエージェントは内部的にMCPを使用するかもしれませんが、パブリック境界はA2Aです。

例4:データ分析エージェント

データ分析エージェントはウェアハウスを照会し、ダッシュボードを読み取り、チャートを作成し、レポートを書きます。

それがツールを使用する単一のエージェントである場合、MCPだけで十分です。

統計レビューを1つのエージェントに、ビジネス説明を別のエージェントに、コンプライアンスレビューを別のエージェントに委任する場合、A2Aが有用になります。

私の意見を含んだ見解

MCPはほとんどのビルダーにとって実用的なデフォルトであり、A2Aは大規模システムが実際のエージェント間調整ニーズを持つと成長するアーキテクチャ境界です。

最初の有用なAIエージェントを構築している場合、MCPから始めてください。AI Systems clusterは自己ホストアシスタント、MCPサーバー、エージェントメモリを接続されたセットとして扱っており、それらの部品が実際どのように連携するかについてより広い視点を与えます。エージェントに安全でスコープの狭いツールとデータアクセスを与えてください。ツール説明がどこで壊れるか学んでください。パーミッションがどこで混乱するか学んでください。可観測性がどこで弱いのか学んでください。

マルチエージェント幻想アーキテクチャから始めないでください。

しかし、あなたのシステムが独立して所有された複数のエージェントを持つようになると、A2Aはより興味深くなります。それはエージェント機能、タスク委任、クロスエージェント協働を表すよりきれいな方法を提供します。

A2AとMCPを競合相手として扱うことが間違いです。

それらは異なるレイヤーとして理解するのがより良いです:

  • MCPはエージェントを機能に接続します。
  • A2Aはエージェントを他のエージェントに接続します。

MCPだけで有用なシステムを構築できます。

A2Aだけでエージェントネットワークを構築できます。

しかし、最も拡張可能なパターンはおそらく両方です:エージェント協働にはA2A、ツール統合にはMCP。

最終判断:AIエージェントは本当に両方を必要とするか?

時には——しかし常にではなく、答えはあなたのシステムが実際のエージェント間境界を持っているのか、それとも単にツール使用関数のコレクションだけかによってほぼ完全に依存します。

AIエージェントがツールだけを必要とする場合、MCPを使用してください。

AIシステムが独立してデプロイされたエージェントが協働する必要がある場合、A2Aを使用してください。

専門エージェントがツールを必要とし、他のエージェントと協働する必要もある場合、両方を使用してください。

最もきれいなアーキテクチャは「A2A vs MCP」ではなく——エージェント境界にはA2A、ツール境界にはMCPで、各プロトコルが設計された問題を正確に処理します。その関心事の分離こそが、マルチエージェントシステムを理解可能で、安全で、時間とともに進化させやすく保つものです。

A2Aが2026年にどこに位置するか——採用ティア、セキュリティ要件、エンタープライズ使用ケース、そして導入すべき意思決定フレームワーク——についてのより広い見解は、Google A2A Protocol in 2026: Adoption, Hype, and Realityをご覧ください。

情報源

購読する

システム、インフラ、AIエンジニアリングの新記事をお届けします。