1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Agent Development Kit (ADK) でCloud Runにデプロイする

Posted at

Googleが先日、Agent Development Kit(ADK)を公開しました。

これを使うとLLMを用いたAIエージェントを簡単に開発できます。OpenAI Agents SDKなどの類似の製品との違いは、WebのUIがデフォルトで付いていたり、Google Cloudとの親和性にあるようです。

本稿ではADKを使って開発したエージェントをCloud Runにデプロイしてみました。そもそもCloud Runもシンプルな製品ですが、ADKからデプロイするのはかなり簡単になっています。

環境

  • uv 0.6.6
  • Python 3.13.2
  • google-adk>=0.1.0

ディレクトリ構成(抜粋)

├── mise.toml
├── pyproject.toml
├── src
│   └── google_adk
│        ├── __init__.py
│        └── agent.py
└── uv.lock

AIエージェントの構築

本稿では、Geminiに現在時刻を取得する関数をツールを与えて、「いま何時?」と質問したら答えてくれるような簡単なエージェントを構築します。だいたいAgent Development Kit公式ドキュメントのクイックスタートに書いてあるとおりです。

まず、$ uv add google-adkみたいな感じでADKをインストールします。

最初にsrc/google_adk/__init__.pyを作成します。

src/google_adk/__init__.py
from . import agent

次に、src/google_adk/agent.pyを作成します。読めば分かると思いますが、これがLLMを呼び出すエージェントの本体と、ツールのプログラムの本体です。簡単ですね。

src/google_adk/agent.py
from datetime import datetime
from google import adk

def get_time() -> dict:
    """現在時刻を取得する関数"""
    return {"status": "success", "report": datetime.now().strftime("%Y-%m-%d %H:%M:%S")}

root_agent = adk.Agent(
    name="アシスタント",
    model="gemini-2.0-flash-exp",
    description=(
        "優秀なアシスタント"
    ),
    instruction=(
        "あなたは優秀なアシスタントです"
    ),
    tools=[get_time],
)

実行します。

$ uv run adk web ./src

ADKにはWeb画面が付いています。 http://localhost:8000/ にアクセスし、エージェントを選択します。

image.png

「いま何時?」と聞いてみます。

image.png

無事に答えてくれました。

ADKで開発したエージェントのCloud Runへのデプロイ

ADKで作ったエージェントは、そのままGoogle CloudのサーバレスサービスであるCloud Runにデプロイできます。$ adk deploy cloud_runというコマンドが用意されていて、これを実行すると裏側でDockerfileの作成やビルド済コンテナのArtifact Registryへの登録などが自動で良い感じに行われて、Web上にデプロイされます。

Cloud Run - Agent Development Kit

$ uv run adk deploy cloud_run \
  --project=<GoogleCloudプロジェクト名> \
  --region=us-central1 \
  --service_name=<CloudRunサービス名> \
  --with_ui \
  ./src/google_adk

注意点として、指定したモデルが利用できるリージョンにデプロイしないといけないようです。gemini-2.0-flash-001は日本含むアジアリージョンでまだ使えないので注意が必要です。本稿ではus-central1にしています。詳細は下記で確認できます。

Vertex AI の生成 AI のロケーション  |  Generative AI on Vertex AI  |  Google Cloud

これだけでWeb上に公開してアクセスできるようになりました。Cloud Runは放っておくと勝手にゼロスケールしてインスタンス料金が掛からなくなるので、簡単なPoCなどに便利だと思います。

余談: Cloud Run用Identity-Aware Proxyでアクセス制限

Cloud Runにアクセス制限を掛ける方法はいくつかありますが、Google Cloudのプロジェクトが組織に所属していれば、先日プレビューになったCloud Run用Identity-Aware Proxyでアクセス制限ができます。

Cloud Run 用に Identity-Aware Proxy を構成する  |  Cloud Run Documentation  |  Google Cloud

デプロイしたCloud Runサービスの「セキュリティ」タブから「Identity-Aware Proxy」を有効にするだけです。

image.png

※Google Cloudプロジェクトが組織に所属していないと、このIdentity-Aware Proxyの項目が表示されません。また表示されていても、どうやら組織に所属してから使えるようになるまで1日程度の時間がかかるようです。

うまく行くと、アクセスした時にログイン画面が表示されるようになります。

image.png

簡単にアクセス制限が設定できるので、組織内でのPoCなどにも使えるのではないかと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?