-- Views
April 02, 26
スライド概要
【概要】
A2A プロトコルと Google ADK によるマルチエージェントシステムの設計について解説しています。
勉強会動画は下記からご視聴いただけます!
https://youtu.be/ZtX5posULv4
アイレットの現場のノウハウが集まる場所。 AWS や Google Cloud、OCI をもっと身近に。 インフラから開発、AIまで。 現場のリアルな技術 Tips を公開中! 【 YouTube で公開している勉強会資料です。気になる内容は YouTube で是非ご覧ください!】 📺 https://www.youtube.com/@iret-channel
第 190 回 雲勉 Agent2Agent(A2A)による マルチエージェントシステムの設計 山田 顕人 KDDIアイレット株式会社
Profile や ま だ けんと 山田 顕人 ★ご質問は YouTubeのコメント欄で 受け付けております。後日回答させていただきます! ★チャンネル登録よろしくお願いします! KDDIアイレット株式会社 クラウド・イノベーション本部 サービスプラットフォーム事業部MSP開発セクション 経歴 2022年入社、MSPの運用分析、次世代監視基盤AMSのバックエンド ● New 初代PagerDuty アンバサダー ● その他、受賞・認定資格は多数 ● X、その他SNSのID: @ymd65536
アジェンダ 01 A2Aプロトコルの概要 02 Google Agent Development Kit(ADK) 03 マルチエージェントシステムとは 04 A2AとADKによるマルチエージェントシステム 05 Google Cloudとマルチエージェントシステム
本編スタート
Agent2Agentプロトコル (A2A)の概要 1 MCPを補完する AIエージェント用のプロトコル 2 大規模なマルチエージェントシステム導入の課題に対応するよう設計 3 開発元は Googleとなっているが、現在は中立な組織 (Linux Foundation)傘下 Open standard designed to enable seamless communication and collaboration between AI agents. 引用: https://a2a-protocol.org/latest/ 5
どうして A2Aなんですか。( MCPを添えて) MCPではAIエージェントに組織中心的な考え方を与えられない。 ● MCPはAIエージェントに道具を与える ○ ツール中心的な考え方 ● A2AはAIエージェントにワークフローを与える ○ 対話・組織中心的な考え方 (次のスライドで図解しつつ、プロトコルにおける課題も見てみよう) 6
概要:MCPはAIエージェントに道具を与える (ツール中心的な考え方) 修理 購入 AIエージェント 掃除 AIエージェントに機能を持たせて役割を担う。エージェントの強化が目的となる。 協調ワークフローを定義するものではない。そして プロトコルには課題がある。 7
課題:MCPはAIエージェントに道具を与える (ツール中心的な考え方) 修理 購入 AIエージェント 掃除 ツールをたくさん持つことでAIエージェントの性能評価・試験は難しくなる。 AIエージェントがどんなツールをいくつ持っているのかを把握するのが難しい。 8
概要:A2AはAIエージェントにワークフローを与える (対話・組織中心的な考え方) 修理エージェント 購入エージェント AIエージェント (司令塔) 掃除エージェント 司令塔となるAIエージェントは基本的にツールを持たない。他のエージェントが役割を担う。 A2Aはエージェントを強化するものではない。そしてこのプロトコルにも課題がある。
課題:A2AはAIエージェントにワークフローを与える (対話・組織中心的な考え方) 修理エージェント 購入エージェント AIエージェント (司令塔) 掃除エージェント 複数エージェント(マルチエージェント )でワークフローが完成するというのがA2Aであるため マイクロサービスに類似したアーキテクチャになり、テストが難し くなる。
要約:MCPとA2Aの違い 考え方 目的 簡単な例え MCP ツール中心的な考え方 エージェントを強化する 装備を増やす。 A2A 組織中心的な考え方 ワークフローを構築する 組織図を拡大する。 考え方、目的、簡単なたとえを表にまとめると上記のとおりです。そして A2Aはマルチエージェントシステムを作ることを目的としたプロトコルであることが 組織を拡大する という表現からわかります。 11
マルチエージェントシステムとは エージェント同士が相互に通信してワークフローを形成するシステム 12
マルチエージェントシステムとは エージェント同士が相互に通信(エージェントメッシュ) = サービスメッシュ 13
余談: Kubernetesによるマルチエージェントシステムの実現 A2Aによるマルチエージェント = マイクロサービス 参考:https://zenn.dev/ymd65536/articles/a2a_agent_dispatcher_dotnet_k8s 14
余談: Kubernetesによるマルチエージェントシステムの実現 例:Kubernetesのサービスディスカバリでエージェントディスカバリを実現する Service Pod Service Pod Agent1 Agent Card Pod Agent2 Agent Card 15
Google Agent Development Kit(ADK) A2Aと同時に発表された GoogleのAgent開発キット ※Google Cloud Next 2025の発表から引用 Google ADKの公式マスコット 16
Google Agent Development Kit(ADK) 公式ブログの紹介 引用:https://developers.googleblog.com/ja/agent-development-kit-easy-to-build-multi-agent-applications/ エージェント開発キット: マルチエージェント アプリケーション開発を簡単に - Google Developers Blog 17
Google Agent Development Kit(ADK) LINE Developer Community で解説しています Google Agent Development Kit でLINE Botを作ってみた Agent Development Kit (ADK) でLINE Bot作ってみた 18
A2AとADKによるマルチエージェントシステムの設計 インフラに寄せる = A2A アプリケーションに寄せる = ADK 結論:マルチエージェントシステムをどのように設計するかで変わる。 19
A2Aによるマルチエージェントシステムの設計 実装するコードを最小にしてプロトコルで制御 メリット ● 実行環境とフレームワークに依存しないという柔軟性がある ● 同じプロトコルなら別のクラウド環境とも通信できる ○ ※クラウド環境それぞれの認証・認可(IAM)には注意 デメリット ● A2Aに対応していなければならない ● 異なるフレームワークで開発されたエージェントが混在する場合がある 20
A2Aを活用した例 ① A2A ② ①ではGoogle ADK、②ではStrands Agentsを使ったA2A接続 異なるフレームワークを跨いだ疎結合なシステムに向いている。 21
ADKによるマルチエージェントシステムの設計 ADKの機能を最大限に活用してエージェントを制御 メリット ● ADKの機能で完結する ● A2AやMCPにも対応しているので拡張しやすい デメリット ● ADKに依存している(特定のフレームワークに依存した際の課題と同様) ● 他のフレームワークで作成したエージェントシステムと接続できない ○ エージェントの接続部分を A2Aにしていない場合 22
ADKによるマルチエージェントシステムの設計 ① A2A ADKのルートエージェント ② A2A互換エージェント 接続不可 ADKのサブエージェント ①はA2A互換のあるエージェントであれば接続できる。 密結合な制御に向いている反面、相互に通信できないケースが生まれる。 23
補足:ADKにおけるエージェントの関係 root_agent sub_agents sub_agent1 sub_agent2 ADKではルートエージェントとサブエージェントの2つの概念がある。 PythonのADKではサブエージェントをサブモジュールとして実装 必然的に ADK専用のエージェントとなり、他のフレームワークと互換性がない。 24
用語解説:分散モノリスとは 簡単に説明するとサービスの独立性を失ったマイクロサービス すべてのAPIが密結合になっているシステム、全部集まって1つのシステム デプロイの単位 API1をデプロイする。 API2〜API4もデプロイする必要がある。 API1 API2 API3 API4 マルチエージェントでもこれは同じ。 25
A2A/ADKにおける共通の課題 分散モノリス的なマルチエージェントシステム 複数のAIエージェントをA2A/ADKで接続したマルチエージェントシステム 疎結合であるために外部のAIエージェントから接続できるように見える。 ※ここではA2Aを具体例とします。 root A2A SubAgent A 外部 A2A SubAgent B 26
A2A/ADKにおける共通の課題 分散モノリス的なマルチエージェントシステム 実際はサブエージェントがrootエージェントに最適化されているので 外部から接続ができるようになっていない。(あるいは繋がってもうまくいかない) 完成された単一のシステム root A2A SubAgent A 外部 A2A SubAgent B 27
Google Cloudとマルチエージェントシステム 引用:https://cloud.google.com/discover/what-is-a-multi-agent-system?hl=ja AI におけるマルチエージェント システムとは | Google Cloud 28
Google Cloudとマルチエージェントシステム コンピューティング ● Cloud Run ● Google Kubernetes Engine ● Agent Engine AI ● Vertex AI セキュリティ面 ● Model Armor 引用:https://docs.cloud.google.com/architecture/multiagent-ai-system?hl=ja Google Cloud のマルチエージェント AI システム | Cloud Architecture Center 29
連携型AI(マルチエージェント)の構築 ADKを使ったマルチエージェントシステムの紹介 引用 :https://cloud.google.com/blog/ja/topics/developers-practitioners/building-collaborative-ai-a-developers-guide-to-multi-agent-sy stems-with-adk/ 連携型 AI の構築: ADK を使用してマルチエージェント システムを構築するデベロッパー ガイド エージェントをどのように配置すべきか。 どのようにしてオーケストレーションすべきかが説明されています。 30
ハンズオン:マルチエージェント システムの構築 引用: https://codelabs.developers.google.com/codelabs/production-ready-ai-roadshow/1-building-a-multi-agent-s ystem/building-a-multi-agent-system?hl=ja#0 マルチエージェント システムの構築 分散マルチエージェントシステムのハンズオンです。 31
まとめ マルチエージェントシステムは A2AまたはADKで設計しよう ● MCPとA2Aの対比 ○ MCPはエージェントの強化、A2Aはワークフロー ● A2Aによるマルチエージェントシステムはマイクロサービス ○ サービスメッシュ、エージェントと組み合わさるとエージェントメッシュ ● マルチエージェントシステムはADKやA2Aを活用することで構築できる ○ A2A、ADKによる実装方法の違い ● Google Cloudではさまざまな実装方法がある ○ ADKの解説ブログやハンズオンがある 32