こんにちは、DX開発事業部の篠原です。
今回、AI Agent Summit ’25 Fall のDay2(10/31)に参加してきました。
そこで私が参加したセッションについてまとめていきます。
最後まで読んでいただけると幸いです。

セッション概要

セッション名: 実践 ADK, A2A, MCP で始める、エージェント開発
スピーカー: バンダリ・ハレン氏(Google Cloud)
※セッションのリンクはこちら

アジェンダ
・AIエージェントのご紹介
・Google Cloudでエージェントの構築
・Google Cloudでエージェントのデプロイ
・AIエージェントのアーキテクチャ

スピーカーのバンダリ・ハレン氏は冒頭で「本番環境で適用されるエージェントの作り方のヒントを伝えられれば」と、本セッションの目的を説明していました。

セッションレポート

それでは、ここから本セッションのまとめをしていきます。

AIエージェントについて

まず、AIエージェントの基本的な概念について説明がありました。
AIエージェントとは、単に質問に答えるLLMとは異なり、ユーザーの目的を達成するために自律的に行動してくれるシステムです。

バンダリ氏は「人間には脳があるが、脳だけでは何もできない。体があって初めて行動できる。エージェントも同じ仕組みです」と例えていました。LLMが「脳」だとすると、AIエージェントは周囲の環境やユーザーの発言を理解し、次に何をすべきか推論し、ツールを選んで目的を達成するまでの一連のシステムということです。この例えはとてもイメージしやすく、印象的でした。

AIエージェントのユースケースは多岐にわたりますが、共通しているのは「ユーザーが何を言っているのかを理解し、データを分析する」という点です。


セッションでは、オープンソースの汎用的なエージェントである「Gemini CLI」が例として紹介されました。Gemini CLIはコーディング支援だけでなく、文章生成やCSVファイルの分析も可能で、ツールとしてGoogle検索が組み込まれています。
特に魅力的なのがExtensionsで、これによりツールやMCPサーバーを簡単に導入できます。例えば、nanobananaやBigQueryといったツールも1行のコマンドでインストールでき、エージェントの機能を自由に拡張できるため、導入ハードルが大きく下がります。

Google Cloudでのエージェント構築

Google Cloudでは、ADK (Agent Development Kit) を使用することで、エージェント開発が容易になります。ADKはエージェントを管理・実行するオーケストレーション部分を担うため、開発者はエージェント本体のロジック開発に集中できます。また、短期・長期メモリの管理もADKが担ってくれるため、簡単なエージェントであれば数行のコードで作成可能です。

ADKでは、目的に応じて以下のようなエージェントを構築できます。
・LLM Agent::モデルとツールを基に、ユーザーの目的に応じて最適なツールを選択する一般的なエージェント。
・Sequential Agent:「タスク1の後にタスク2を実行する」といった、順番が重要な処理に使用します。
・Parallel Agent:複数のタスクを並列で実行させたい場合に使用します。
・Loop Agent:一度の実行で期待通りの答えが得られるとは限らないため、ループ処理でタスクを繰り返し実行し、より正確な答えを生成させます。これがエージェントの大きな魅力の一つです。

A2A (Agent 2 Agent) プロトコルとMCP
A2Aとは、複数のエージェント同士を対話形式で連携させるためのオープンソースプロトコルです。
本セッションでは、あるユーザーが沖縄旅行に行きたいという目的を例に取り上げていました。
ユーザーは「12/10から15日まで沖縄旅行に行きたい。航空券は30,000円以下、ホテルは一泊15,000円以内。12日と14日はゴルフがしたい。」という複雑な依頼をエージェントにします。この場合、航空券、ホテル、ゴルフ場を予約する各専門エージェントを、親となるユーザーエージェントがA2Aプロトコルを使って順番に呼び出し、対話しながらタスクを遂行していきます。これを可能にしているのがAgent Cardという仕組みで、各エージェントが「自分に何ができるか」「どうすればアクセスできるか」といった情報を発信し、他のエージェントがそれを参照できるようになっています。

ここで、A2AとMCP(Multi-agent Controllable Plugins)の違いについても説明がありました。これらは競合するものではなく、互いに補完しあう関係です。MCPがエージェント内部で使われる「ツール」としての役割を担うのに対し、A2Aは「エージェント間の通信」という役割を担い、複数のエージェントを連携させてユーザーの目的を達成させる仕組みです。

Google Cloudでのデプロイとアーキテクチャ

開発したエージェントは、以下のようなGoogle Cloudの様々なサービスでデプロイできます。
Cloud Run: 多くの言語に対応し、Gitからの直接デプロイやコンテナ化したエージェントのデプロイなど、柔軟性が高いサービスです。

Agent Engine:エージェントに特化したフルマネージドサービス。ADKやLangChainなどで作られたエージェントをコマンド1行でデプロイできます。

Gemini Enterprise:ADKで作成したサービスを、社内全体に一斉共有できるプラットフォームです。サードパーティーにも対応しているため、社外向けに共有することも可能です。

また、AIエージェントのアーキテクチャにはいくつかの実践的なパターンがあります。
・Review Critique パターン:あるエージェントの実行結果を、別の「レビュー担当」エージェントがチェックするパターン。成功条件を満たしていなければ、修正を指示して再度実行させます。
・Iterative refinement パターン:実行結果が不十分だった場合に、エージェント自身が改善点はないかを考え、修正するパターンです。ユーザーからの再指示を必要としない点が特徴です。

・Hierarchical task decomposition パターン:複雑なタスクをトップレベルのエージェントが分析し、より小さなタスクに分解して適切な専門エージェントに割り振ります。タスクの再分担も可能で、大規模な問題解決に応用できます。
・Human in the loop パターン:重要な判断が必要な場面で、人間が介在してアウトプットをチェックし、承認するパターンです。

最後に、これらの技術を組み合わせたマルチエージェントシステムの参考アーキテクチャも紹介されました。フロントエンドはCloud Run、エージェント間通信はA2A、エージェント開発はADK、モデルはVertex AIのGeminiを利用し、最近増加傾向にあるプロンプトインジェクション対策としてエージェント用のWAFのような「Model Armor」を配置する構成が示されました。

感想

最近よく耳にする「AIエージェント」という言葉ですが、これまでは聞いたことがある程度で、深くは理解できていませんでした。しかし、今回のセッションを通して、以前よりもAIエージェントへの理解を深めることができました。セッション聴講前は、AIエージェントの開発にはAIに関する専門知識が必要で難しいというイメージを持っていましたが、ADKを活用すれば数行のコードでも開発できると知り、ハードルが想像していたよりも高くないことに驚きました。大事なのは、AIエージェント開発だけに限りませんが、目的を達成するために適切なエージェントを選択し、適切なセキュリティ対策を施すことが重要だと感じました。今後、より実践的な生成AI活用を実現するためにもAI エージェントをはじめとする生成AI関連の情報はキャッチアップし、知識を身につけていきたいと思いました。

最後まで読んでいただき、ありがとうございました。