👏

ADK でエージェントを開発して Gemini Enterprise で利用してみよう with Agent Starter Pack

に公開

ADK によるカスタムエージェントを Gemini Enterprise で利用可能になりました!

Gemini Enterprise は、AI エージェントを動作させる統合プラットフォームとして、Google Cloud から 2025年10月9日に登場しました。Gemini Enterprise では、Google が用意した Deep Research 等のエージェントに加え、ユーザーの業務に合わせた独自のカスタムエージェントも登録して利用できるようになりました。

カスタムエージェントを開発するには、Gemini Enterprise 上でノーコード開発できる Agent Designer を利用する方法もありますが、外部のシステムや API と連携する柔軟なエージェント開発は、Agent Development Kit (以下、ADK)等エージェント開発フレームワークを使って開発する方が適しています。

今回は ADK によるシンプルなカスタムエージェントを作って、Gemini Enterprise とさくっと連携させてみたいと思いますが、よりかんたんに実現するために Agent Starter Pack を利用してみます。

Agent Starter Pack とは

Agent Starter Pack(長いので略して ASP) は、Google Cloud上で AI エージェント向けのプロダクション環境対応テンプレートを提供する Python パッケージ(Apache 2.0 ライセンス)です。
開発者がエージェントのロジック開発に集中できるよう、インフラストラクチャ、CI/CD、オブザーバビリティ、セキュリティといった開発以外のすべてを提供してくれます。
最新の Python パッケージ管理ツールである uv による Python の開発環境も自動で整備してくれるのも、地味に便利です。

主な機能は以下の通りです。

  • ⚡️ 起動: すぐに使えるエージェントテンプレート(ReAct、RAG、マルチエージェント、Live API 等)が用意されています。
  • 🧪 実験: Vertex AIによる評価や、インタラクティブなプレイグラウンド機能があります。
  • ✅ デプロイ: Cloud Run または Agent Engine でのモニタリング、オブザーバビリティ、CI/CDを含む本番環境対応のインフラが提供されます。
  • 🛠️ カスタマイズ: テンプレートをニーズに応じて拡張・カスタマイズできます。

ASP を使うことで、インフラをプロビジョニングするための Terraform ファイルや、CI/CD のための Cloud Build 構成、評価データセットのスケルトンファイル等、必要なオペレーションコンポーネントが生成されます。

加えてエージェントフレームワークとして ADK を選択すると、ADK に適した GEMINI.md も自動で準備されます。
GEMINI.md は Gemini CLI に欠かせないコンテキストファイルで、用途に合わせた準備が推奨されています。つまり ASP を利用して環境の準備をすると、自動的に Gemini CLI を使った ADK のバイブコーディング環境も整備されることになります。嬉しいですね。

追加で知っておくべきこと

ADK によるカスタムエージェントを実行するために、今回は Vertex AI Agent Engine(以下 Agent Engine)を利用します。
実行基盤としては Cloud Run のような汎用的なプラットフォームももちろん利用できるのですが、以下の点で Agent Engine を使うメリットがあります。

  • AI エージェント管理のマネージドプラットフォームであり、ADK、LangChain 等で実装したコードをデプロイ可能
  • セッション管理、長期記憶(Memory Bank)等 AI エージェントに必要な機能が標準装備
  • ログはもちろん、Trace 等も自動で取得

そして重要なポイントとして Gemini Enterprise と連携するためには、Cloud Run 等はサポートされておらず、Agent Engine で実行する必要があります。

さっそくトライ

それでは ASP と ADK を利用して、早速開発、Gemini Enterprise に登録してみます。今回はもっともシンプルな使い方の一例をご紹介します。

ざっくり以下のステップになります。

  1. 環境設定(python、venv 等)
  2. ADK でエージェントを開発(ローカル開発、テスト)
  3. Agent Engine にエージェントをデプロイ
  4. Gemini Enterprise にエージェントを登録

今回、利用するライブラリのバージョンは以下の通りです。

  • google-adk 1.19.0
  • agent-starter-pack 0.26.2
  • google-cloud-aiplatform 1.129.0

環境設定

1. Vertex AI の API を有効化

Vertex AI Agent Engine へのデプロイ等で、Vertex AI の API の有効化が求められます。
事前に有効化できているかを確認しておきましょう。

2. uv のインストール

uvコマンドをインストールしましょう。一緒にインストールされる uvx コマンドも利用します。
Linux や Mac の場合はこちら。

curl -LsSf https://astral.sh/uv/install.sh | sh

必要に応じて、Gemini CLI もインストールしましょう。

3. Google Cloud のクレデンシャルを取得します

以下のコマンドを実行します。

gcloud auth application-default login

関連付けるユーザーは必要な権限のみを持っているのがセキュアな設計の基本ですが、今回はデモなので Editor 等強い権限を持っていることを前提としています。

ADK でエージェントを開発

シンプルなマルチエージェントのお題として、俳句エキスパートエージェントを作ってみます。
(マルチエージェントのデモのため、わざとエージェントを分けて作成しています。)

  • 俳句の作成エージェント(root)
    与えられたお題で、俳句を作ります。
    自分の仕事でなければ、他のエージェントへ委任
  • 俳句の評価エージェント
    俳句の辛口批評をして、コメントと項目ごとに得点をつけます。
  • 俳句の登録エージェント
    俳句と批評を受け取って、データベース(Firestore)に登録します。

固定のワークフローではなく、お題を渡すと、俳句の作成 -> 俳句の評価 -> 俳句の登録
自分で作った俳句を渡すと、root を経由して 俳句の評価 -> 俳句の登録 というように動作します。

カスタムエージェント用のプロジェクトの作成

以下のコマンドで、カスタムエージェント用のプロジェクト* haiku-expert-agent をテンプレートから準備します。
(*ここでいうプロジェクトは、Google Cloud プロジェクトとは異なりますので、ご注意を。)

uvx agent-starter-pack create haiku-expert-agent

なお、この方法では常に最新の Agent Starter Pack が利用されるため、バージョンによって動作が変わる場合があります。

実行の様子(対話型、すべてデフォルトを選択)
=== Google Cloud Agent Starter Pack 🚀===
Welcome to the Agent Starter Pack!
This tool will help you create an end-to-end production-ready AI agent in Google Cloud!


> Please select a agent to get started:
1. adk_base - A base ReAct agent built with Google's Agent Development Kit (ADK)
2. adk_a2a_base - A base ReAct agent built with Google's Agent Development Kit (ADK) and Agent2Agent (A2A) Protocol. #experimental
3. adk_live - Real-time multimodal agent with ADK and Gemini Live API for low-latency voice and video interaction.
4. agentic_rag - ADK RAG agent for document retrieval and Q&A. Includes a data pipeline for ingesting and indexing documents into Vertex AI Search or Vector Search.
5. langgraph_base - A base ReAct agent implemented using LangGraph with Agent2Agent (A2A) Protocol support
6. Browse agents from google/adk-samples - Discover additional samples

Enter the number of your template choice (1):

> Please select a deployment target:
1. Vertex AI Agent Engine - Vertex AI Managed platform for scalable agent deployments
2. Cloud Run - GCP Serverless container execution

Enter the number of your deployment target choice (1):

> Please select a CI/CD runner:
1. Google Cloud Build - Fully managed CI/CD, deeply integrated with GCP for fast, consistent builds and deployments.
2. GitHub Actions - GitHub Actions: CI/CD with secure workload identity federation directly in GitHub.
3. Skip - Minimal - no CI/CD or Terraform, add later with 'enhance'

Enter the number of your CI/CD runner choice (1):

Enter desired GCP region (Gemini uses global endpoint by default) (us-central1):
> Verifying GCP credentials...


> You are logged in with account: 'admin@kawanos.altostrat.com'
> You are using project: 'shingo-ar-gemini-e20251009'
> Do you want to continue? (The CLI will check if Vertex AI is enabled in this project) [Y/skip/edit] (Y): > Testing Vertex AI connection...

> ✓ Connected to project: shingo-ar-gemini-e20251009

> Success! Your agent project is ready.

📖 Project README: cat haiku-expert-agent/README.md
   Online Development Guide: https://goo.gle/asp-dev

🚀 To get started, run the following command:
   cd haiku-expert-agent && make install && make playground

指示に従い、コマンドを実行して必要なパッケージ等をインストールします。

make install
実行の様子
uv sync
Using CPython 3.12.12
Creating virtual environment at: .venv
Resolved 246 packages in 5ms
      Built haiku-expert-agent @ file:///Users/kawanos/repos/asp-sample/haiku-expert-agent
Prepared 10 packages in 578ms
Installed 155 packages in 741ms
 + aiohappyeyeballs==2.6.1
 + aiohttp==3.13.2
 + aiosignal==1.4.0
 + aiosqlite==0.21.0
 + alembic==1.17.2
    :
    :(省略)
    :
 + uvicorn==0.38.0
 + watchdog==6.0.0
 + websockets==15.0.1
 + wrapt==1.17.3
 + yarl==1.22.0
 + zipp==3.23.0

開発の準備は完了です!

ADK でエージェントを開発(ローカル開発、テスト)

どうやって開発するかは自由ですが、せっかく GEMINI.md が用意されているので、Gemini CLI を利用してみましょう。

1. Gemini CLI を起動して開発


プロジェクトのディレクトリで gemini を起動し、適切にプロンプトを入力して、ADK エージェントの開発を進めてください。

2. ローカルテスト

ローカルの開発環境でテストを実行します。

make playground

adk web で実行される Web UI がローカルで起動します。

Trace や Event も確認できて、とても便利に開発できます。

Agent Engine にエージェントをデプロイ

AI エージェントの動作やテストが確認できたら、Google Cloud の Agent Engine に デプロイします。
これもコマンドひとつです。

make deploy

make backend はエイリアスになっているため、こちらも利用できます。

make deploy でデプロイされた Agent Engine の情報は、実行したディレクトリの deployment_metadata.json に書き込まれます。

出力結果

# Export dependencies to requirements file using uv export.
(uv export --no-hashes --no-header --no-dev --no-emit-project --no-annotate > app/app_utils/.requirements.txt 2>/dev/null || \
        uv export --no-hashes --no-header --no-dev --no-emit-project > app/app_utils/.requirements.txt) && \
        uv run -m app.app_utils.deploy \
                --source-packages=./app \
                --entrypoint-module=app.agent_engine_app \
                --entrypoint-object=agent_engine \
                --requirements-file=app/app_utils/.requirements.txt

    ╔═══════════════════════════════════════════════════════════╗
    ║                                                           ║
    ║   🤖 DEPLOYING AGENT TO VERTEX AI AGENT ENGINE 🤖         ║
    ║                                                           ║
    ╚═══════════════════════════════════════════════════════════╝


📋 Deployment Parameters:
  Project: shingo-ar-gemini-e20251009
  Location: us-central1
  Display Name: haiku-expert-agent
  Min Instances: 1
  Max Instances: 10
  CPU: 4
  Memory: 8Gi
  Container Concurrency: 9

🌍 Environment Variables:
  GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY: true
  GOOGLE_CLOUD_REGION: us-central1
  NUM_WORKERS: 1
  OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: true
INFO:root:Importing app.agent_engine_app.agent_engine

🚀 Creating new agent: haiku-expert-agent
🚀 Deploying to Vertex AI Agent Engine (this can take 3-5 minutes)...
INFO:vertexai_genai.agentengines:Creating in-memory tarfile of source_packages
INFO:vertexai_genai.agentengines:Using agent framework: google-adk
INFO:vertexai_genai.agentengines:View progress and logs at https://console.cloud.google.com/logs/query?project=shingo-ar-gemini-e20251009.
INFO:vertexai_genai.agentengines:Agent Engine created. To use it in another session:
INFO:vertexai_genai.agentengines:agent_engine=client.agent_engines.get(name='projects/1059905625473/locations/us-central1/reasoningEngines/6429974785559625728')
INFO:root:Agent Engine ID written to deployment_metadata.json

✅ Deployment successful!
Service Account: service-1059905625473@gcp-sa-aiplatform-re.iam.gserviceaccount.com

📊 Open Console Playground: https://console.cloud.google.com/vertex-ai/agents/locations/us-central1/agent-engines/6429974785559625728/playground?project=shingo-ar-gemini-e20251009

Firestore への書き込みのため、サービスアカウント AI Platform Reasoning Engine Service Agent に権限を付与します。

実行例
gcloud projects add-iam-policy-binding $GOOGLE_CLOUD_PROJECT --member=serviceAccount:service-1059905625473@gcp-sa-aiplatform-re.iam.gserviceaccount.com --role=roles/datastore.user

デプロイ時にコンソールに出力された Open Console Playground の URL にアクセスしてみましょう。

ここでも Google Cloud コンソール上から プレイグラウンド を利用して、Agent Engine にデプロイされた カスタムエージェントと対話しながらテストすることが可能です。ローカルでは問題がないのに Agent Engine では実行環境の違いによるエラーが出ることもありますので、十分に確認することをお奨めします。

Gemini Enterprise にエージェントを登録

いよいよ Gemini Enterprise にエージェントを登録します。
ここもこれまで通りコマンドひとつで実行します。

make register-gemini-enterprise

Gemini Enterprise のインスタンス ID や Agent Engine ID 等の指定は環境変数から実施できますが、指定しなくても deployment_metadata.json 等の値を自動で利用して対話型で進めてくれるので、確認しつつデプロイをすることができます。

実行例

🤖 Agent → Gemini Enterprise Registration

→ ADK registration mode

Found Agent Engine ID from deployment_metadata.json:
  projects/1059905625473/locations/us-central1/reasoningEngines/6429974785559625728
Use this Agent Engine ID? [Y/n]:

======================================================================
GEMINI ENTERPRISE CONFIGURATION
======================================================================

✓ Current project: shingo-ar-gemini-e20251009
  (from your authentication defaults)

Use this project for Gemini Enterprise? [Y/n]:
Looking up project number for 'shingo-ar-gemini-e20251009'...
✓ Project number: 1059905625473

Searching for Gemini Enterprise apps in shingo-ar-gemini-e20251009...

✓ Found 3 Gemini Enterprise app(s):

  [1] gemini-enterprise-176007xxxxxxx (global)
      ID: gemini-enterprise-176007xxxxxxx
  [2] gemini-enterprise-2 (global)
      ID: gemini-enterprise-2_1760415548496
  [3] gemini-enterprise-1761110xxxxxx (us)
      ID: gemini-enterprise-1761110xxxxxx

  [0] Enter a custom Gemini Enterprise ID

Select an app (0-3): 2

✓ Selected Gemini Enterprise App:
  projects/1059905625473/locations/global/collections/default_collection/engines/gemini-enterprise-2_1760415548496
Use this app? [Y/n]:

Registering agent to Gemini Enterprise...
  Agent Engine: projects/1059905625473/locations/us-central1/reasoningEngines/6429974785559625728
  Gemini Enterprise App: projects/1059905625473/locations/global/collections/default_collection/engines/gemini-enterprise-2_1760415548496
  Display Name: haiku-expert-agent

✅ Successfully registered agent to Gemini Enterprise!
   Agent Name:
   projects/1059905625473/locations/global/collections/default_collection/engines/gemini-enterprise-2_1760415548496/assistants/default_assistant/agents/14868799873062516095

🔗 View in Console:
   https://console.cloud.google.com/gemini-enterprise/locations/global/engines/gemini-enterprise-2_1760415548496/overview/dashboard?project=shingo-ar-gemini-e20251009

登録完了です。

動作確認テスト

では早速、俳句をつくってみましょう。

@付きでエージェントを呼び出します。

お題を書いて、実行します。

なかなか面白い俳句?ができました。動作しているようです。

Firestore にも保存されていることも確認できました。

まとめ

ASP を利用して、ADK によるカスタムエージェントの開発から、Gemini Enterprise への登録、実行までの流れをかんたんに実行してみました。
開発の部分を除くと実行したコマンドは数回程度ですので、シンプルに試せることがご理解いただけたかと思います。

これまで Gemini Enterprise 上での ADK によるカスタムエージェントの登録、連携はイメージがつかみづらいところもあったかと思いますが、これらの便利なツールを利用することで利用のハードルを下げることが可能です。
ぜひお試しください。

Google Cloud Japan

Discussion