Content

こんにちは!みっちーです!



前回の記事「Agent Development Kitでデータサイエンスエージェントを開発してみた!」では、ADK(Agent Development Kit)を使って、データ分析からBigQuery MLでのモデル構築までを自然言語で実行できる、強力なデータサイエンスエージェントを構築しました。



ローカル環境でエージェントが動くようになったのは素晴らしいことですが、実用化を目指すなら次のステップは「デプロイ」です。今回は、このデータサイエンスエージェントをGoogle CloudのAgent Engineにデプロイし、本番環境で利用可能にするまでの手順を、具体的なコマンドと共に詳細に解説します。



さらに、なぜAgent EngineがAIエージェントのデプロイ先として優れているのか、その利点についても深掘りしていきます。この記事を読めば、あなたの作ったエージェントを、単なるプロトタイプから、誰もが利用できるサービスへと進化させる道筋が見えるはずです!

Agent Engineとは?

Agent Engineは、Google Cloud Vertex AIの機能の一つで、AIエージェントを本番環境で実行、管理、スケーリングするために設計されたサーバーレスプラットフォームです。

開発者は、ADKで作成したエージェントのロジック(Pythonコード)をコンテナ化などを意識することなく、簡単なコマンドでデプロイできます。デプロイ後は、スケーラブルで信頼性の高いインフラ上でエージェントが実行され、APIエンドポイントを通じて様々なアプリケーションから利用できるようになります。

データサイエンスエージェントのデプロイ手順

それでは、実際にデータサイエンスエージェントをAgent Engineにデプロイしていきましょう。手順はADKのサンプルリポジトリにある README.mdとデプロイスクリプト deployment/deploy.py に基づいています。

1. 前提条件

    • 前回の記事を参考に、ローカルでエージェントが動作する環境が構築済みであること。

    • gcloud CLIがインストールされ、認証済みであること。

2. サービスアカウントへの権限付与

Agent EngineがBigQueryやVertex AIの他のサービスと連携するために、専用のサービスアカウントに必要なIAMロールを付与します。

最初に、Agent Engineが利用するサービスIDを作成します。これが有効になっていない場合、後続の権限付与でサービスアカウントが見つからずエラーになることがあります。

gcloud beta services identity create --service=aiplatform.googleapis.com --project=YOUR_GCP_PROJECT_ID

次に、環境変数にGCPのプロジェクトIDとプロジェクト番号を設定します。(ご自身の環境に合わせてYOUR_GCP_PROJECT_IDを置き換えてください)

export GOOGLE_CLOUD_PROJECT="YOUR_GCP_PROJECT_ID"
export GOOGLE_CLOUD_PROJECT_NUMBER=$(gcloud projects describe $GOOGLE_CLOUD_PROJECT --format="value(projectNumber)")

次に、以下のコマンドを実行して、Agent Engineのサービスエージェントに必要な権限を付与します。

export RE_SA="service-${GOOGLE_CLOUD_PROJECT_NUMBER}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${RE_SA}" \
--role="roles/bigquery.user"

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${RE_SA}" \
--role="roles/bigquery.dataViewer"

gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \
--member="serviceAccount:${RE_SA}" \
--role="roles/aiplatform.user"

3. エージェントのパッケージング

次に、エージェントのコードをデプロイ用にパッケージ化します。poetry を使って、ホイール(.whl)ファイルを作成します。

adk-samples/python/agents/data-science ディレクトリに移動して、以下のコマンドを実行してください。

poetry build --format=wheel --output=deployment

これにより、deployment ディレクトリ内に data_science-0.1-py3-none-any.whl というファイルが作成されます。これがエージェント本体のパッケージです。

4. デプロイスクリプトの実行

いよいよデプロイです。ADKにはデプロイを自動化するPythonスクリプトが用意されています。

deployment ディレクトリに移動し、deploy.py–create フラグ付きで実行します。

cd deployment/
poetry run python deploy.py --create

このスクリプトは、以下の処理を自動的に行います。

    1. GCSバケットの作成: デプロイに必要なファイルをステージングするためのCloud Storageバケット(例: YOUR_GCP_PROJECT_ID-adk-staging)を自動で作成します。

    1. エージェントのデプロイ: パッケージ化したホイールファイルと依存関係をAgent Engineにアップロードし、エージェントを起動します。

実行が成功すると、以下のようなリソース名が出力されます。この中のリソースIDは後で使うので控えておきましょう。

Successfully created agent: projects/YOUR_GCP_PROJECT_ID/locations/us-central1/reasoningEngines/<リソースID>

たったこれだけです!これで、あなたのデータサイエンスエージェントはクラウド上で動作するようになりました。

5. デプロイしたエージェントの動作確認

本当にエージェントが動いているか、テスト用のスクリプトを使って確認してみましょう。先ほど控えたリソースIDを環境変数に設定し、test_deployment.pyを実行します。(ご自身の環境に合わせてYOUR_GCP_PROJECT_IDを置き換えてください)

export RESOURCE_ID="<リソースID>"
export USER_ID="test-user-01"
export GOOGLE_CLOUD_STORAGE_BUCKET="YOUR_GCP_PROJECT_ID-adk-staging"
poetry run python test_deployment.py --resource_id=$RESOURCE_ID --user_id=$USER_ID

すると、対話型のCLIが起動します。ローカルで実行したときと同じように、自然言語で質問を投げかけてみましょう。

上の画像のように、クラウド上のエージェントから応答が返ってくれば、デプロイは成功です!

Agent Engineを利用する3つの大きなメリット

さて、コマンド数個でデプロイが完了しましたが、Agent Engineを使うことの本当の価値はどこにあるのでしょうか?

    1. インフラ管理からの解放:
      deploy.py を実行しただけで、GCSバケットの作成からエージェントの起動までが完了したことにお気づきでしょうか。本来であれば、サーバーを立て、コンテナをビルドし、ネットワークを設定し…といった煩雑なインフラ作業が必要です。Agent Engineはこれら全てを抽象化し、開発者がエージェントのロジック開発という本質的な作業に集中できる環境を提供します。

    1. サーバーレスによるスケーラビリティとコスト効率:
      Agent Engineはサーバーレスアーキテクチャを採用しています。つまり、リクエストがないときにはコンピューティングリソースを消費せず、トラフィックの増大に応じて自動的にスケールアウトします。これにより、インフラコストを最適化しつつ、多くのユーザーからの同時アクセスにも耐えうるスケーラブルなサービスを容易に実現できます。

    1. Vertex AIエコシステムとの強力な連携:
      デプロイしたエージェントは、単なるAPIエンドポイントではありません。Vertex AIの一部として、他の強力なサービスとシームレスに連携できます。例えば、LangChainやLlamaIndexといったOSSフレームワークとの統合、モニタリングやロギング機能による運用の効率化など、Google Cloudが提供する最先端のAIエコシステムの恩恵を最大限に受けることができます。

【応用編】外部アプリケーションと連携するには?

デプロイしたエージェントはAPIエンドポイントを持ちますが、これをWebアプリケーションやBIツールといった外部システムから直接呼び出す際には一つ注意点があります。

Agent EngineのAPIは、一般的なREST APIではなく、gRPCベースのストリーミングAPIです。

これは、対話の履歴を保持したり、思考プロセスをリアルタイムで返したりするための高度な仕組みですが、多くの外部アプリケーションが標準でサポートする単純なリクエスト/レスポンス型のAPIとは異なります。

そこで推奨されるのが、Cloud Runで中間API(アダプター)を立てる構成です。

この構成では、Cloud Runが「アダプター」の役割を果たします。

    1. 外部アプリケーション(Webアプリ、BIツール等)は、使い慣れた単純なHTTPSリクエストをCloud Runに送信します。

    1. Cloud Runは、そのリクエストを受け取り、Vertex AI SDKを使ってAgent Engineとの複雑な認証やセッション管理、ストリーミング通信をすべて行います。

    1. Cloud Runは、Agent Engineからの応答を一つにまとめて整形し、単純なJSON形式などで外部アプリケーションに返します。

このようにCloud Runを間に挟むことで、Agent Engineの高度な機能を、様々な外部システムから簡単に利用できるようになります。これは、エージェントを業務システムに組み込む上で非常に重要なテクニックです。

まとめ

今回は、ADKで開発したデータサイエンスエージェントをAgent Engineにデプロイする具体的な手順と、そのメリットについて解説しました!

ローカルでのプロトタイピングから、コマンド数個でスケーラブルな本番環境へ。この開発環境から本番環境へのスムーズな開発体験は、ADKとAgent Engineの組み合わせによって実現されます。インフラの心配をすることなく、誰もが使えるAIエージェントを迅速に展開できるこの環境は、まさに「アイデアを即座に社会実装する」ための強力な武器となるでしょう!

ぜひ皆さんもAgent Engineを活用して、AIエージェントの価値を最大限引き出していきましょう!

2025年8月21日 データサイエンスエージェントをAgent Engineにデプロイしてみた!

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら