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

MCPはエージェントにツールを提供し、A2Aはエージェントにピアを提供します。

目次

AIエージェントアーキテクチャは、2つのレイヤーに分かれつつあります。

1つのレイヤーは、AIアシスタントにツール、データ、API、ファイル、データベース、検索システム、カレンダー、チケットシステム、その他の外部機能へのアクセス権を与えることです。ここでMCP(Model Context Protocol)が適用されます。

もう1つのレイヤーは、1つのAIエージェントが別のAIエージェント(おそらく別のチーム、フレームワーク、ベンダー、または組織によって構築されたもの)を発見し、通信し、委譲し、協働することです。ここでA2A(Agent2Agent Protocol)が適用されます。

厄介なことに、これら2つのプロトコルは同じ問題を解決するかのように議論されることがよくありますが、実際にはそうではありません。境界には重複部分があり、その重複こそが混乱の大部分の原因となっています。しかし、明確なメンタルモデルはシンプルです。

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

A2AとMCPプロトコルのアーキテクチャ — A2Aで接続されたAIエージェントが、それぞれMCPを介してツールにアクセスしている

すべてのAIシステムが両方を必要とするわけではありません。実際、大多数の小さなエージェントプロジェクトは、MCPから始め、実際のマルチエージェント境界が存在するまでA2Aを無視するのが適切でしょう。しかし、別個にデプロイされたエージェント、専門エージェント、ベンダーエージェント、または長時間実行される委譲タスクを含む大規模なエージェントシステムを構築している場合、A2Aは理にかなった選択肢となります。

この記事では、両者の違い、重複部分、アーキテクチャ上のトレードオフ、そして実際に両者が必要となるタイミングについて説明します。

MCPとは何ですか?

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

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

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

  • ツール:モデルが使用可能な呼び出し可能な関数
  • リソース:ファイル、APIデータ、ドキュメント、データベースレコードなど、読み取り可能なコンテキスト
  • プロンプト:再利用可能なプロンプトテンプレートまたはワークフロー

公式の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アプリケーションがそれに接続できます。GoでのMCPサーバーおよびPythonでのMCPサーバーの実装に関する実践的なガイドは、プロトコルが重い処理を担うことで、統合レイヤーがいかにシンプルになるかを示しています。

MCPがこれほど早く重要視されるようになった理由はここにあります。それは退屈ですが痛ましい統合問題を解決するのです。

そして、退屈な統合問題こそが、誰もが必ず行う反復作業を削減するために生存する、持続的な標準の源となるのです。

A2Aとは何ですか?

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

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

ここでのキーワードは「独立したエージェントシステム」です。

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

A2Aエージェントは、エージェントカードを通じて何が実行できるかを広告できます。別のエージェントまたはクライアントはその機能を見つけ、タスクを送信し、メッセージを交換し、アーティファクトを受け取り、タスクライフサイクルを追跡できます。

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

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

これらの概念を組み合わせると、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

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

ユーザー
  |
  v
プライマリアシスタントまたはオーケストレーター
  |
  |-- A2A --> 調査エージェント
  |              |
  |              |-- MCP --> Web検索
  |              |-- MCP --> ドキュメントストア
  |
  |-- A2A --> コーディングエージェント
  |              |
  |              |-- MCP --> GitHub
  |              |-- MCP --> ファイルシステム
  |              |-- MCP --> CIシステム
  |
  |-- A2A --> DevOpsエージェント
                 |
                 |-- MCP --> メトリクス
                 |-- MCP --> ログ
                 |-- MCP --> Kubernetes

この設計では、A2Aはエージェント間の委譲を処理し、MCPは各エージェントとそのツール間の統合を処理します。オーケストレーターは、各専門家が使用可能なすべてのツールを知る必要はありません。どのエージェントがどの種類の作業を担当しているかを知るだけで十分であり、これによりツールの過負荷を軽減し、全体アーキテクチャをよりモジュラーに保ちます。推論、メモリ、ルーティング、ツールが本番アシスタント内でどのように連携するかについて詳しくは、AIアシスタントアーキテクチャ:LLM、メモリ、ツール、ルーティング、可観測性をご参照ください。

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の両方で構築している場合、セキュリティは後付けではありません。それはアーキテクチャの一部です。

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

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

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

それは本番環境では受け入れられません。

MCP中心のシステムでは、以下を可観測にする必要があります。

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

A2A中心のシステムでは、以下を可観測にする必要があります。

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

システムがよりエージェント的になるほど、トレーサビリティは重要になります。作業が複数のエージェント、ツール呼び出し、アーティファクトの引き継ぎにまたがる場合、プレーンなアプリケーションログだけでは不十分です。任意の答えがその起源にトレースできるように、完全な実行パスを追跡するタスクトレースが必要です。LLMシステムのための可観測性:メトリクス、トレース、ログ、および本番環境でのテストは、このツールと計装の側面について深く掘り下げています。

決定フレームワーク: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システムクラスターはセルフホストされたアシスタント、MCPサーバー、およびエージェントメモリを接続されたセットとしてカバーしており、それらの部品が実務でどのように連携するかをより広い視点で示しています。エージェントに安全で、適切にスコープされたツールとデータへのアクセスを与えてください。ツール記述が崩壊する場所を学びます。パーミッションが混乱する場所を学びます。可観測性が弱い場所を学びます。

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

しかし、システムに複数の独立して所有されたエージェントがある場合、A2Aははるかに興味深くなります。それは、エージェント機能、タスク委譲、およびエージェント間の協働を表すためのよりクリーンな方法を提供します。

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

それらは異なるレイヤーとして理解されるべきです。

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

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

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

しかし、最もスケーラブルなパターンはおそらく両方です。エージェント協働のためのA2A、ツール統合のためのMCP。

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

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

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

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

専門エージェントがツールを必要とし、また他のエージェントと協働する必要がある場合、両方を使用します。

最もクリーンなアーキテクチャは「A2A vs MCP」ではありません。エージェント境界でのA2Aとツール境界でのMCPであり、各プロトコルが設計された問題だけを取り扱います。この懸念の分離が、マルチエージェントシステムを理解しやすく、安全で、時間とともに進化しやすいものに保ちます。

2026年におけるA2Aの位置づけ、採用ティア、セキュリティ要件、エンタープライズユースケース、および導入すべきタイミングの決定フレームワークについて広く見るために、2026年のGoogle A2Aプロトコル:採用、過熱、および現実をご参照ください。

出典

購読する

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