【新入社員がGoogle Cloudを触ってみた】Gemini Enterprise Agent PlatformにADKを使ってAgentをデプロイしてみる。

こんにちは。SCSKの佐子です。

Google Cloudの勉強を始めて2週間が経ちました。

まだまだ理解が追いつかない部分ばかりですが、少しずつ知識を積み重ねながら成長していきたいと思っています。

今回は、これまでの学習内容のアウトプットとしてADK(Agent Development Kit)を活用し、
Google Cloudの最新情報を調査・要約するAIエージェントを構築し、Agent Runtimeへデプロイするまでの手順をまとめました。

概要・構成

概要

本記事では、Google Cloudの公式ドキュメントや最新情報を検索し、要約してくれるAIエージェントを作成します。
Web上の最新情報を取得するために、ADKの組込みツールであるgoogle_search(Google Grounding)を使用します。

処理の流れ

作成するエージェントは、次の流れで情報を処理します。

  1. 質問の受け取り:ユーザーからGoogle Cloudの機能や更新情報に関する質問を受け取る。
  2. Web検索:google_search ツールを実行し、公式ドメインを中心に最新情報を検索。
  3. 要約・回答:検索結果を解析し、指定フォーマット(公開日、リリース段階、初学者向け解説など)に沿って回答を生成。

使用サービス

Gemini Enterprise Agent Platform:AIエージェントの構築・運用・評価を総合的に提供するプラットフォーム。

Agent Platform の概要  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation
エンタープライズ グレードの AI エージェントの構築、デプロイ、管理、最適化のための統合プラットフォームである Agent Platform について説明します。

ADK (Agent Development Kit):プログラム(Pythonなど)ベースでエージェントのロジックやツールを定義する開発フレームワーク。

Agent Development Kit (ADK)
Build powerful multi-agent systems with Agent Development Kit (ADK)

Agent Runtime:ADKで作成したエージェントをそのまま稼働させることができるフルマネージドな実行環境。

エージェント ランタイム  |  Gemini Enterprise Agent Platform  |  Google Cloud Documentation
Agent Runtime は、開発者が本番環境で AI エージェントをデプロイ、管理、スケーリングできるようにする一連のサービスです。

構築手順

開発環境の準備

今回は開発環境として Google Cloud Shell を使用します。

まず、作業用ディレクトリを作成し、Pythonの仮想環境(venv)をセットアップして有効化します。

mkdir -p ~/google-cloud-latest-info-agent
cd ~/google-cloud-latest-info-agent
python3 -m venv .venv
source .venv/bin/activate

次に、エージェント開発とデプロイに必要なライブラリをインストールします。

pip install google-adk google-cloud-aiplatform

ライブラリの準備ができたら、ADKのCLIコマンドを用いてプロジェクトを作成します。

adk create my_agent

 

エージェントの実装

作成されたプロジェクト内のagent.pyを書き換えて、独自のエージェントを定義します。
ハルシネーションの防止、出力のフォーマットを統一するためのプロンプトを組み込みました。

agent.py

from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search

root_agent = Agent(
model="gemini-3.5-flash",
name="google_cloud_info_agent",
description="Google Cloudの最新情報を調査し、要約して説明するためのエージェントです。",
instruction="""# 役割
あなたはGoogle Cloudの公式最新情報を調査・要約する専門アシスタントです。
ユーザーからの質問に対し、必ず `google_search` ツールを使用して最新の公開情報を確認した上で回答してください。

# 1. 検索・参照ルール (優先順位)
- 以下の公式ドメイン・ソースの情報を最優先で使用してください:
1. `cloud.google.com` (Google Cloud Documentation, Google Cloud Blog, Release Notes)
- 非公式ソース(個人のブログ等)の情報を使用する場合は、必ず「※非公式情報」と明記してください。

# 2. 会話コンテキストの解釈
- 同一セッション内の過去の対話履歴を考慮して回答してください。
- 「その機能」「先ほどの情報」などの指示語は過去の会話から正確に特定してください。
- 文脈から対象を特定できない場合は無理に推測せず、確認の質問を返してください。

# 3. 評価・出力の厳格性
- **日付の扱い**: 情報の「公開日」と「更新日」を区別して取得してください。確認できない場合は「日付確認不可」と明記してください。
- **リリース段階**: GA、Preview、Deprecated などのステータスはソースに明記されている場合のみ記載し、不明な場合は「確認不可」としてください。Preview版をGAとして扱わないでください。
- **ファクトベース**: 原文にない事実の推測やハルシネーションを禁止します。重複する情報はまとめ、宣伝的表現は客観的な事実に書き換えてください。
- **トーン&マナー**: クラウド初学者にも分かりやすい丁寧な日本語を使用してください。

# 4. 出力フォーマット
- **参照元**: [情報源の完全なページURL(例: https://cloud.google.com/vertex-ai/docs/... などの個別ページURL。ドメインのみの記述は禁止)]

# 5. 禁止事項
- 参照元URLに `https://cloud.google.com` や `https://blog.google` のようなドメイン単位の抽象的なURLを出力しないでください。必ず該当ニュースやドキュメントの「完全なページURL」を記載してください。特定できない場合は「URL特定不可」と記載してください。

### [番号]. [タイトル]
- **公開日**: [YYYY-MM-DD または 日付確認不可]
- **更新日**: [YYYY-MM-DD または 日付確認不可]
- **対象サービス**: [サービス名]
- **リリース段階**: [GA / Preview / Deprecated / 確認不可]
- **要約**: [客観的かつ分かりやすい概要]
- **初学者向けポイント**: [噛み砕いた解説やメリット]
- **参照元**: [URL]

※日付やリリース段階で確認できなかった項目がある場合は、回答の最後に「【確認上の注意】」セクションを設けて理由や注意点を明記してください。""",
tools=[google_search],
)

動作確認とつまずいたポイント

【つまずきポイント1】モデル呼び出し時の404エラー(リージョン問題)

CLI上でエージェントが試すため、以下のコマンドを実行しました。

adk run my_agent

しかし、以下のような 404 NOT_FOUNT エラーが発生しました。

google.genai.errors.ClientError: 404 NOT_FOUND. {'error': {'code': 404, 'message': 'Publisher model `projects/scsksdv-dev-jisu1/locations/us-central1/publishers/google/models/gemini-3.5-flash` was not found or your project does not have access to it. Ensure you are using a valid model name and that the model is available in the specified region. For more information, see: https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations.', 'status': 'NOT_FOUND'}}

原因と対処

ADK が us-central1 リージョンの Vertex AI を呼び出そうとした際、対象プロジェクト・リージョンでモデルが利用できない状態でした。
プロジェクト直下の .env ファイルで環境変数を書き換え、モデルが提供されている東京リージョン(asia-northeast1)に変更することで解消しました。

【つまずきポイント2】Cloud Shell上でのWeb UI接続エラー (CORS制限)

ローカルWeb UIで動作を確認するために adk web を起動します。

adk web --port 8000

するとエラーが発生しました。

サーバー自体は 127.0.0.1:8000 で正常に起動しています。

ブラウザからアクセスした際、HTML自体(/dev-ui/)は読み込めていますが、Web画面の表示に必要なJSファイル(chunk-….js や main-….js)へのアクセスがすべて拒否(403 Forbidden)されています。

その結果、画面が真っ黒になったり、操作ボタンやUIが正常に表示されない状態になっています。

Google Cloud Shellの「Webでプレビュー」機能を使うと、リクエストが .cloudshellドメイン経由に変換されます。
ADKサーバー側がこのドメインからのファイル読み込みを拒否しているケースです。

オリジン制限の解除を付与して起動することで解決できます。

adk web --port 8000 --allow_origins="*"

 

Agent Runtimeへのデプロイ

動作確認後できたので、エージェントをフルマネージド環境である Agent Runtime へデプロイします。

adk deploy agent_engine my_agent

コマンド実行後、ビルドとプロビジョニングが進行し、Agent Runtime へのデプロイが完了しました!
これでエージェントを運用できるようになります。

AgentRuntimeのプレイグラウンドで動かすことができました。

まとめ

Google Cloudの学習を始めたばかりでしたが、ADKを利用することでコード量を最小限に抑えつつ、
Google Searchツールを組み込んだAIエージェントを作成・デプロイできました。

途中で発生したリージョンのエラーやCloudShellのCORSエラーなどのトラブルシューティングを通して、環境設定やネットワークの動きについても学ぶことができました。

今後は、マルチエージェントの作成や別ツールとの連携にも挑戦してみたいと思います!

著者について
佐子柊人をフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(Google Cloud)は、Google Cloudの多彩なAIや各種サービスを活用したワンストップソリューションを提供します。SCSKのノウハウや体制を有効活用し、業務課題の解決に必要な全体検討と組み合わせで、最適な業務実装まで支援します。

Google Cloudクラウド
シェアする
×
タイトルとURLをコピーしました