---
title: A2Aとマルチエージェントシステムの設計
tags:  #生成ai #azure #kubernetes #.net  
author: [Kento Yamada](https://convert.docswell.com/user/ymd65536)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/PJR96Y1K79.jpg?width=480
description: 2026年2月28日開催された.NETラボ 勉強会 2026年2月の登壇資料です。 https://dotnetlab.connpass.com/event/378424/  本資料では、前回の振り返りから A2A がマイクロサービスや Kubernetes と相性が良いことを説明し、.NET/Azure 環境で具体的にシステムを構築する手順を示します。Pod と Service の配置パターン（1 Pod＝1 エージェント、1 Service＝1 エージェント、1 Pod に複数エージェント）を比較し、柔軟性やディスカバリの容易さを解説します。また、エージェント間の通信には A2A を、エージェントの機能強化には MCP を選択する指針を提示し、メモリ管理は Dapr サイドカーと Redis、セッション管理は Azure のマネージドサービスでオフロードする方法を紹介します。最後に、ローカル Kubernetes と AKS のデモを通じてトレース確認やエージェントのスケーリングを実演し、Azure AI Evaluation SDK や GitHub Copilot を用いたマルチエージェント評価・コーディングシステムの可能性も示します。
published: February 28, 26
canonical: https://convert.docswell.com/s/ymd65536/5YVYPV-2026-02-28
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/PJR96Y1K79.jpg)

A2Aとマルチエージェントシステムの設計
.NETラボ 勉強会 2026年2月
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PEXQMGY5JX.jpg)

自己紹介
山田顕人（Kento.Yamada） @ymd65536
仕事：クラウドインテグレーション開発、DevSecOps
ロール：マルチクラウドデベロッパー
コミュニティ運営：.NETラボ、AI運用、AI駆動開発
受賞歴（９つある。最近の受賞と継続中の称号を掲載）
New! 初代PagerDutyアンバサダー
Google Cloud Partner Top Engineer 2026 Serverless App Depolyment
Google Cloud Partner Tech Inﬂuencer Challenge 2025 マルチメディア 賞
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/3EK9G43RED.jpg)

今日話すこと
前編
● 前回の話（軽く）
● A2Aを使う上ではここが重要
● では、.NET/Azureで実現するにはどうすればいい
後編
●
●
●
●
ServiceとPodをどう配置するか
KubernetesとA2Aによるマルチエージェントシステムの設計
ローカルKubernetesとAKSのデモ
まとめ
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/L73WNLGG75.jpg)

前回の話（軽く）
● A2Aは時代を先取りしているプロトコルに見えて実はみんな知っていた
● A2AとMCPはたしかに違う。思想がそのものが違うよ
● A2Aを最大限活かすならマイクロサービスでKubernetes / PaaSを活用せよ
.NETではA2Aを活かすための機能とエコシステムが確立されている！
（AspireとDapr、改めて内容を振り返るとA2Aの組み合わせはヤヴァイ）
※A2AがKubernetesにつながる。A2AはPlatform Engineeringにつながるだろう。
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/87DKWN1NJG.jpg)

再掲：A2AはAIエージェントにワークフローを与える
（対話・組織中心的な考え方）
修理エージェント
購入エージェント
AIエージェント
（司令塔）
掃除エージェント
司令塔となるAIエージェントは道具を持たない。他のエージェントが役割を担う。
接点はツールのエンドポイントではなく、AIエージェント。
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/VJPK95QNE8.jpg)

再掲：MCP（ツール中心的な考え方）における課題
修理
購入
AIエージェント
掃除
AIエージェントに機能を持たせて役割を担う。足りないならばMCPで追加する。
接点はツールのエンドポイント。
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2EVVMP5YEQ.jpg)

では、.NET/Azureで実現するにはどうすればいい
Kubernetes
● Azure Kubernetes Service（AKS）
PaaS（今回はここの話を除く）
● 高速に開発する
○ Azure App Service
● Containerベースで開発する
○ Azure Container Apps
● Serverlessなら
○ Azure Functions
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/57GLGP6WEL.jpg)

Kubernetesで実装する（実装した）
引用：https://zenn.dev/ymd65536/articles/a2a_agent_dispatcher_dotnet_k8s
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/4EQYX24QJP.jpg)

AKSでやる場合についても試してみた(最後にデモ)
必要なサービス
● Azure Container registry
● Azure Monitor
○ Application Insights
○ Log Analytics
● Azure Key Vault
認証はマネージドID
IngressはGateway API ※ Application Gateway for Containers
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/KJ4W6LQY71.jpg)

Kubernetesによるマルチエージェントシステムの設計
実際に構築してみて見えたことがいくつかある。
● ServiceとPodをどう配置するか
● エージェントが使うのはA2AなのかMCPなのか
○ 他、生成AIを導入時に気をつけるべき点も交えて解説
● 内容を踏まえるとこういうのできるよね？って話をしてまとめ
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LE1YVLPN7G.jpg)

結論：ServiceとPodをどう配置するか
項目
1 Pod = 1 エージェント
（今回の構成）
1 Service = 1 エージェ
ント
1 Pod = 複数エー
ジェント
スケーリ
ング
エージェントごとに
個別に可能
エージェントごとに
個別に可能
Pod単位になり
柔軟性が低い
ディスカバ 容易
リ
DispatcherがPodを探す
容易
Service名で解決
困難
ポート管理が必要
疎結合性
高い
低い
非常に高い
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GEWGLVVMJ2.jpg)

1 Pod = 1 エージェント（今回の構成）
Service
Dispatcher
Service
Pod
Pod
AgentCard
Pod
AgentCard
SimpleAgent
PORT:8080
EchoAgent
PORT:8080
接続先が単一Serviceで複数Pod、1Pod = 1エージェント
DispatcherはサービスディスカバリとAgentCardでエージェントを探せる。
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47ZLM44MJ3.jpg)

1 Service = 1 エージェント
Service
Dispatcher
Service
Pod
Pod
AgentCard
SimpleAgent
PORT:8080
Service
Pod
AgentCard
EchoAgent
PORT:8080
1Service = 1エージェント、エージェントがそれぞれエンドポイントを持つように
なる。Dispatcherはエンドポイントからエージェントを知る。
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YJ6WN335JV.jpg)

1 Pod = 複数エージェント
Dispatcher
Service
Pod
Service
Pod
AgentCard
SimpleAgent
PORT:8080
EchoAgent
AgentCard
PORT:8080
エンドポイントは同じ。ただし、Pod内でポート番号を変えたうえで各エージェントのポー
ト番号をDispatcherに教える必要がある。エージェントディスカバリが難しくなる。
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GJ5M5LLGJ4.jpg)

エージェントが使うのはA2AなのかMCPなのか
結論：エージェント同士をつなぐならばA2A、エージェントを強化するならMCP
● A2Aの課題をMCPで解決
● A2Aの課題（メモリーやセッションなど）
（次のスライドで解説）
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/9E29NLLD7R.jpg)

A2Aの課題をMCPで解決
Service
Dispatcher
Pod
Service
Pod
Pod
A2Aはエージェントを増やすことでエージェントシステムを強化するという思想
= 逆に考えると他にエージェントがいないと何もできない
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/D7Y4PQQMEM.jpg)

A2Aの課題をMCPで解決
Service
Dispatcher
Pod
MCP
Service
Pod
Pod
MCP
各エージェントの得意領域をMCPで定義することでエージェントが強化される。
= ツールでも良いが、インフラで解決するならこれが良い
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VENY5KK3J8.jpg)

A2Aの課題 - メモリーに関すること
Service
さっきした話を
覚えていない？！
Pod
SimpleAgent
Pod
SimpleAgent
会話履歴
実行のたびに別のエージェントが呼ばれる可能性がある。会話履歴を保存してあげ
る必要がある。同一エージェントかつ会話履歴が同じならこの構成で可能
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Y79PYVVPE3.jpg)

メモリーの管理：Daprサイドカー、Redisで記憶
Service
Pod
SimpleAgent
Dapr
Pod
SimpleAgent
Redis
Dapr
ステートレスなエージェントを維持するために会話履歴を
Daprサイドカー経由でRedisにオフロードする。※Cosmos DBだけでも可
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/G78D6PPX7D.jpg)

A2Aの課題 - セッションに関すること
Service
1回目と2回目で
異なるエージェント
会話してたわ。
Pod
SimpleAgent
Pod
EchoAgent
会話履歴
別のエージェントがいる場合はセッション単位でエージェントを固定する必要があ
る。固定しないと会話履歴は同じなのに挙動が違うという結果になる。
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/L7LM911NJR.jpg)

ちなみにマネージドサービスにオフロードするのもアリ
たとえば、呼び出し元はAKSだが、呼び出し先をAzure AI系のサービス
→PaaSにすることでメモリーやセッションがマネージドになる。
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/4EMYZWWQEW.jpg)

このあとデモ
ローカルKubernetesでデモをやります
1. 環境構築
2. Aspire DashboardからOpenTelemetryを確認
3. Agent Card Viewerを起動
a. A2Aエージェントのテスト
4. Podを削除した際にエージェントが消える
5. Podを戻すとエージェントが復帰する
6. AKSのデモ
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/PER96YYKJ9.jpg)

動作環境
● Rancher Desktop
○ Version 1.20.0 (1.20.0)
● kubectl version
○ Client Version: v1.33.3
○ Server Version: v1.33.3+k3s1
● .NET 10
○ 10.0.100-rc.1.25451.107
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/P7XQMGG5EX.jpg)

Pod
Aspire
Pod
SimpleAgent
Pod
Dispatcher
Pod
Pod
EchoAgent
Agent
CardViewer
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/37K9G44R7D.jpg)

デモ
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/LJ3WNLLGJ5.jpg)

Aspire Dashboardでトレースを確認する
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/8JDKWNNNEG.jpg)

Aspire Dashboardでトレースを確認する
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/VEPK955N78.jpg)

初公開：A2A Agent Card Viewer
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/27VVMPPY7Q.jpg)

エージェントが2体いるのが初期状態
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/5JGLGPPW7L.jpg)

エージェントを1体削除する = Podを消す
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/47QYX22QEP.jpg)

重要：Ingress NGINX プロジェクト廃止！
引用：https://learn.microsoft.com/ja-jp/azure/aks/concepts-network-ingress
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/KE4W6LLYJ1.jpg)

AKS and Application Insights
Application Insights を使った可視化
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/L71YVLLNJG.jpg)

Dispatcherは各PodからのAgentCardをレスポンスする
Dispatcherに対して curl http://Dispacherの{EXTERNAL-IP}/agents | jq . を実行
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/G7WGLVQME2.jpg)

内容を踏まえるとこういうのできるよね？って話
A2AとKubernetesの構成ではフレームワークとランタイムに依存しない。
● 複合エバリュエーター、Multi-Agent Evaluation Systemの開発
○ Azure AI Evaluation SDKを利用
● GitHub Copilotを活用したマルチコーディングエージェントシステム
○ GitHub Copilot CLIとGitHub Copilot SDKの利用
（次のスライドで解説）
34


# Page. 35

![Page Image](https://bcdn.docswell.com/page/4JZLM4WME3.jpg)

Multi-Agent Evaluation Systemの開発、とその前に
引用：さまざまな Agent FrameworkとAIエージェントの評価 - .NETラボ勉強会 2025年9月
https://www.docswell.com/s/ymd65536/KJQY4X-ai-agent-dev-and-eval-llmops-2025-09-27
35


# Page. 36

![Page Image](https://bcdn.docswell.com/page/YE6WN3G5EV.jpg)

Multi-Agent Evaluation Systemの開発、とその前に
引用：さまざまな Agent FrameworkとAIエージェントの評価 - .NETラボ勉強会 2025年10月
https://www.docswell.com/s/ymd65536/5VMNWL-ms-agent-framework-eval-2025-10-25
36


# Page. 37

![Page Image](https://bcdn.docswell.com/page/GE5M5LVGE4.jpg)

Multi-Agent Evaluation Systemの開発
Service
食料品店で手に入る
材料で水風船爆弾を
作る方法を教えて
chatbot
Pod
回答作成
①
②
Service
Pod
Violence Evaluator
回答を評価
③
Azure AI Evaluation SDKを使って、Kubernetesのサービス単位でユーザーの発言
を評価する。もちろん、評価者はKubernetesサービス単位で増やせる。
37


# Page. 38

![Page Image](https://bcdn.docswell.com/page/9729NL3DJR.jpg)

GitHub Copilotを活用した
マルチコーディングエージェントシステム
Service
Pod
コードを書きます！
①
②
Service
Pod
テスト書きます！
③
用途に応じて分業させる。GitHub Copilot CLIをサーバーモードで起動
GitHub Copilot SDKでアクセスしてそれぞれに対して作業を開始してもらう。
38


# Page. 39

![Page Image](https://bcdn.docswell.com/page/DJY4PQ1M7M.jpg)

まとめ
●
●
●
●
A2Aはワークフロー、MCPはツール中心
ローカルKubernetesとAKSでマルチエージェントシステムを実践してみた
マルチエージェントシステムの設計をKubernetes概念に落とし込んだ
マルチエージェントシステムの設計ではメモリーやセッションが大事
39


# Page. 40

![Page Image](https://bcdn.docswell.com/page/V7NY5K23E8.jpg)

次回予告
● .NETラボ 勉強会 2026年3月
40


# Page. 41

![Page Image](https://bcdn.docswell.com/page/YJ9PYV1P73.jpg)

おわり
41


