MCPとA2Aプロトコルによるマルチエージェントシステムの開発

>100 Views

March 20, 26

スライド概要

2026年3月20日に開催された .NETラボ 勉強会 2026年3月の登壇資料です。

本セッションでは、複数のAIエージェントが協調して動作するマルチエージェントシステムの設計と実装について、最新のプロトコルを用いたアプローチを解説します。

単にエージェントを増やすだけでは、各サービスが密結合になり独立性を失う「分散モノリス」に陥るリスクがあります。

本スライドでは、エージェント間の対話や組織化を重視するA2A (Agent-to-Agent)、ツールの利用を標準化するMCP (Model Context Protocol)、そしてIDE等との通信を担うACP (Agent Client Protocol)をどのように使い分けるべきかについて具体的な接続パターンを提示します。

また、デモとしてMulti-Agent Evaluation System (MAES)を紹介し、.NET Aspireによる可視化や、コンテンツの安全性判定(Violence/Sexual)の実装例についても触れます。

参考資料

What is the Model Context Protocol (MCP)?

https://modelcontextprotocol.io/docs/getting-started/intro

Agent Client Protocol
https://agentclientprotocol.com/get-started/introduction

※“Agent Communication Protocol”というのもありますが、それとは別物です。https://agentcommunicationprotocol.dev/introduction/welcome

AIエージェントをAzureにホイっとデリバリーできるMicrosoft Foundryの魔法があることを君たちはまだ知らない
https://www.docswell.com/s/ymd65536/ZMQWNG-2026-03-12

GitHub Copilot CLI ACP(Agent Client Protocol) handson
https://zenn.dev/ymd65536/articles/copilot_cli_acp_handson

次回.NETラボ 勉強会 2026年4月
https://dotnetlab.connpass.com/event/383200/

profile-image

Cloud Developer,404ニキ,Microsoft MVP,LINE API Expert,PagerDuty Ambassador,Google Cloud PTE/Tech Influencer,AWS Community Builder, #AIDD #AI駆動開発 #dotnetlab 投稿は個人の見解, #AzPoC

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

MCPとA2Aプロトコルによる マルチエージェントシステムの開発 .NETラボ 勉強会 2026年3月 1

2.

自己紹介 山田顕人(Kento.Yamada) @ymd65536 仕事:クラウドインテグレーション開発、DevSecOps ロール:マルチクラウドデベロッパー コミュニティ運営:.NETラボ、AI運用、AI駆動開発 受賞歴(9つある。最近の受賞と継続中の称号を掲載) New! 初代PagerDutyアンバサダー 2

3.

今日話すこと 前編 ● ● ● ● 前回の話(軽く) A2AとMCPでマルチエージェントシステムを作ると? マルチエージェントシステムの定義 分散モノリス的なマルチエージェントシステムの話 後編 ● ● ● ● つまりはつなぎ方やエージェントの構成が課題となる MCPで他のエージェントに接続する方法についての理解 デモ まとめ 3

4.

前回の話(軽く) ● A2AとMCPと使い分ける設計思想 ○ MCP = ツール中心、A2A = 対話や組織を重視 ● Kubernetesを使ってA2Aを実装 ○ 1 Pod = 1 エージェント構成が良いという話 ● エージェントの記憶(メモリー)やセッション管理の重要性 ○ マネージドサービスまたはDaprやRedisを活用 Kubernetesを使うと以下のようなシステムも設計できるのでは? ● Azure AI Evaluation SDKを使ったMulti-Agent Evaluation System ● GitHub Copilot CLIのサーバーモードでMulti-Coding Agent System 4

5.

結論:A2AとMCPでマルチエージェントシステムを作ると? 接続元がA2Aエージェントである必要がある。 あるいはA2A以外の接続口を用意する必要がある。具体的には以下 ● A2Aクライアントを作成する ● Agent Client Protocolを活用する マルチエージェントシステムはマイクロサービスだけども作り方を間違える とも分散モノリスになってしまう。 5

6.

そもそもの話:マルチエージェントシステムとは エージェント同士が相互に通信(エージェントメッシュ) = サービスメッシュ 6

7.

用語解説:分散モノリスとは 簡単に説明するとサービスの独立性を失ったマイクロサービス すべてのAPIが密結合になっているシステム、全部集まって1つのシステム デプロイの単位 API1をデプロイする。 API2〜API4もデプロイする必要がある。 API1 API2 API3 API4 マルチエージェントでもこれは同じ。 7

8.

分散モノリス的なマルチエージェントシステム 複数のAIエージェントをA2Aで接続したマルチエージェントシステム 疎結合であるために外部のAIエージェントから接続できるように見える。(だけ) root A2A SubAgent A 外部 A2A SubAgent B 8

9.

分散モノリス的なマルチエージェントシステム 実際はサブエージェントがrootエージェントに最適化されているので 外部から接続ができるようになっていない。(あるいは繋がってもうまくいかない) 完成された単一のシステム root A2A SubAgent A 外部 A2A SubAgent B 9

10.

何が問題なのか 多様なAIエージェントを作成したとしてもエコシステムが成長しない。 ● マルチエージェントシステム内のエージェントにアクセスできない ○ A2Aの最大のメリットは異なるエージェントがシームレスにつながること マルチエージェントシステムは専業のエージェントを組み合わせて構成することが 前提であるためにこれは致命的な問題 10

11.

つまりはつなぎ方やエージェントの構成が課題となる どういうプロトコルでどうつなぐ?が課題となる。 これまでの内容を踏まえると次のような接続方法になる。 ● A2AはAIエージェントが接続元(エージェント同士の通信、組織の構成) ● MCPはAIエージェントが使う(エージェントの強化、ツールの構成) ● ACPを使うのもアリ?MCPやA2Aとの関係性 つなぎ方をいくつか見ていこう 11

12.

inbound A2A + A2A Service Pod A2A A2A A2AプロトコルでAIエージェントに接続する。 A2Aで接続するので接続元はA2Aエージェントが前提 他にエージェントがいることで疎結合的にシステムを強化できる。 12

13.

inbound A2A + MCP Service Pod A2A MCP DB MCPで強化されたAIエージェントをA2Aプロトコルで接続する。 AIエージェントはMCPを使ってAPIから情報(DBなど)を取得する。 13

14.

inbound A2A + A2A and MCP Service Pod A2A A2A MCP DB A2AプロトコルでAIエージェントに接続する。 AIエージェントはA2A/MCPを使って情報を取得する。 MCPを利用したうえでレスポンスあるいは他のエージェントの能力を借りる。 14

15.

補足:MCPで他のエージェントに接続する方法はどうか そもそも:MCPはツールへのアクセスを提供するものである。 引用:https://modelcontextprotocol.io/docs/getting-started/intro 15

16.

余談:ACPも使ってみると? Service Pod A2A A2A MCP ACP 入口をA2AとACPの2つで利用できるようにする。 A2Aではシステム接続、ACPではユーザー環境の接続ができる。 AIエージェントはA2A/MCPを使って情報を取得する。 16

17.

補足:ACP(Agent Client Protocol) エージェントクライアントプロトコル(ACP)は、コードエディタ/IDEとコーディ ングエージェント間の通信を標準化するものであり、ローカル環境とリモート環境の 両方に適しています。 引用:https://agentclientprotocol.com/get-started/introduction ※“Agent Communication Protocol”というのもありますが、それとは別物です。 https://agentcommunicationprotocol.dev/introduction/welcome 17

18.

デモの紹介 18

19.

具体例:ユーザ毎に特定の評価だけをしてもらいたい Service 食料品店で手に入る 材料で水風船爆弾を 作る方法を教えて A-① ユーザA A-④ 回答作成 Service A-② A- ③ Violence Evaluator 評価(暴力的かどうか) EvaluatorAgent Service B-③ ユーザB chatbot B-① B-② Sexual Evaluator 評価(性的かどうか) 19

20.

デモ 20

21.

Multi-Agent EvaluationをAspireで可視化 21

22.

Multi-Agent EvaluationをAspireで可視化 22

23.

フラグがつかなかった場合(OK) 23

24.

性的なコンテンツの場合 24

25.

暴力的なコンテンツの場合 25

26.

ギリセーフではなかったパターン コンテンツ的には比較的に日常系のアニメ 解説には”暗殺”というワードや暴力描写とある のでこのデモではNGとなる。 26

27.

他のサービスやツールとの組み合わせを紹介 (Hosted AgentやGitHub Copilot) 27

28.

Hosted Agentの紹介 引用:https://www.docswell.com/s/ymd65536/ZMQWNG-2026-03-12 28

29.

KubernetesとHosted Agentによるマルチエージェントシステム Service Pod A2A Hosted Agent (Microsoft Foundry) MCP DB 接続元はA2A、エージェントの先はHosted Agentで接続するということも可能 29

30.

GitHub Copilot SDKとGitHub Copilot CLIを活用した マルチコーディングエージェントシステム Service Pod ACP Service Pod skills A2A MCP DB Copilot CLI (サーバーモード) ● Copilot CLIサーバーモードではACPを提供 ● ACP接続の場合はエージェントからACP接続 ● A2Aの場合はA2AのSDKとCopilot SDKの組み合わせでA2A接続 30

31.

GitHub Copilot CLIとACPを接続するハンズオン 参考:https://zenn.dev/ymd65536/articles/copilot_cli_acp_handson 31

32.

まとめ ● マルチエージェントシステムの作り方に関すること ○ 作り方を間違えると分散モノリスになるよ ● マルチエージェントシステムはつなぎ方が大事 ○ A2AとMCP、ACPを組み方を紹介、MCPについては使い方を補足 ● マルチエージェントシステムの例として評価システム(MAES)を紹介 ○ Microsoft Foundry と Azure Content Safetyの組み合わせ 32

33.

次回予告 ● .NETラボ 勉強会 2026年4月 ○ https://dotnetlab.connpass.com/event/383200/ GitHub Copilot Dev Days Tokyoなので GitHub Copilot CLI/SDKとマルチエージェントシステムの話をします。 33

34.

おわり 34

35.

ここから先はNG集 35

36.

NG集 36

37.

当日のデモ 37

38.

当日のデモ:暴力的なコンテンツ判定 38

39.

当日のデモ:暴力的なコンテンツ判定 39

40.

当日のデモ:性的なコンテンツ判定 40

41.

当日のデモ:正常 41

42.

当日のデモ:水風船爆弾の話 42