ADK、Agent Engine、AlloyDB を使用したマルチエージェント アプリ

1. 概要

エージェントは、AI モデルと対話して、エージェントが持つツールとコンテキストを使用して目標ベースの操作を実行する自律型プログラムです。真実に基づいて自律的に意思決定を行うことができます。

アプリケーションに複数のエージェントが搭載され、それぞれが特定の重点分野に関する知識と役割を持ち、必要に応じて自律的に連携してより大きな目的を達成する場合、そのアプリケーションはマルチエージェント システムになります。

Agent Development Kit(ADK)

Agent Development Kit(ADK)は、AI エージェントの開発とデプロイ用に設計された、柔軟性の高いモジュラー フレームワークです。ADK は、複数の異なるエージェント インスタンスをマルチエージェント システム(MAS)に構成することで、高度なアプリケーションの構築をサポートします。

ADK では多くの場合、マルチエージェント システムは、階層を形成するさまざまなエージェントが共同作業や調整を行うことでより大きな目標を達成するアプリケーションです。アプリケーションをこのように構造化することで、モジュール性、専門性、再利用性、保守性を向上させたり、専用のワークフロー エージェントによる構造化された制御フローを定義するなど、大きなメリットが得られます。

マルチエージェント システムの活用における注意点

まず、各エージェントの専門分野について正しく理解し、推論することが重要です。つまり、「特定のサブエージェントがなぜ必要なのか」を確認し、理解します。

次に、どのようにルート エージェントと組み合わせれば、それぞれの回答の根拠や意味を明らかにできるかを探ります。

3 つ目は、エージェントのルーティングには複数のタイプがあり、このドキュメントで確認できます。どちらがアプリケーションのフローに適しているか、また、マルチエージェント システムのフロー制御に必要なさまざまなコンテキストや状態を確認してください。

作成するアプリの概要

キッチン リフォームを処理するマルチエージェント システムを構築してみましょう。3 つのエージェントを組み合わせてシステムを構築します。

  1. リフォームの提案エージェント
  2. 許可とコンプライアンスの確認エージェント
  3. 注文ステータスの確認エージェント

リフォームの提案エージェント: キッチン リフォームの提案書を生成します。

許可とコンプライアンスの確認エージェント。許可とコンプライアンスに関連するタスクを処理します。

Order Status Check Agent: AlloyDB に設定した注文管理データベースで、マテリアルの注文ステータスを確認します。

ルート エージェントは、これらのエージェントのオーケストレーションを要件に基づいて行います。

要件

  • ブラウザ(ChromeFirefox など)
  • 課金を有効にした Google Cloud プロジェクト

2. 始める前に

プロジェクトを作成する

  1. Google Cloud コンソールのプロジェクト選択ページで、Google Cloud プロジェクトを選択または作成します。
  2. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
  3. こちらのリンクをクリックして、Cloud Shell をアクティブにします。Cloud Shell ターミナル(クラウド コマンドの実行用)とエディタ(プロジェクトの構築用)を切り替えるには、Cloud Shell の対応するボタンをクリックします。
  4. Cloud Shell に接続したら、次のコマンドを使用して、すでに認証済みであることと、プロジェクトがプロジェクト ID に設定されていることを確認します。
gcloud auth list
  1. Cloud Shell で次のコマンドを実行して、gcloud コマンドがプロジェクトを認識していることを確認します。
gcloud config list project
  1. プロジェクトが設定されていない場合は、次のコマンドを使用して設定します。
gcloud config set project <YOUR_PROJECT_ID>
  1. Python 3.9 以降がインストールされていることを確認します。
  2. 次のコマンドを実行して、次の API を有効にします。
gcloud services enable artifactregistry.googleapis.com \cloudbuild.googleapis.com \run.googleapis.com \aiplatform.googleapis.com
  1. gcloud コマンドとその使用方法については、ドキュメントをご覧ください。

3. プロトタイプ

プロジェクトに「Gemini 2.5 Pro」モデルを使用する場合は、この手順をスキップできます。

Google AI Studio に移動します。プロンプトの入力を開始します。プロンプトは次のとおりです。

I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.

右側のパラメータを調整して構成し、最適なレスポンスを得ます。

この簡単な説明に基づいて、Gemini はリフォームを開始するための非常に詳細なプロンプトを作成してくれました。つまり、Gemini を使用して、AI Studio とモデルからさらに優れた回答を得ています。ユースケースに基づいて、使用するモデルを選択することもできます。

Gemini 2.5 Pro を選択しました。これは思考モデルであるため、長文の分析や詳細なドキュメントに対して、さらに多くの出力トークン(この場合は最大 65K トークン)を取得できます。Gemini の思考ボックスは、ネイティブの推論機能を備え、長いコンテキスト リクエストを受け取ることができる Gemini 2.5 Pro を有効にすると表示されます。

以下はレスポンスのスニペットです。

a80d4bad4b3864f7.png

AI Studio は私のデータを分析し、キャビネット、カウンタートップ、バックスプラッシュ、床材、シンク、まとまり、カラーパレット、素材の選択など、あらゆるものを生成しました。Gemini はソースも引用しています。

結果に満足するまで、さまざまなモデルを選択してこの手順を繰り返します。Gemini 2.5 があるのに、なぜそんなことをするのでしょうか。

それでは、別のプロンプトでアイデアが実現する様子を見てみましょう。

Add flat and circular light accessories above the island area for my current kitchen in the attached image.

現在のキッチン(またはキッチンのサンプル画像)の画像へのリンクを添付します。モデルを [Gemini 2.0 Flash Preview Image Generation] に変更して、画像生成にアクセスできるようにします。

次のような出力が得られました。

b5b1e83fcada28f5.png

これが Gemini の力です。

動画の理解、ネイティブな画像生成、Google 検索による実際の情報へのグラウンディングなどは Gemini でしか構築できないものです。

AI Studio でこのプロトタイプを作成し、API キーを取得して、Vertex AI ADK の機能を使用して完全なエージェント アプリケーションにスケーリングできます。

4. ADK の設定

  1. 仮想環境を作成して有効にします(推奨)。

Cloud Shell ターミナルで、仮想環境を作成します。

python -m venv .venv

仮想環境をアクティブにします。

source .venv/bin/activate
  1. ADK をインストールする
pip install google-adk

5. プロジェクト構造

  1. Cloud Shell ターミナルで、プロジェクトの任意の場所にディレクトリを作成します。
mkdir agentic-apps
cd agentic-apps
mkdir renovation-agent
  1. Cloud Shell エディタに移動し、ファイルを作成して(最初は空のファイル)、次のプロジェクト構造を作成します。
renovation-agent/
        __init__.py
        agent.py
        .env
        requirements.txt

6. ソースコード

  1. [init.py] に移動し、次の内容で更新します。
from . import agent
  1. agent.py に移動し、次のパスにある次のコンテンツでファイルを更新します。
https://github.com/AbiramiSukumaran/adk-renovation-agent/blob/main/agent.py

agent.py では、必要な依存関係をインポートし、.env ファイルから構成パラメータを取得して、このアプリケーションで作成する 3 つのサブエージェントをオーケストレートする root_agent を定義します。これらのサブエージェントのコア機能とサポート機能を支援するツールがいくつかあります。

  1. Cloud Storage バケットがあることを確認する

これは、エージェントが生成する提案書を保存するためのものです。Vertex AI で作成されたマルチエージェント システムがアクセスできるように、バケットを作成してアクセス権を付与します。手順は次のとおりです。

https://cloud.google.com/storage/docs/creating-buckets#console

バケットに「next-demo-store」という名前を付けます。別の名前を付ける場合は、.env ファイル(環境変数の設定ステップ)で STORAGE_BUCKET の値を更新してください。

  1. バケットへのアクセスを設定するには、Cloud Storage のコンソールとストレージ バケットに移動します(この例では、バケット名は「next-demo-storage」です。https://console.cloud.google.com/storage/browser/next-demo-storage)。

[権限] -> [プリンシパルを表示] -> [アクセス権を付与] に移動します。プリンシパルに「allUsers」、ロールに「Storage オブジェクト ユーザー」を選択します。

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
  1. 依存関係リストを作成する

requirements.txt にすべての依存関係をリストします。これは repo からコピーできます。

マルチエージェント システムのソースコードの説明

agent.py ファイルは、Agent Development Kit(ADK)を使用して、キッチン リフォームのマルチエージェント システムの構造と動作を定義します。主なコンポーネントを詳しく見ていきましょう。

エージェントの定義

RenovationProposalAgent

このエージェントは、キッチン リフォームの提案書を作成する役割を担っています。オプションで、キッチンのサイズ、希望のスタイル、予算、お客様の好みなどのパラメータを入力します。この情報に基づき、大規模言語モデル(LLM)の Gemini 2.5 を使用して詳細な提案を生成します。生成された提案は、Google Cloud Storage バケットに保存されます。

PermitsAndComplianceCheckAgent

このエージェントは、リフォーム プロジェクトが地域の建築基準や規制に遵守していることを確認します。提案されたリフォーム(構造の変更、電気工事、配管の変更など)に関する情報を受け取り、LLM を使用して許可の要件とコンプライアンス ルールを確認します。このエージェントは、ナレッジベースからの情報を使用します(外部 API にアクセスして関連する規制を収集するようカスタマイズできます)。

OrderingAgent

このエージェント(今すぐ実装したくない場合はコメントアウトできます)は、リフォームに必要な資材や設備の注文ステータスの確認を処理します。有効にするには、設定手順に従って Cloud Run 関数を作成する必要があります。このエージェントは、この Cloud Run 関数を呼び出します。この関数は、注文情報を含む AlloyDB データベースとやり取りします。これは、リアルタイム データを追跡するためのデータベース システムとの統合を示しています。

ルート エージェント(オーケストレーター)

root_agent は、マルチエージェント システムの中心的なオーケストレーターとして機能します。最初のリフォーム リクエストを受け取ると、リクエストのニーズに基づいて呼び出すサブエージェントを決定します。たとえば、リクエストで許可要件の確認が必要な場合は、PermitsAndComplianceCheckAgent が呼び出されます。ユーザーが注文ステータスを確認する場合は、OrderingAgent が呼び出されます(有効になっている場合)。

root_agent はサブエージェントからの回答を収集し、それらを組み合わせてユーザーに包括的な回答を提供します。これには、提案の要約、必要な許可のリスト、注文ステータスの最新情報の提供などが含まれます。

データフローと主なコンセプト

ユーザーが ADK インターフェース(ターミナルまたはウェブ UI)を介してリクエストを開始します。

  1. root_agent がリクエストを受け取ります。
  2. root_agent がリクエストを分析し、適切なサブエージェントにルーティングします。
  3. サブエージェントは、LLM、ナレッジベース、API、データベースを使用してリクエストを処理し、レスポンスを生成します。
  4. サブエージェントは、ルート エージェントに回答を返します。
  5. ルート エージェントは回答を組み合わせ、ユーザーに最終的な出力を提供します。

LLM(大規模言語モデル)

エージェントは、テキストの生成、質問への回答、推論タスクの実行について、LLM に大きく依存しています。LLM はエージェントの能力を支える「頭脳」として、ユーザーのリクエストを理解し、応答します。このアプリケーションでは Gemini 2.5 を使用しています。

Google Cloud Storage

生成されたリフォームの提案書を保存するために使用されます。バケットを作成し、エージェントがアクセスするために必要な権限を付与する必要があります。

Cloud Run(省略可)

OrderingAgent は、Cloud Run 関数を使用して AlloyDB とのインターフェースを確立します。Cloud Run は、HTTP リクエストに応じてコードを実行するためのサーバーレス環境を提供します。

AlloyDB

OrderingAgent を使用する場合は、注文情報を保存するための AlloyDB データベースを設定する必要があります。詳細については、次のセクション「データベースのセットアップ」で説明します。

.env ファイル

.env ファイルには、API キー、データベースの認証情報、バケット名などの機密情報が保存されます。このファイルは安全に保管し、リポジトリに commit しないことが重要です。また、エージェントと Google Cloud プロジェクトの構成設定もこのファイルに保存されます。通常、root_agent やサポート関数はこのファイルから値を読み取ります。.env ファイルにすべての必須変数が正しく設定されていることを確認します。これには、Cloud Storage バケットの名前も含みます。

7. データベースの設定

ordering_agent で使用されるツールの 1 つである「check_status」では、AlloyDB 注文データベースにアクセスして注文のステータスを取得します。このセクションでは、AlloyDB データベース クラスタとインスタンスを設定します。

クラスタとインスタンスを作成する

  1. Cloud コンソールで AlloyDB ページに移動します。Cloud コンソールでほとんどのページを簡単に見つけるには、コンソールの検索バーを使用して検索します。
  2. このページで [クラスタを作成] を選択します。

f76ff480c8c889aa.png

  1. 次のような画面が表示されます。次の値を使用して クラスタとインスタンスを作成します(リポジトリからアプリケーション コードを複製する場合は、値が一致していることを確認してください)。
  • クラスタ ID: "vector-cluster"
  • password: "alloydb"
  • PostgreSQL 15 / 最新の推奨バージョン
  • Region: "us-central1"
  • Networking: "default"

538dba58908162fb.png

  1. デフォルトのネットワークを選択すると、次のような画面が表示されます。

[接続の設定] を選択します。
7939bbb6802a91bf.png

  1. [自動的に割り当てられた IP 範囲を使用する] を選択して、[続行] をクリックします。情報を確認したら、[接続を作成] を選択します。768ff5210e79676f.png
  2. ネットワークを設定したら、クラスタの作成を続行できます。[CREATE CLUSTER] をクリックして、次のようにクラスタの設定を完了します。

e06623e55195e16e.png

インスタンス ID を必ず変更してください(クラスタ / インスタンスの構成時に確認できます)。

vector-instance。変更できない場合は、以降のすべての参照でインスタンス ID を使用してください。

クラスタの作成には 10 分ほどかかります。成功すると、作成したクラスタの概要を示す画面が表示されます。

データの取り込み

次に、店舗に関するデータを含むテーブルを追加します。AlloyDB に移動し、プライマリ クラスタと AlloyDB Studio を選択します。

847e35f1bf8a8bd8.png

インスタンスの作成が完了するまで待つ必要がある場合があります。準備ができたら、クラスタの作成時に作成した認証情報を使用して AlloyDB にログインします。PostgreSQL の認証には次のデータを使用します。

  • ユーザー名: 「postgres
  • データベース: 「postgres
  • パスワード: 「alloydb

AlloyDB Studio への認証が成功すると、エディタに SQL コマンドが入力されます。最後のウィンドウの右にあるプラス記号を使用して、複数のエディタ ウィンドウを追加できます。

91a86d9469d499c4.png

必要に応じて [実行]、[形式]、[クリア] オプションを使用して、エディタ ウィンドウに AlloyDB のコマンドを入力します。

テーブルを作成する

AlloyDB Studio で次の DDL ステートメントを使用してテーブルを作成できます。

-- Table DDL for Procurement Material Order Status

CREATE TABLE material_order_status (
    order_id VARCHAR(50) PRIMARY KEY,
    material_name VARCHAR(100) NOT NULL,
    supplier_name VARCHAR(100) NOT NULL,
    order_date DATE NOT NULL,
    estimated_delivery_date DATE,
    actual_delivery_date DATE,
    quantity_ordered INT NOT NULL,
    quantity_received INT,
    unit_price DECIMAL(10, 2) NOT NULL,
    total_amount DECIMAL(12, 2),
    order_status VARCHAR(50) NOT NULL, -- e.g., "Ordered", "Shipped", "Delivered", "Cancelled"
    delivery_address VARCHAR(255),
    contact_person VARCHAR(100),
    contact_phone VARCHAR(20),
    tracking_number VARCHAR(100),
    notes TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    quality_check_passed BOOLEAN,  -- Indicates if the material passed quality control
    quality_check_notes TEXT,        -- Notes from the quality control check
    priority VARCHAR(20),            -- e.g., "High", "Medium", "Low"
    project_id VARCHAR(50),          -- Link to a specific project
    receiver_name VARCHAR(100),        -- Name of the person who received the delivery
    return_reason TEXT,               -- Reason for returning material if applicable
    po_number VARCHAR(50)             -- Purchase order number
);

レコードを挿入する

上記の database_script.sql スクリプトから insert クエリ ステートメントをエディタにコピーします。

[実行] をクリックします。

データセットの準備ができたので、ステータスを抽出する Java Cloud Run Functions アプリケーションを作成しましょう。

Java で Cloud Run 関数を作成して注文ステータスの情報を抽出する

  1. このリンクにアクセスして Cloud Run 関数を作成します: https://console.cloud.google.com/run/create?deploymentType=function
  2. 関数の名前を「check-status」に設定し、ランタイムとして「Java 17」を選択します。
  3. デモ アプリケーションのため、認証は [未認証の呼び出しを許可する] に設定できます。
  4. ランタイムとして [Java 17] を選択し、ソースコードとして [インライン エディタ] を選択します。
  5. この時点で、プレースホルダ コードがエディタに読み込まれます。

プレースホルダ コードを置き換える

  1. Java ファイルの名前を「ProposalOrdersTool.java」に変更し、クラス名を「ProposalOrdersTool」に変更します。
  2. ProposalOrdersTool.java と pom.xml のプレースホルダ コードを、このリポジトリの「Cloud Run 関数」フォルダにあるそれぞれのファイルのコードに置き換えます。
  3. ProposalOrdersTool.java で次のコード行を見つけ、プレースホルダの値をそれぞれの設定値に置き換えます。
String ALLOYDB_INSTANCE_NAME = "projects/<<YOUR_PROJECT_ID>>/locations/us-central1/clusters/<<YOUR_CLUSTER>>/instances/<<YOUR_INSTANCE>>";
  1. [作成] をクリックします。
  2. Cloud Run 関数が作成され、デプロイされます。

重要な手順:

デプロイが完了したら、Cloud Functions が AlloyDB データベース インスタンスにアクセスできるように、VPC コネクタを作成します。

デプロイを開始すると、Google Cloud Run Functions コンソールに関数が表示されます。新しく作成した関数(check-status)を検索してクリックし、[新しいリビジョンの編集とデプロイ](Cloud Run Functions コンソールの上部にある編集アイコン(ペン)で識別)をクリックして、次のように変更します。

  1. [ネットワーキング] タブに移動します。

828cd861864d99ea.png

  1. [アウトバウンド トラフィック用の VPC に接続する] を選択し、[サーバーレス VPC アクセス コネクタを使用する] を選択します。
  2. [ネットワーク] プルダウンで、[ネットワーク] プルダウンをクリックして [新しい VPC コネクタを追加] オプションを選択し(デフォルトのコネクタをまだ構成していない場合)、表示されるダイアログ ボックスの手順に沿って操作します。

6559ccfd10e597f2.png

  1. VPC コネクタの名前を指定し、リージョンがインスタンスと同じであることを確認します。[ネットワーク] の値はデフォルトのままにし、[サブネット] を [カスタム IP 範囲] に設定して、使用可能な IP 範囲(10.8.0.0 など)を指定します。
  2. [SHOW SCALING SETTINGS] を展開し、構成が次のとおりに設定されていることを確認します。

199b0ccd80215004.png

  1. [作成] をクリックすると、このコネクタが下り(外向き)設定に表示されます。
  2. 新しく作成したコネクタを選択します。
  3. すべてのトラフィックがこの VPC コネクタ経由でルーティングされるようにします。
  4. [次へ]、[デプロイ] の順にクリックします。
  5. 更新された Cloud Functions 関数がデプロイされると、エンドポイントが生成されます。
  6. Cloud Run Functions コンソールの上部にある [テスト] ボタンをクリックし、Cloud Shell ターミナルで結果のコマンドを実行してテストできます。
  7. デプロイされたエンドポイントは、.env 変数 CHECK_ORDER_STATUS_ENDPOINT で更新する必要がある URL です。

8. モデルの設定

エージェントがユーザー リクエストを理解して回答を生成する機能は、大規模言語モデル(LLM)によって実現されています。エージェントは、この外部 LLM サービスに安全な呼び出しを行う必要があります。これには認証情報が必要です。有効な認証がないと、LLM サービスはエージェントのリクエストを拒否し、エージェントは機能できません。

  1. Google AI Studio から API キーを取得します。
  2. 次のステップで .env ファイルを設定するときに、<<your API KEY>> を実際の API キーの値に置き換えます。

9. 環境変数の設定

  1. このリポジトリのテンプレート .env ファイルで、パラメータの値を設定します。この例では、.env に次の変数が含まれています。
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION=us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT=<<your project id>>
PROJECT_ID=<<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET=next-demo-store <<or your storage bucket name>>
CHECK_ORDER_STATUS_ENDPOINT=<<YOUR_ENDPOINT_TO_CLOUD FUNCTION_TO_READ_ORDER_DATA_FROM_ALLOYDB>>

プレースホルダを実際の値に置き換えます。

10. エージェントを実行する

  1. ターミナルを使用して、エージェント プロジェクトの親ディレクトリに移動します。
cd renovation-agent
  1. すべての依存関係をインストールする
pip install -r requirements.txt
  1. Cloud Shell ターミナルで次のコマンドを実行して、エージェントを実行できます。
adk run .
  1. ADK でプロビジョニングされたウェブ UI で実行するには、以下を実行します。
adk web
  1. 次のプロンプトでテストします。
user>> 

Hello. Generate Proposal Document for the kitchen remodel requirement. I have no other specification.

11. 結果

@ キッチン リフォーム タスク用のマルチエージェント システム

623fa35fce53b51b.png

12. Agent Engine へのデプロイ

マルチエージェント システムが正常に動作することを確認したので、サーバーレスにして、クラウドで誰でも / どのアプリケーションでも利用できるようにしましょう。リポジトリの agent.py で次のコード スニペットのコメントを解除すると、マルチエージェント システムをデプロイできます。

# Agent Engine Deployment:
# Create a remote app for our multiagent with agent Engine.
# This may take 1-2 minutes to finish.
# Uncomment the below segment when you're ready to deploy.

app = AdkApp(
    agent=root_agent,
    enable_tracing=True,
)

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

remote_app = agent_engines.create(
    app,
    requirements=[
        "google-cloud-aiplatform[agent_engines,adk]>=1.88",
        "google-adk",
        "pysqlite3-binary",
        "toolbox-langchain==0.1.0",
        "pdfplumber",
        "google-cloud-aiplatform",
        "cloudpickle==3.1.1",
        "pydantic==2.10.6",
        "pytest",
        "overrides",
        "scikit-learn",
        "reportlab",
        "google-auth",
        "google-cloud-storage",
    ],
)
# Deployment to Agent Engine related code ends

次のコマンドを使用して、プロジェクト フォルダ内から agent.py を再度実行します。

>> cd adk-renovation-agent

>> python agent.py

このコードの完了には数分かかります。完了すると、次のようなエンドポイントが返されます。

'projects/123456789/locations/us-central1/reasoningEngines/123456'

次のコードを使用して、新しいファイル「test.py」を追加することで、デプロイされたエージェントをテストできます。

import vertexai
from vertexai.preview import reasoning_engines
from vertexai import agent_engines
import os
import warnings
from dotenv import load_dotenv
load_dotenv() 


GOOGLE_CLOUD_PROJECT = os.environ["GOOGLE_CLOUD_PROJECT"]
GOOGLE_CLOUD_LOCATION = os.environ["GOOGLE_CLOUD_LOCATION"]
GOOGLE_API_KEY = os.environ["GOOGLE_API_KEY"]
GOOGLE_GENAI_USE_VERTEXAI=os.environ["GOOGLE_GENAI_USE_VERTEXAI"]
AGENT_NAME = "adk_renovation_agent"
MODEL_NAME = "gemini-2.5-pro-preview-03-25" 
warnings.filterwarnings("ignore")
PROJECT_ID = GOOGLE_CLOUD_PROJECT

reasoning_engine_id = "<<YOUR_DEPLOYED_ENGINE_ID>>"

vertexai.init(project=PROJECT_ID, location="us-central1")
agent = agent_engines.get(reasoning_engine_id)
print("**********************")
print(agent)
print("**********************")


for event in agent.stream_query(
    user_id="test_user",
    message="I want you to check order status.",
):
    print(event)

上記のコードで、プレースホルダ「<<YOUR_DEPLOYED_ENGINE_ID>>」の値を置き換え、「python test.py」コマンドを実行すると、Agent Engine がデプロイされたマルチエージェント システムとやり取りしてキッチンをリフォームする準備が整います。

13. 1 行のデプロイ オプション

デプロイされたマルチエージェント システムをテストしたので、前のステップで行ったデプロイ ステップを抽象化するより簡単な方法を学びましょう。1 行のデプロイ オプション:

  1. Cloud Run の場合:

構文:

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=<<YOUR_SERVICE_NAME>> \
--app_name=<<YOUR_APP_NAME>> \
--with_ui \
./<<YOUR_AGENT_PROJECT_NAME>>

この例の場合は、次のようになります。

adk deploy cloud_run \
--project=<<YOUR_PROJECT_ID>> \
--region=us-central1 \
--service_name=renovation-agent \
--app_name=renovation-app \
--with_ui \
./renovation-agent

デプロイされたエンドポイントは、ダウンストリーム統合に使用できます。

  1. Agent Engine の場合:

構文:

adk deploy agent_engine \
  --project <your-project-id> \
  --region us-central1 \
  --staging_bucket gs://<your-google-cloud-storage-bucket> \
  --trace_to_cloud \
  path/to/agent/folder

この例の場合は、次のようになります。

adk deploy agent_engine --project <<YOUR_PROJECT_ID>> --region us-central1 --staging_bucket gs://<<YOUR_BUCKET_NAME>> --trace_to_cloud renovation-agent

Google Cloud コンソールの Agent Engine UI に新しいエージェントが表示されます。詳細については、こちらのブログをご覧ください。

14. クリーンアップ

この投稿で使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。
  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

15. 完了

おめでとうございます!ADK を使用して、初めてのエージェントを作成し、操作することができました。