😎
社内で“使い回せる”生成AIエージェント基盤を作る:MCP / ACP / A2A / ANP 論文まとめ+実装ロードマップ
社内で“使い回せる”生成AIエージェント基盤:MCP / ACP / A2A / ANP 論文まとめ → 実装ロードマップ
こんにちは、現在私が所属する会社では、全社的に生成AIエージェントを使う方向性に動いています。
それに伴い、各々がつくったエージェントを皆で共有したりカタログ的な感じで見て使いまわせれないかなぁと思っていますが、現在世の中ではどんな取り組みがあるのかなあと気になって調べてみました!
本記事は、エージェント相互運用の調査論文を起点に、**社内の“カタログ化&使い回し”**をどう設計するかを実務目線でまとめたものです。
対象論文は “A survey of agent interoperability protocols: MCP / ACP / A2A / ANP”(2025/05 公開, v2)です。
目次
TL;DR
- MCP:エージェント→ツール/API 呼び出しの“共通USB”。まずはここから。
- ACP:HTTP/REST ベースの構造化メッセージング。UI・マルチモーダル応答に強い。
- A2A:エージェント同士のタスク委譲。Agent Card(能力記述)で相互発見・選定。
- ANP:DID/JSON-LD によるネットワーク規模の発見・相互運用。将来の組織横断向け。
- 論文は MCP→ACP→A2A→ANP の段階導入を提案。まず MCP を固めると“使い回し”の土台が安定。
Part 1 — 論文まとめ(要点)
MCP(Model Context Protocol)
- 目的:LLM エージェントが外部ツールを安全・型付きで呼び出す共通口。
- イメージ:AI の USB-C。
- 向き:社内 API 群や業務ツールの統一接続。
ACP(Agent Communication Protocol)
- 目的:HTTP/REST を基盤に、マルチパートや非同期ストリーミングを扱うメッセージング。
- 向き:UI 連携やマルチモーダル応答。
A2A(Agent-to-Agent Protocol)
- 目的:エージェント間のタスク委譲。能力を Agent Card に記述して相互発見。
- 向き:社内ワークフローの分業自動化。
ANP(Agent Network Protocol)
- 目的:DID/JSON-LD による分散 ID と発見で、ネットワーク規模の相互運用。
- 向き:組織横断・外部ベンダ連携・将来の“エージェント市場”。
比較の観点と推奨ロードマップ
- 軸:呼び出し単位、発見方法、用途など。
-
順序:
- MCP でツール接続を標準化
- ACP でメッセージングを強化
- A2A で委譲・協調
- ANP で越境ネットワークへ
Part 2 — 実務でどう活かすか
なぜ「MCP 起点」?(A2A 先行はダメ?への回答)
- 理由1:ツール接続がバラバラだと、A2A で委譲しても互換性や SLA が崩れる。
- 理由2:認証・エラー・I/O スキーマを MCP 層で統一すると、上位の連携が安定。
- 理由3:一度 MCP 化したツールは、全エージェントの共有資産になる。
例外的に A2A 先行が「アリ」なケース
- すでに API が統一されている
- まず UI/マルチモーダル対応を急ぐ場合
- 特定ベンダーの基盤を利用している場合
フェーズ別ロードマップ(3→9→+αヶ月)
フェーズ1(最初の 3 ヶ月):MCP で“共通USB”を差す
- 社内 API を MCP サーバ化
- I/O スキーマと認証を最小限ルール化
- 共通 SDK を配布
- ゴール:新しいエージェントが 同じやり方でツール利用できる
フェーズ2(3〜9 ヶ月):A2A で“分業”を回す
- Agent Card を最小仕様で定義し、レジストリに登録
- ワークフロー例を A2A 委譲で自動化
- ログ/監査を必須化
- ゴール:社内エージェントのカタログが回る
フェーズ3(必要に応じて):ACP / ANP を重ねる
- ACP:UI・マルチモーダル応答が増えたら導入
- ANP:グループ会社や外部ベンダと越境連携が必要になったら導入
実装チェックリスト/テンプレ/KPI
✅ チェックリスト
- MCP ツール公開規約(命名・I/O・バージョン)
- 認証/認可(最低限の RBAC)
- 監査ログ(委譲チェーン追跡)
- フォールバック設計(失敗時の代替戦略)
- Agent Card レジストリ(検索・タグ付け)
🧩 Agent Card サンプル
{
"name": "report-formatter",
"owner": "data-eng-team",
"capabilities": ["format:markdown", "insert:citation", "layout:toc"],
"input_schema": {"type": "object", "properties": {"draft": {"type":"string"}}},
"output_schema": {"type":"object", "properties":{"md": {"type":"string"}}},
"endpoint": "https://agents.internal/report-formatter",
"auth": "bearer-jwt"
}
Discussion