Create a data store and search app

進行状況を確認

/ 15

Debug your agent

進行状況を確認

/ 25

Set and utilize session state

進行状況を確認

/ 25

Deploy your agent to Agent Engine

進行状況を確認

/ 25

Configure a frontend to query your agent

進行状況を確認

/ 10

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GENAI129

スコア: このチャレンジラボに合格するには、80% 以上のスコアを獲得する必要があります。

概要

このラボでは、Agent Development Kit(ADK)を使用してエージェントを作成し、そのエージェントを Agent Engine にデプロイしてウェブアプリから使用するスキルを実証します。

目標

このラボでは、次の作業を行います。

  • Agent Development Kit(ADK)を使用して、ルート エージェントとサブエージェントで構成されるエージェントを構築する
  • Vertex AI Search ツールとカスタム機能ツールを使用してエージェントを有効にする
  • エージェントの出力をセッションの state に保存し、それ以降のエージェントへの指示でセッションの state から値を取得する
  • エージェントを Agent Engine にデプロイする
  • Agent Engine にデプロイしたエージェントに対してクエリを実行する

関連する学習教材

このラボを最後まで行うために必要なスキルが身につくリソースをお探しの場合は、以下の教材の関連セクションをご覧ください。

カテゴリ リソース
コース - Agent Development Kit(ADK)と Agent Engine を使用してマルチエージェント システムをデプロイする
学習ラボ - Agent Development Kit(ADK)を使ってみる
- ツールで ADK エージェントを強化
- ADK を使用してマルチエージェント システムを構築する
- ADK エージェントを Agent Engine にデプロイする
- AI Applications を使用して Vertex AI Search アプリを構築する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

チャレンジ シナリオ

Cymbal Shops のロゴ

Cymbal Shops はミネアポリスに本社を置く米国の小売チェーンで、家庭用品、電子機器、衣料品を販売しています。

この度、Cymbal Shops はヨーロッパに進出し、新たに塗料部門を立ち上げました。同社は、新しいオンライン プレゼンスを利用して、DIY で家をリフォームする人々が塗料を購入する方法を合理化しようと計画しています。

あなたの同僚が、ユーザーの次の作業を手伝うエージェント「Paint Agent」の開発に着手しました。

  • Cymbal Shops の塗料製品データシートに基づいて塗料製品を選択する
  • 選択した商品ラインから色を選択する
  • 部屋の寸法から必要な塗料の量を割り出す
  • 選択したオプションに基づいて価格を計算する

しかし、同僚はバグに行き詰まり、そのまま退職してしまいました。

あなたは Cymbal Shops の新しい ML エンジニアです。Paint Agent のデプロイを完了させるという任務を託されました。エージェントは次のように構成されています。

Paint Agent のアーキテクチャ図

タスク 1. ADK をインストールして環境を設定する

このラボ環境では、Vertex AI API がすでに有効になっています。ご自身のプロジェクトで以下の手順を行う場合は、Vertex AI に移動し、プロンプトに沿って有効にしてください。

Cloud Shell エディタタブを準備する

  1. Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする](Cloud Shell をアクティブにする)をクリックします。

    注: または、コンソールのブラウザタブを選択し、G キー、S キーの順に押して Cloud Shell ターミナルを開きます。
  2. [続行] をクリックします。

  3. Cloud Shell を承認するよう求められたら、[承認] をクリックします。

  4. Cloud Shell ターミナル パネルの右上にある「新しいウィンドウで開く」ボタン(「新しいウィンドウで開く」ボタン)をクリックします。

  5. ペインの上部にある [エディタを開く](鉛筆アイコン 編集 鉛筆アイコン)をクリックしてファイルを表示します。

  6. 左側のナビゲーション メニューの上部にあるエクスプローラ アイコン(エクスプローラ アイコン)をクリックして、ファイル エクスプローラを開きます。

  7. [Open Folder] ボタンをクリックします。

  8. 表示された [Open Folder] ダイアログで [OK] をクリックし、Qwiklabs 受講者アカウントのホームフォルダを選択します。

  9. 画面の右側に表示される追加のチュートリアルや Gemini のパネルを閉じると、コードエディタのウィンドウをより広く使用できます。

  10. このラボの残りの部分では、このウィンドウを Cloud Shell エディタと Cloud Shell ターミナルを備えた IDE として使用できます。

ADK とこのラボ用のコードサンプルをダウンロードしてインストールする

  1. 次のコマンドを Cloud Shell ターミナルに貼り付けて、Cloud Storage バケットからファイルをコピーし、このラボ用のコードが入ったプロジェクト ディレクトリを作成します。

    gcloud storage cp -r gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/adk_challenge_lab .
  2. Cloud Shell ターミナルで次のコマンドを実行して、PATH 環境変数を更新し、ADK とその他のラボ要件をインストールします。

    export PATH=$PATH:"/home/${USER}/.local/bin" python3 -m pip install -r adk_challenge_lab/requirements.txt

タスク 2. 塗料製品情報用の AI Applications 検索アプリを作成する

このタスクでは、AI Applications データストアをデプロイします。このデータストアは、Cymbal Shops の塗料について説明したデータシート(シークレット ウィンドウのタブを使用して https://storage.cloud.google.com/-bucket/Cymbal_Shops_Paint_Datasheets.pdf でプレビューできます)をインポートします。このデータシートは、ユーザーからの塗料についての質問に対するグラウンディング データソースとして使用されます。

  1. 次の構成で AI Applications データストアを作成します。

    フィールド
    データソース Cloud Storage
    データ型 ドキュメント
    フォルダまたはファイル ファイル
    インポートするファイル -bucket/Cymbal_Shops_Paint_Datasheets.pdf
    ロケーション グローバル
    データストア名 Cymbal Paint
    ドキュメント パーサー レイアウト パーサー
    表のアノテーションを有効にする 有効
    チャンクに上位の見出しを含める 有効
  2. 次の構成で AI Applications 検索アプリを作成します。

    フィールド
    アプリの種類 カスタム検索(一般)
    アプリ名 Paint Search
    会社名 Cymbal Shops
    ロケーション グローバル
    データストア Cymbal Paint
  3. 次のコマンドをテキスト ファイルにコピーします。SEARCH_ENGINE_ID の値を YOUR_ID から、先ほど作成した検索エンジンの ID(paint-search_1756... のような形式で、AI Applications のアプリリストに表示されます)に更新します。

    cd ~/adk_challenge_lab cat << EOF > .env GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} GOOGLE_CLOUD_LOCATION={{{project_0.default_region| GCP_LOCATION}}} RESOURCES_BUCKET={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}} SEARCH_ENGINE_ID=YOUR_ID EOF
  4. 編集したコマンドを Cloud Shell ターミナルで実行して、モデルの認証と構成のための変数を含む .env ファイルを作成します。[注: ピリオドで始まる隠しファイルを表示するには、Cloud Shell エディタのメニューで [表示] > [隠しファイルを切り替える] を有効にしてください]

  5. .env ファイルをエージェント ディレクトリにコピーして、エージェントがデプロイされたら必要になる認証構成情報を用意します。

    cp .env paint_agent/.env

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 データストアと検索アプリを作成する。

タスク 3. Paint Agent をデバッグする

同僚は Paint Agent の構築を始めたものの、行き詰まってしまいました。このエージェントを完成させてデプロイするには、残されたバグを修正するなど、同僚が中断した作業を再開する必要があります。

  1. Cloud Shell ターミナルで、次のコマンドを使用して現在のバージョンのエージェントを実行します。

    adk run paint_agent
  2. [user]: プロンプトが表示されたら、次のように入力します。

    こんにちは

    続けて、エージェントから Cymbal Shops の塗料について詳しく知りたいですかと尋ねられたら、次のように返事します。

    はい

    出力の末尾は次のようになります。

    ... google.genai.errors.ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'Multiple tools are supported only when they are all search tools.', 'status': 'INVALID_ARGUMENT'}}

    これから、このエラーを解決していきます。

  3. adk_challenge_lab/paint_agent/agent.py ファイルを開き、root_agent が使用しているサブエージェントとツールのリストを確認します。サブエージェントが含まれていることに注目してください。サブエージェントへの転送によって暗黙的な transfer_to_agent ツールが呼び出されます。

  4. root_agent のツールは検索ツールではないため、少なくとも 1 つのサブエージェントが検索ツールを呼び出す必要があります。sub_agents ディレクトリにあるサブエージェントを調べて、使用されている検索ツール(この場合は VertexAiSearchTool)を見つけます。

  5. 1 つのエージェント内で検索ツールと他の非検索ツールを組み合わせて使用することはできません(このケースのようにサブエージェントの中で使用している場合でも同様です)。ただし、ADK には、検索ツールを使用する孤立したエージェントをラップできる AgentTool というツールが用意されています。ラップすると、そのエージェントをツールとして扱い、他のツールと組み合わせて使用することができます。

    root_agent のファイル adk_challenge_lab/paint_agent/agent.py に戻り、root_agent のツールリストに AgentTool() を追加します。この AgentTool() に次の引数を渡します。

    • agent: この引数には、先ほど調べた検索ツールを使用しているサブエージェントを設定する必要があります。
    • skip_summarization: この引数は、False に設定する必要があります。これは、検索ツールが返した内容をエージェントに報告させるためです。
  6. 問題のサブエージェントを sub_agents リストから削除します。

  7. ファイルを保存します。

注: 必ず、データストアが作成され、ドキュメントのインデックスが作成された後に、この先に進んでください。このステータスは、[AI Applications] > [データストア] > [Cymbal Paint] データストアの [ドキュメント] タブでモニタリングできます。

実際には、ステータスが [Ready] になった後に数分待ってからエージェントに対してクエリを実行すると、より信頼性の高い出力が得られます。

  1. Cloud Shell ターミナルで、次のコマンドを使用してエージェントをもう一度実行します。

    adk run paint_agent

    これで、エージェントとチャットして、Cymbal Shops の塗料に関する情報を取得できるようになりました。

  2. エージェントに EcoGreensForever Paint の塗料の価格を教えてもらいます。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 エージェントをデバッグする。

  3. コマンドライン インターフェースでエージェントとの会話が終了したら、「exit」と入力して終了します。

タスク 4. 共有する state を保存して利用する

root_agentadk_challenge_lab/paint_agent/tools.py から set_session_value ツールをインポートして使用しますが、完全には実装されていません。

  1. adk_challenge_lab/paint_agent/tools.py ファイルの set_session_value 関数を更新して、ToolContextstate ディクショナリに keyvalue のペアを保存します。

  2. 関数のレスポンスを更新して、ステータス メッセージ「f"stored '{value}' in '{key}'"」を返すようにします。

  3. coverage_calculator_agentroot_agent のサブエージェントである room_planner のサブエージェント)に関連付けられている agent.py ファイルを開きます。

  4. エージェントへの指示で、stete ディクショナリの値が正しく読み込まれていないことに注目してください。指示を更新して、すべて大文字で表記した用語を削除し、ADK のキー テンプレートを使用して state 値を指示に読み込むように変更します。

  5. 次のコマンドを実行してエージェントをテストします。

    adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
  6. paint_agent を選択します。

  7. これで、エージェントと次の会話ができるようになります。

    あなた エージェントの回答
    こんにちは [Cymbal Shops の塗料に関する情報を提供すると伝えます]
    ありがとう [Project Paint、EcoGreens、SureCoverage、Forever Paint などの塗料製品に関する情報を提供します。]
    EcoGreens を使いたいのですが [[State] タブに、更新された state 値が表示されます。部屋数と各部屋の名前を尋ねます。]
    オフィスの一室だけです [オフィスに使う色を選択するよう求められます。]
    ディープ オーシャンにします [部屋の寸法を尋ねます]
    3 m × 4 m で、高さは 3 m です。ドアが 1 つ、窓が 2 つあります。 [何回塗りにするのか確認します。]
    2 回塗りにします。 [74 平方メートルをカバーする必要があることを計算します。]
  8. エージェントとの会話が終わったら、開発 UI のブラウザタブを閉じます。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 セッションの state を設定して利用する

  9. Cloud Shell ターミナル パネルを選択し、Ctrl+C キーを押してサーバーをシャットダウンします。

タスク 5. Agent Engine にデプロイする

  1. Cloud Shell ターミナルで、adk_challenge_lab ディレクトリに移動します。

    cd ~/adk_challenge_lab
  2. 適切なデプロイ コマンドを使用してエージェントをデプロイし、次の引数を使用して paint_agent を Agent Engine にデプロイします。

    パラメータ 引数
    --display_name "Paint Agent"
    --staging_bucket gs://-bucket
  3. エージェントのデプロイ時に、Vertex AI Reasoning Engine サービス エージェントに対して、Vertex AI ユーザーDiscovery Engine ユーザーの IAM ロールを付与します。

  4. デプロイが完了すると、デプロイしたエージェントのリソース名がコンソールに出力されます。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Agent Engine にデプロイする

タスク 6. デプロイしたエージェントに対してクエリを実行する

  1. ファイル adk_challenge_lab/chainlit_ui/app.py で、次の行を見つけて、デプロイしたエージェントのリソース名に更新し、リモート エージェントが読み込まれるようにします。

    agent = client.agent_engines.get(name='YOUR_AGENT_RESOURCE_NAME')
  2. 次のコマンドを使用して UI を実行します。

    cd ~/adk_challenge_lab/chainlit_ui chainlit run app.py

    想定される出力:

    2025-08-25 12:30:00 - Your app is available at http://localhost:8000
  3. http://localhost:8000 のリンクをクリックして、新しいブラウザタブで開きます。

  4. デプロイしたエージェントと次の会話をします。

    あなた エージェントの回答
    こんにちは [Cymbal Paints の情報を提供すると伝えます]
    ありがとう [Project Paint、EcoGreens、SureCoverage、Forever Paint などの塗料製品に関する情報を提供します。]
    Forever Paint を使いたいのですが [部屋数と各部屋の名前を尋ねます。]
    部屋は 2 つです。リビングルームと子ども部屋です。 [各部屋に使う色を選択するよう求められます。]
    子ども部屋は「Sunlight through a canvas tent」、リビングルームは「Coffee Cream」にします。 [部屋の寸法を尋ねます]
    リビングルームは 5 m × 4 m で、高さは 2.5 m です。ドアが 1 つ、窓が 3 つあります。 [塗装回数を尋ねます。]
    2 回塗りにします。 [子ども部屋の寸法を尋ねます。]
    子ども部屋は 3 m × 3 m で、高さは 2.5 m です。ドアが 1 つ、窓が 1 つあります。 [1 回塗りの場合の見積もり額を伝え、塗装回数を確認します。]
    どちらも 2 回塗りにします。 [リビングルームには 77 平方メートル、子ども部屋には 53 平方メートルの塗料が必要であることを計算します。]
  5. エージェントと新しい会話を開始するには、左上のアイコンをクリックして [Create a New Chat] を選択します。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 フロントエンドを構成してエージェントにクエリを実行する

お疲れさまでした

このラボでは、次の作業を行いました。

  • Agent Development Kit(ADK)を使用して、ルート エージェントとサブエージェントで構成されるエージェントを構築する
  • Vertex AI Search ツールとカスタム機能ツールを使用してエージェントを有効にする
  • エージェントの出力をセッションの state ディクショナリに保存し、それ以降のエージェントへの指示でセッションの state ディクショナリから値を取得する
  • エージェントを Agent Engine にデプロイする
  • Agent Engine にデプロイしたエージェントに対してクエリを実行する

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 2 月 26 日

ラボの最終テスト日: 2026 年 2 月 26 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。

ラボを開始するには、この簡単な手順を完了してください。