0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ADKで開発したAIエージェントをVertex AI Agent Engineにデプロイする

Last updated at Posted at 2025-07-15

初めに

以前書いたADKでVertex AI RAG Engineを参照するAIエージェントを開発するの続きです。今回は、ADKで作成したAIエージェントをVertex AI Agent Engineにデプロイし、動作確認を行ってみようと思います。

この記事でやること

  • ①ADKを使って、AIエージェントを開発する
    • RAGを参照して質問に回答する
    • RAGにはVertex AI RAG Engineを用いる
  • ②Vertex AI Agent Engineにデプロイする
  • ③デプロイしたアプリをcurlで呼び出す

試してみる

早速試してみましょう。
今回はRAGを参照して質問に回答するAIエージェントを作成します。
RAGにはVertex AI RAG Engineを利用します。
RAGにはPHPフレームワークFlowの公式ドキュメントの情報を読み込ませました。

①ADKを使って、AIエージェントを開発する

まずは、ADKを使って、RAGを参照するAIエージェントを開発します。

実装方法は以前まとめたので今回は割愛します。
こちらをご参照ください。

②Vertex AI Agent Engineにデプロイする

Vertex AI Agent Engineへのデプロイはpythonで書いたスクリプトを実行することで行います。
以下のサンプルを参考に作成してみました。

ディレクトリ構成は以下です。
deploy.pyが作成したファイルになります。

parent_folder/
    deployment/
        deploy.py
    ragagent/
        __init__.py
        agent.py
        .env

deploy.py

実際のコードがこちら。
STAGING_BUCKETには任意のGCSを指定します。デプロイする資材を置いておく場所です。

deploy.py
import vertexai
from vertexai import agent_engines
from vertexai.preview.reasoning_engines import AdkApp
from ragagent.agent import root_agent
import logging
import os
from dotenv import set_key

logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

PROJECT_ID = "hogehoge"
LOCATION = "us-central1"
STAGING_BUCKET = "gs://fugafuga"

vertexai.init(
    project=PROJECT_ID,
    location=LOCATION,
    staging_bucket=STAGING_BUCKET,
)

logger.info("deploying app...")
app = AdkApp(
    agent=root_agent,
    enable_tracing=True,
)

remote_app = agent_engines.create(
    app,
    requirements=[
        "google-adk",
        "llama-index",
    ],
    extra_packages=[
        "./ragagent",
    ],
)

デプロイする

プロジェクトのルートディレクトリにて以下のコマンドを実行してデプロイします。
5分ほど待つとデプロイが完了します。
ログにGCPのログエクスプローラーのリンクが表示されるので、それを見れば進捗も把握できます。

$ python -m deployment.deploy

デプロイが完了すると、Vertex AI Agent Engineにデプロイしたアプリが表示されます。
デプロイ時に名前を指定しなかったので、「-」になってますが、デプロイはできてそうです。
名前はUI上からも変更できますが、agent_engines.createの引数で指定することも可能です。

image.png

③デプロイしたアプリをcurlで呼び出す

URL

Vertex AI Agent EngineのUI上でデプロイしたアプリの詳細を見ると、APIのURLを確認することができます。
URLは通常のものとストリーム形式のレスポンスを返すものの二種類があります。今回はストリーム形式のほうを利用しました。
(通常のほうも試してみたのですが、実行できずでした)

ストリーム形式のURL
https://us-central1-aiplatform.googleapis.com/v1/projects/hoge/locations/us-central1/reasoningEngines/0000000000000000000:streamQuery?alt=sse

RAGの参照権限の付与

また、Vertex AI Agent EngineからRAG Engineを参照するためには、Vertex AI Agent Engineが利用しているユーザの権限を与える必要があります。
IAMにてservice-[プロジェクト番号]@gcp-sa-aiplatform-re.iam.gserviceaccount.comというユーザを探し、「Vertex AI ユーザー」と「ストレージ管理者」の二つの権限を与えてあげましょう。

上記ユーザはIAMにてGoogle 提供のロール付与を含めるにチェックを入れると出てきます。

curlで呼び出す

curlで実行してみました。
user_idを指定するとVertex AI Agent Engine側にセッションが作成されます。
作成したセッションは

リクエスト
$ curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/hoge/locations/us-central1/reasoningEngines/0000000000000000000:streamQuery?alt=sse -d '{
  "class_method": "stream_query",
  "input": {
    "user_id": "1234",
    "session_id": "427859831664148480011",
    "message": "PHPのFlowでIPアドレス制限はできますか?できるとしたら、どのように実装しますか?"
  }
}' | jq

返ってきたレスポンスがこちらです(一部抜粋)。
質問に答えてくれました!
省略していますが、グランディングの情報も返ってきており、RAGを参照していることも確認できました。

レスポンス
{
  "content": {
    "parts": [
      {
        "text": "はい、PHPのFlowフレームワークではIPアドレス制限が可能です。\n\nFlowのファイアウォール機能を使用して、`Settings.yaml`ファイルで設定できます。`filters`セクションに`Ip`パターンを設定し、`cidrPattern`でIPアドレスまたはCIDR範囲を指定し、`AccessGrant`または`AccessDeny`インターセプターを使用します。\n\n例として、`Settings.yaml`での設定は以下のようになります。\n\n```yaml\nNeos:\n  Flow:\n    security:\n      firewall:\n        filters:\n          'Some.Package:AllowedIps':\n            pattern: 'Ip'\n            patternOptions:\n              'cidrPattern': '192.168.178.0/24'\n            interceptor: 'AccessGrant'\n```\n\nこの設定は、`192.168.178.0/24`の範囲からのIPアドレスにアクセスを許可します。`AccessGrant`の代わりに`AccessDeny`を使用することで、特定のIPアドレス範囲からのアクセスを拒否することも可能です。"
      }
    ],
  },
  "timestamp": 1752580160.307721
}

終わりに

今回はVertex AI Agent Engineへのデプロイを試してみました。ADK、Vertex AI Agent Engine、RAG Engineを使えば、RAGを参照するAIエージェントを比較的簡単に開発、デプロイできます。是非試してみてはいかがでしょうか。
ここまでご覧いただきありがとうございました!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?