更新日: 2025年10月
以下は、ローカルプロトタイプを本番運用可能なAIアプリケーションに成長させるための実践的なラボとワークフローの要約です。ラボを通じて、MCPサーバーの構築、ADKを使ったマルチエージェント設計、GPU対応バックエンドのデプロイまでを学びます。🔧
A. 前提:あるラボで行う小さな設定変更により、Gemini CLI が新しくデプロイした MCP サーバーを安全に発見・通信できるようになります。これで例えば「Where can I find penguins?」と尋ねると、カスタムツールを使って賢く回答を導き出す様子を確認できます。さらに、基礎ができたらサーバーログでツール呼び出しを検証したり、Gemini CLI に「/find lions」のようなカスタムコマンドを追加して操作性を高めることも可能です(参考リンクあり)。💡
大きな感謝:Luke Schlangen と Jack Wotherspoon がこの素晴らしい MCP ラボを作成しました。
ラボ 2:Cloud Run 上の MCP サーバーを ADK Agent で利用する
このラボでは、クラウド上に安全に動作する MCP サーバーを用いて、Agent Development Kit (ADK) を使った「Zoo Tour Guide」エージェントを作ります。エージェントは動物園の内部データを取得するためにあなたの MCP サーバーと通信し、さらに Wikipedia を参照して一般知識を付加することで、ユーザにとって親しみやすい応答を生成します。
以下が実施フローの概要です:
-
環境準備 — 新しいフォルダを作成し、Python の仮想環境を初期化してから、Google Agent Development Kit (ADK) を含む必須ライブラリをインストールします。
.envファイルを構成して、先にデプロイした MCP サーバーの URL など機密情報やエンドポイントを安全に保存します。これによりマルチエージェント環境が確実に必要な設定にアクセスできます。🔐 -
エージェントのツール定義 — エージェントが有効に動作するためのツールを用意します。1つ目は内部データ取得用のカスタムツールで、MCP サーバーに接続して動物の年齢や所在などを取得します。2つ目は外部ツールとしての Wikipedia で、例えば「この種は野生で何を食べるか」などの一般知識を引けるようにします。
-
専門化エージェントの作成(マルチエージェント) — ツールを備えたら、複雑なプロンプトに対応するために専門化したエージェント群を構築します。
- Researcher Agent: ユーザの質問を解析し、どのツール(Zoo サーバー、Wikipedia、または両方)を使うべきかを判断します。
- Response Formatter Agent: Researcher が収集した生データを受け取り、ユーザ向けに読みやすく整形します。
-
ワークフローの組み立て — SequentialAgent を使ってワークフローをオーケストレーションし、Researcher が先に情報を集め、Formatter がそれを整えて応答を生成する流れを保証します。会話開始時に root_agent がユーザに挨拶し、全体のプロセスを起動する役割を持ちます。
-
クラウドへのデプロイ — 完成したエージェントを、
adk deploy cloud_runコマンドでパッケージ化し、Cloud Run 上のスケーラブルなサーバーレスサービスとして公開します。このコマンド一つでアプリを公開 URL から利用可能にできます。 -
エージェントの動作確認 — デプロイ後に提供される公開 URL にアクセスし、チャットインターフェースで「ライオンについて教えて」などの複合的な質問を投げます。エージェントは MCP サーバーの具体情報と Wikipedia の一般知識を組み合わせて総合的な回答を返します。
大きな感謝:Smitha Kolan がこの素晴らしいエージェントラボを作成しました。
ラボ 3:プロトタイプから本番へ — GPU 付き Cloud Run へ ADK エージェントをデプロイする
このラボでは、Gemma モデルを GPU アクセラレーションで Cloud Run にデプロイし、それに軽量な ADK エージェントを接続することで、本番運用に耐えるスケーラブルなアーキテクチャを構築します。二つの独立したサービスに分けることで、処理性能とコスト効率の両立が可能になります(特に独自データでファインチューニングしたモデルをホスティングする場合に有効です)。参考: Gemma model
実施フローの概要:
-
プロジェクト準備 — Cloud Run、Artifact Registry、Cloud Build、AI Platform など必要な Google Cloud API を有効化し、デフォルトリージョンを設定してスターターコードをクローンします。スターターコードは Gemma バックエンドと ADK エージェントの両方の基本構成を提供します。
-
Gemma バックエンドのデプロイ — GPU(例: NVIDIA L4)、32GB メモリ、8 CPU など高性能構成で Gemma モデルを稼働させるための Dockerfile を用意し、Cloud Run にデプロイします。GPU 集約型の推論を担う分離されたサービスとして機能します。
-
ADK エージェントの実装 — Gemma バックエンドと通信する軽量エージェントを Python で実装します。モデルへの接続は LiteLLM を介して行い、応答処理を担当するこのエージェントを高速化するために uv パッケージマネージャと Python 3.13 のスリムなベースイメージを使ってコンテナ化します。
-
ADK エージェントのデプロイ — 軽量エージェントを別の Cloud Run サービスとしてデプロイします。こちらは 4GB メモリ、2 CPU のように小さいフットプリントで構成され、主な役割はリクエスト受付と GPU バックエンドとの通信です。Gemma バックエンドの URL は環境変数経由で安全に渡します。
-
統合テスト — 両サービスが稼働したら機能検証を行います。まずローカルプロキシで ADK の Web インターフェースにアクセスし、「レッサーパンダは野生で何を食べるか?」のような会話を送信して、二つのサービスが正しく連携しているかを確認します。
-
オートスケーリングの観察 — Locust を使った負荷試験を実行し、トラフィック増加時に GPU 集約型の Gemma バックエンドがスケールアップする一方で、軽量な ADK エージェントは最小インスタンスのまま維持される様子を確認します(効率的な独立スケーリングの実証)。Locust
大きな感謝:Amit Maraj がこの GPU 対応ラボを作成しました。
ラボのまとめ(早見表)
| ラボ | 目的 | キーコンポーネント | 期待される成果 |
|---|---|---|---|
| Lab 2 | MCP と ADK を使ったマルチエージェント | MCP server, ADK, Wikipedia | 内部データと外部知識を統合するエージェントの構築 |
| Lab 3 | GPU を活用した本番環境の構築 | Gemma (GPU), ADK agent, Cloud Run | スケーラブルでコスト効率の良い二層アーキテクチャ |
エージェントをより深く学ぶ 🎙️
プロダクション対応の AI エージェントに関する深堀りが必要なら、The Agent Factory シリーズが参考になります。バズを超えて、実際に重要なポイントを開発者視点で議論しています。既に公開されているエピソード(一部):
- Episode 1: Agents, Their Frameworks, and When to Use Them
- Episode 2: Multi-Agent Systems: Concepts and Patterns
- Episode 3: Building Custom Tools for Your AI Agent
- Episode 4: Remember me: Memory in Agents
- Episode 5: Tackling the Hardest Questions in Agent Development with Philipp Schmid
Cloud Run をもっと学ぶ
Cloud Run のゼロから本番までのガイドや基礎的な Codelabs も併せて参照すると良いでしょう:
- How to deploy a FastAPI chatbot app to Cloud Run using Gemini
- How to upload and serve images using Cloud Storage, Firestore and Cloud Run
- Using revisions in Cloud Run for Traffic Splitting, Gradual Rollouts, and Rollbacks
補足:運用上の注意点とベストプラクティス ⚠️
以下はラボには書かれていないが実運用で重要になるポイントです(簡潔に):
- 認証と認可:MCP や Gemma バックエンドには、サービス間認証(Workload Identity、サービスアカウント)を必ず導入する。公開 URL を安易に公開せず、必要に応じて VPC Service Controls や IAP を検討する。🔐
- コスト管理:GPU インスタンスは高コストのため、オートスケール設定、プリエンプティブル GPU、サービスタイプ分離(推論 & 管理)でコスト効率化を図る。📉
- レイテンシとコールドスタート:Cloud Run のコールドスタートが問題になる場合は、最小インスタンス数の設定やプロービングで緩和する。GPU バックエンドはバッチ処理でのまとめ推論も検討する。
- モニタリングとログ:Cloud Monitoring/Observability を導入して、スループット、レイテンシ、エラー率、GPU 利用率を監視する。ツール呼び出し(特に外部ツール)をトレース可能にしておくとデバッグが容易になる。📝
- セキュリティとデータ保護:機密データをモデルに与える前にデータ最小化を実施し、ログに機密情報が残らないように注意する。必要なら PII 検出とマスキングを導入する。
- テスト戦略:ローカルでのユニット・統合テストに加え、ステージングでの E2E テスト、負荷試験(Locust など)を定期的に実施する。
短いチェックリストを付けると運用時の抜け漏れが減ります。
最後に
これらのラボを完了することで、単なるプロトタイプからスケーラブルで本番運用可能な AI アプリケーションへと移行するための主要な要素を身につけられます。MCP サーバーの構築、ADK によるマルチエージェントの設計、GPU 対応 Cloud Run へのデプロイといった実務的スキルは、"AIビルダー" としての基盤になります。さて、あなたは次に何を作りますか? 🚀
(補足)もし特定のラボや構成について詳細な手順やサンプルコードが必要であれば、どの環境(リージョン、予算、想定トラフィックなど)で進めたいか教えてください。必要に応じてチェックリストやデプロイテンプレートを提供します。