エージェント基盤・プロトコル

A2Aとは|相手のエージェントを調べずに繋ぐための、名刺のような仕組み

A2Aは何のための規格なのかMCPとは何が違うのかいま自分が使う場面はあるのか

AIエージェントを別のエージェントと繋ぎたい。そう思ったとき、これまでは相手ごとに繋ぎ方を調べて書く必要がありました。窓口の場所、送る形式、返ってくる形式、それぞれ違うからです。

A2Aはそこを揃えるための規格です。今回は、相手の情報を書いた「Agent Card」を実際に扱ってみて、相手を調べずに能力から探せることを確かめました。あわせて、よく混同されるMCPとの違いも整理します。

この記事の要点

  • A2Aは異なる基盤のAIエージェント同士を繋ぐためのオープンな規格
  • 鍵になるのはAgent Card。相手の名前・説明・できることを機械が読める形で公開する
  • 実測では、カードを見るだけで「文字→文字」ができる相手を選び出せた
  • MCPとは競合ではなく役割違い。道具はMCP、相手のエージェントはA2A

A2Aは何のための規格なのか

別々に作られたAIエージェント同士を、共通の手順で繋ぐための規格です。相手の作りを知らなくても会話できる状態を目指しています。

A2A(Agent2Agent Protocol)は、AIエージェント同士がやり取りし協調するためのオープンな規格です。公式サイトはそう定義しています。

背景にあるのは、エージェントの作り方がばらばらだという事実です。LangGraph、CrewAI、独自実装と、基盤も開発元も異なります。繋ごうとするたびに相手ごとの調べ物が発生していました

中身を見せずに繋ぐ

A2Aの特徴は、相手の中身が分からないままでも繋げることです。公式はこれを、中身が見えないエージェント同士の相互運用を可能にする規格、と表現しています。

これは実務上、重要な性質です。他社のエージェントを使うとき、相手の実装を知る必要も、公開してもらう必要もありません。決まった手順で話しかければ済みます。

MCPとは役割が違う

よく混同されるのがMCPとの関係です。公式は両者を並べて、MCPで道具やデータに繋ぎ、A2Aで他のエージェントに繋ぐと説明しています。競合する規格ではありません。

MCPA2A
繋ぐ相手道具・データ他のエージェント
相手の性質呼べば結果が返る機能自分で判断して動く相手
典型的な用途検索・ファイル操作・API呼び出し作業の依頼と受け取り
組み合わせ両方使う。道具はMCP、相手はA2A同左
表1 ── MCPとA2Aの役割の違い(出典: a2a-protocol.org、2026-08-17取得)
余談 まだ新しい規格である点は踏まえておく

A2Aはバージョン1.0が公開された段階です。仕様は整ってきていますが、対応しているエージェントがどれだけあるかは別の問題です。採用の判断では、繋ぎたい相手が対応しているかを先に確認することになります。

出典A2A Protocol 公式サイト2026-08-17 確認
The Agent2Agent (A2A) Protocol is an open standard for seamless communication and collaboration between AI agents.
原文A2A Protocol 公式サイト この内容の有効期限2027-02-17

カードを見るだけで、条件に合う相手を選べた

A2Aの中心にあるのがAgent Cardです。相手の能力を機械が読める形で書いておく仕組みで、実際に扱って探索してみました。

A2Aで最初に理解すべきなのがAgent Cardです。仕様書はこれを、エージェントの自己記述的な設定書と定義しています。名前、説明、できること、通信方法、必要な認証がここに書かれます。

置き場所も決まっていて、仕様書の例では /.well-known/agent-card.json を取得しています。場所を知っていれば中身は読めるという作りです。

実験: 独自の繋ぎ込みと比べる

手元で試しました。独自仕様で繋ぐ場合、相手ごとに窓口の場所・送る項目名・応答の読み方を把握する必要があります。A2Aならカードの場所だけで済みます。

下のコードは読み飛ばして大丈夫です。3体のエージェントのカードを用意して、「文字を受け取って文字を返せる相手」をカードだけから探しています

javascript
// 仕様の必須項目がそろっているかを確かめる
function validateCard(card) {
  const missing = ['name', 'description', 'skills'].filter((k) => card[k] === undefined);
  return missing.length ? `不備(不足: ${missing.join(', ')})` : '利用可能';
}

// 入力と出力の形式から、条件に合う相手を探す
function findByCapability(inputMode, outputMode) {
  return Object.entries(agentCards)
    .filter(([, c]) => c.skills.some(
      (s) => s.inputModes.includes(inputMode) && s.outputModes.includes(outputMode)))
    .map(([id]) => id);
}
text
--- 独自仕様: 相手を1つ増やすときに書くもの ---
  既存の繋ぎ込み: 2件
  1件あたりに必要: エンドポイント・入力の項目名・応答の読み方 の3つ
  3つ目を足すと合計: 9項目を把握する必要がある
--- A2A: 相手を1つ増やすときに書くもの ---
  必要なのは Agent Card の場所だけ。中身は取得して読む
  translator  利用可能 — 文章を指定言語へ翻訳する
  summarizer  利用可能 — 長文を要約する
  ocr         利用可能 — 画像から文字を読み取る
--- カードだけを見て「文字→文字」ができる相手を探す ---
  該当: translator, summarizer
  画像→文字ができる相手: ocr

選べました。translator と summarizer の2体です。それぞれの実装は一切見ていません。カードに書かれた入力と出力の形式だけで判断しています。

なぜ相手が増えても手間が増えないのか

画像を入力できる相手を探すと、今度は ocr だけが返ります。相手が増えても、探し方は変わりません。カードの形式が同じなので、読む処理を書き足す必要がないからです。

独自の繋ぎ込みは相手ごとに把握する項目が増える。カード方式は増えない。

単位: 項目独自仕様で繋ぐ9項目Agent Card で繋ぐ3項目−67%独自仕様は1体あたり3項目(窓口・入力の項目名・応答の読み方)。カード方式はカードの場所1つずつで済む。
図1 ── 繋ぐ相手を3体に増やしたときに把握が必要な項目数
カードの内容は自己申告であるAgent Cardに書かれているのは相手の自己申告です。書かれたとおりに動く保証は、規格そのものからは得られません。実際に使う前には、認証の要件を確認し、想定どおりの応答が返るかを試す必要があります。
出典A2A Protocol Specification2026-08-17 確認
A self-describing manifest for an agent. It provides essential metadata including the agent's identity, capabilities, skills, supported communication methods, and security requirements.
原文A2A Protocol Specification この内容の有効期限2027-02-17

いま自分が使う場面はあるのか

判断は単純です。繋ぎたい相手が道具ならMCP、自分で判断して動くエージェントならA2A。そして相手が対応しているかを先に確認します。

A2Aを採用するかどうかは、規格の優劣ではなく何に繋ぐかで決まります。公式の説明どおり、道具とデータはMCP、他のエージェントはA2Aという分担です。

切り分けは「道具か、相手か」

判断の基準は、繋ぐ先が呼べば決まった結果を返すものか、自分で判断して手順を決めるものかです。前者は道具なのでMCP、後者はエージェントなのでA2Aになります。

検索やファイル操作は前者です。「この資料をまとめて、必要なら追加で調べて」と頼めるものは後者になります。同じ処理でも、判断が相手側にあるかどうかで分かれます。

繋ぐ先が判断するかどうかで規格が決まる。対応していなければ独自の繋ぎ込みが残る。

繋ぐ先は自分で判断して動くかいいえ道具として扱う。MCPの領分はいその相手はA2Aに対応しているかいいえ独自の繋ぎ込みが必要になるはいA2Aで繋ぐ。カードで能力を確認する2つ目で止まる場合が現時点では多い。規格の対応状況は相手側の都合で決まるため、先に確認する。
図2 ── MCPとA2Aのどちらを使うかの判断

個人開発ではまだ先の話が多い

現時点で個人開発に必要になる場面は限られます。1つのアプリの中で完結する構成なら、エージェント間の通信は発生しないためです。

必要になるのは、自分のエージェントを外部に公開する場合か、外部のエージェントに作業を頼む場合です。どちらも相手が存在してはじめて意味を持つので、繋ぎたい先が決まってから調べれば足ります。

エージェントに道具を持たせる仕組みについては、MCPの解説記事で扱う予定です。あわせてAPI連携の記事も、繋ぎ込みの考え方として参考になります。

余談 規格を知っておく価値はある

いま使わないとしても、Agent Cardに何を書くのかを見ておくと設計の参考になります。名前・説明・できること・入出力の形式・認証要件という並びは、外部に何かを公開するときに共通して必要な項目だからです。A2Aを採用しない場合でも、この整理は流用できると編集部は考えています。

出典A2A Protocol 公式サイト2026-08-17 確認
An open standard enabling users to connect agents to tools and data through MCP, and to other agents through A2A.
原文A2A Protocol 公式サイト この内容の有効期限2027-02-17

よくある質問

MCPがあればA2Aは不要ではないですか?
対象が違います。MCPは道具やデータへ繋ぐための規格で、A2Aは他のエージェントへ繋ぐための規格です。公式も、MCPで道具を持たせ、A2Aで他のエージェントと会話する、という並びで説明しています。
相手の中身は分からなくても繋げるのですか?
それが狙いです。公式はA2Aを、中身が見えないエージェント同士を繋ぐための規格だとしています。相手がどのフレームワークで作られていても、Agent Cardに書かれた内容だけを見て扱えます。
個人開発でも使いますか?
現時点では、複数のエージェントを別々に運用して連携させる場面が中心です。1つのアプリの中で完結するなら、まだ必要になりません。ただし規格を知っておくと、外部のエージェントを使う判断がしやすくなります。
どこから読み始めればよいですか?
公式サイトのCore Conceptsと、Agent Cardの項目定義が出発点です。仕様書は分量が多いので、まずAgent Cardに何を書くのかを見ると全体像がつかみやすくなります。

まとめ

  • A2Aは異なる基盤のエージェント同士を繋ぐためのオープンな規格
  • 中心はAgent Card。相手の能力を機械が読める形で公開する仕組み
  • 実測では、カードだけで条件に合う相手を選べた
  • MCPとの関係は役割分担。道具はMCP、相手のエージェントはA2A

今日から始められること

  1. 公式サイトでAgent Cardの必須項目を確認する
  2. 自分のエージェントを外部に公開する予定があるか整理する
  3. 外部のエージェントを使う予定があれば、A2A対応かどうかを確認する
  4. MCPとA2Aのどちらが必要な場面かを、道具か相手かで切り分ける

実務で組んだA2Aのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る