700 以上のラボとコースにアクセス

Agent Development Kit(ADK)を使ってみる

ラボ 1時間 30分 universal_currency_alt クレジット: 5 show_chart 上級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GENAI104

Google Cloud セルフペース ラボ

概要: Agent Development Kit のメリット

エージェント アプリケーションを構築する開発者にとって、Agent Development Kit には、次のような重要なメリットがあります。

  1. マルチエージェント システム: 階層構造で複数の専門エージェントを構成して、モジュール型のスケーラブルなアプリケーションを構築します。複雑な調整と委任が可能です。
  2. 充実したツール エコシステム: エージェントに、多様な機能を装備させることができます。たとえば、事前構築済みのツール(検索、コード実行など)の使用、カスタム関数の作成、サードパーティのエージェント フレームワーク(LangChain、CrewAI)のツールの統合、他のエージェントのツールとしての使用などです。
  3. 柔軟なオーケストレーション: ワークフロー エージェント(SequentialAgentParallelAgentLoopAgent)を使用して、予測可能なパイプラインのワークフローを定義します。また、LLM による動的ルーティング(LlmAgent 転送)を活用して適応性のある動作を実現します。
  4. 統合されたデベロッパー エクスペリエンス: 強力な CLI とインタラクティブな開発 UI を使用して、ローカルで開発、テスト、デバッグを行います。イベント、状態、エージェントの実行をステップごとに検証します。
  5. 組み込みの評価: 最終的な回答の質と、定義済みのテストケースに対する段階的な実行軌跡の両方を評価することで、エージェントのパフォーマンスを体系的に測定します。
  6. デプロイの準備: エージェントをコンテナ化してどこにでもデプロイできます。ローカルでの実行、Vertex AI Agent Engine でのスケーリング、Cloud Run や Docker を使用したカスタム インフラストラクチャへの統合が可能です。

他の生成 AI SDK やエージェント フレームワークでも、モデルのクエリやツールによるモデルの強化は可能ですが、複数のモデル間の動的な調整には、開発者によるかなりの作業が必要になります。

Agent Development Kit は、これらのツールよりも高レベルのフレームワークを提供します。これにより、複数のエージェントを簡単に連携させて、複雑ながらも保守が容易なワークフローを実現できます。

Agent Development Kit は高レベルです。

また、これらの複雑なエージェント システムを Agent Engine のフルマネージド エンドポイントにデプロイでき、インフラストラクチャの割り当てとスケーリングが自動で行われるため、開発者はエージェントのロジックに集中できます。

目標

このラボでは、検索ツールを利用できる単一のエージェントを作成します。作成したエージェントを、ADK のブラウザ UI、CLI チャット インターフェース、およびスクリプト内のプログラムによってテストします。

次の点について学びます。

  • Agent Development Kit の主な機能
  • ADK の基本コンセプト
  • ADK のプロジェクト ディレクトリの構造
  • ADK のエージェントの最も基本的なパラメータ(モデル名とツールの指定方法など)
  • ADK のブラウザ UI の機能
  • エージェントの出力スキーマを制御する方法
  • エージェントを 3 つの方法(ブラウザ UI、プログラム、CLI チャット インターフェース)で実行する方法

設定と要件

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

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

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

前提条件

このラボを完了するには、次のものが必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)。
  • ラボを完了するために必要な時間。

注: すでに個人の GCP アカウントやプロジェクトをお持ちの場合でも、そのアカウントやプロジェクトはラボでは使用しないでください。

ラボを開始して 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 のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

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

注: ほとんどの Qwiklabs では、Qwiklabs 受講者アカウントと Google Cloud にログインしている他のアカウントとの混同を避けるために、ブラウザのシークレット ウィンドウを使用することをおすすめします。Chrome を使用している場合は、シークレット ウィンドウをすべて閉じてから、このラボの上部にある [Google Cloud コンソールを開く] ボタンを右クリックし、[シークレット ウィンドウで開く] を選択するのが最も簡単な方法です。

Vertex AI の推奨 API を有効にする

  1. このラボ環境では、Vertex AI API が有効になっています。ご自身のプロジェクトでこれらの手順を行う場合は、Vertex AI に移動し、プロンプトに従って有効にすることで有効にできます。

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

  1. Google Cloud コンソール ウィンドウを選択した状態で、キーボードの G キーを押してから S キーを押して、Cloud Shell を開きます。または、Cloud コンソールの右上にある「Cloud Shell をアクティブにする」ボタン Cloud Shell をアクティブにする をクリックします。

  2. [続行] をクリックします。

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

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

  5. Cloud Shell ターミナルで、次のコマンドを入力して Cloud Shell エディタをホーム ディレクトリで開きます。

    cloudshell workspace ~
  1. 画面の右側に表示される追加のチュートリアルや Gemini のパネルを閉じると、コードエディタのウィンドウをより広く使用できます。
  2. このラボの残りの部分では、このウィンドウを Cloud Shell エディタと Cloud Shell ターミナルを備えた IDE として使用できます。

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

  1. Cloud Shell ターミナルで次のコマンドを実行して、PATH 環境変数を更新し、ADK をインストールします。注: インストールする ADK のバージョンが、このラボで使用されるバージョンと一致するように、バージョンを指定してください。

    export PATH=$PATH:"/home/${USER}/.local/bin" python3 -m pip install google-adk
  2. 次のコマンドを Cloud Shell ターミナルに貼り付けて、Cloud Storage バケットからファイルをコピーして解凍し、このラボのコードを含むプロジェクト ディレクトリを作成します。

    gcloud storage cp gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/adk_project.zip ./adk_project.zip unzip adk_project.zip
  3. 次のコマンドでラボの追加要件をインストールします。

    python3 -m pip install -r adk_project/requirements.txt

Agent Development Kit の基本コンセプト

Google ADK はいくつかの基本コンセプトに基づいて、強力で柔軟になるように構築されています。

  • エージェント: エージェントは、特定のタスクを完了するように設計されたコア構成要素です。LLM を活用して推論や計画を行ったり、目的を果たすためのツールを利用したり、複雑なプロジェクトでコラボレーションしたりすることができます。
  • ツール: ツールを使用すると、エージェントは会話以外の機能を利用して、外部 API との対話、情報の検索、コードの実行、他のサービスの呼び出しを行うことができます。
  • セッション サービス: セッション サービスは、単一の会話(Session)のコンテキストを処理します。これには、履歴(Events)と、その会話のエージェントのワーキング メモリ(State)が含まれます。
  • コールバック: エージェントのプロセスの特定の時点で実行するためにユーザーが提供するカスタム コード スニペットです。チェック、ロギング、動作の変更が可能になります。
  • アーティファクト管理: アーティファクトを使用すると、エージェントはセッションまたはユーザーに関連付けられたファイルやバイナリデータ(画像や PDF など)の保存、読み込み、管理を行うことができます。
  • ランナー: 実行フローを管理し、イベントに基づいてエージェントのインタラクションをオーケストレートし、バックエンド サービスと連携するためのエンジンです。

タスク 2. Agent Development Kit プロジェクト ディレクトリの構造を確認する

  1. Cloud Shell エディタのファイル エクスプローラ ペインで、adk_project フォルダを見つけます。クリックして開きます。

  2. このディレクトリには、my_google_search_agentapp_agentllm_auditor の 3 つのディレクトリが含まれています。これらの各ディレクトリは、別個のエージェントを表します。エージェントをプロジェクト ディレクトリ内の独自のディレクトリに分離することにより、エージェントが整理されます。また、この分離によって Agent Development Kit はエージェントの存在を把握できるようになります。

  3. my_google_search_agent をクリックして、エージェント ディレクトリを開きます。

  4. このディレクトリには __init__.py ファイルと agent.py ファイルが含まれています。通常、__init__.py ファイルは、他の Python コードでインポートできる Python パッケージとしてディレクトリを識別するために使用されます。init.py ファイルをクリックして、その内容を表示します。

  5. __init__.py ファイルには、agent.py ファイルからインポートする 1 行が含まれています。ADK はこれを使用して、このディレクトリをエージェント パッケージとして識別します。

    from . import agent
  6. agent.py ファイルをクリックします。このファイルはシンプルなエージェントで構成されています。強力なツールである Google 検索を使用してインターネットを検索する機能を提供します。このファイルについて、以下の点に注目してください。

    • google.adk からのインポート(Agent クラスと tools モジュールの google_search ツール)に注目してください。
    • このシンプルなエージェントを構成するパラメータを説明するコードコメントを読んでください。
  7. インポートした google_search ツールを使用するには、そのツールをエージェントに渡す必要があります。これを行うには、Agent オブジェクトの作成の最後に示された agent.py ファイルに次の行を貼り付けます

    tools=[google_search]
  8. ファイルを保存します。

ツールを使用すると、エージェントはテキストの生成以外の操作を実行できます。このケースでは、エージェントは google_search ツールを使用することにより、トレーニング データからすでに得ていた情報よりも詳細な情報を取得すべきなのはどのような場合かを判断できます。検索クエリを作成し、Google 検索を使用してウェブを検索し、その結果に基づいてユーザーに回答することができます。モデルが取得した追加情報に基づいて回答を生成することを「グラウンディング」と呼び、このプロセス全体を「検索拡張生成」または「RAG」と呼びます。

ADK でツールを使用する方法について詳しくは、ラボ「ツールで ADK エージェントを強化する」をご覧ください。

タスク 3. ADK の開発 UI を使用してエージェントを実行する

ADK には、エージェントの開発とテストに役立つようローカルで実行するように設計された開発 UI が含まれています。各エージェントが何をしているか、複数のエージェントがどのように相互作用しているかの可視化に役立ちます。このタスクでは、このインターフェースについて説明します。

エージェントを実行する場合、ADK は誰がモデル API 呼び出しをリクエストしているかを知る必要があります。この情報は、次の 2 つの方法で指定できます。

  1. Gemini API キーを指定します。
  2. Google Cloud 認証情報を使用して環境を認証し、モデル API 呼び出しを Vertex AI プロジェクトとロケーションに関連付けます。

このラボでは、Vertex AI のアプローチを採用します。

  1. Cloud Shell エディタのメニューで [View] > [Toggle Hidden Files] を選択して、隠しファイルを表示または非表示にします(ほとんどのファイル システムでは、ファイル名の先頭にピリオドが付いているファイルはデフォルトで非表示になっています)。このメニューで [Toggle Hidden Files] オプションを見つけるには、下にスクロールする必要がある場合があります。

  2. Cloud Shell エディタのファイル エクスプローラ ペインで、adk_project/my_google_search_agent ディレクトリに移動します。

  3. my_google_search_agent ディレクトリの .env ファイルを選択します。

  4. 次の値をファイル内の既存の値に上書きして貼り付けて、プロジェクト ID を含むようにファイルを更新します。

    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}}} MODEL=gemini-2.5-flash
  5. ファイルを保存します。

これらの変数は次の役割を果たします。

  • GOOGLE_GENAI_USE_VERTEXAI=TRUE は、Gemini API キー認証ではなく、Vertex AI を認証に使用することを示します。
  • GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATION は、モデル呼び出しを関連付けるプロジェクトとロケーションを指定します。
  • MODEL は必須ではありませんが、ここに保存することによって、別の環境変数として読み込むことができるようになります。これは、さまざまなデプロイ環境でさまざまなモデルを試すのに便利な方法です。

ADK の開発 UI またはコマンドライン チャット インターフェースを使用してエージェントをテストするときに、エージェントの「.env」ファイルが存在する場合、エージェントはそれを読み込んで使用します。存在しない場合は、ここで設定されたものと同じ名前の環境変数を見つけようとします。

  1. Cloud Shell ターミナルで、次のコマンドを実行して、エージェント サブディレクトリがある adk_project ディレクトリに移動します。

    cd ~/adk_project
  2. 次のコマンドを使用して Agent Development Kit 開発 UI を起動します。

    adk web

    出力

    INFO: Started server process [2434] INFO: Waiting for application startup. +-------------------------------------------------------+ | ADK Web Server started | | | | For local testing, access at http://localhost:8000. | +-------------------------------------------------------+ INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
  3. ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力にある http://127.0.0.1:8000 リンクをクリックします。これにより、Cloud Shell インスタンスでローカルに実行されているこのアプリにプロキシ経由でリンクされます。

  4. 新しいブラウザタブが開き、ADK 開発 UI が表示されます。

  5. 左側の [Select an agent] プルダウンから、my_google_search_agent を選択します。

    開発 UI

  6. エージェントが Google 検索ツールを使用するように促すため、次の質問を入力します。

    What is some recent global news?
  7. 結果を見ると、エージェントはモデルのトレーニング日以降の最新情報を Google 検索で取得できていることがわかります。

    Google 検索によるグラウンディングを使用した回答には、表示可能な HTML の「検索候補」が含まれます(通常はエージェントの回答の下部に表示されます)。Google 検索によるグラウンディングを使用する場合は、これらの候補を表示することが求められます。これにより、ユーザーはモデルが回答に使用した情報をフォローアップできます。
  8. 左側のサイドバーで、デフォルトで [Trace] タブが表示されていることに注意してください。最後のクエリテキスト(What is some recent global news?)をクリックすると、クエリのさまざまな部分の実行にかかった時間のトレースが表示されます。これを使用して、ツール呼び出しを含むより複雑な実行をデバッグし、さまざまなプロセスが回答のレイテンシにどのように影響するかを把握できます。

    エージェント呼び出しのトレース
  9. エージェントの回答(または [Events] タブのリストにあるイベント)の横にあるエージェント アイコン(agent_icon)をクリックして、エージェントが返したイベントを検査します。これには、ユーザーに返された content と、回答の基になった検索結果の詳細を示す groundingMetadata が含まれます。

  10. 開発 UI の探索が終了したら、このブラウザタブを閉じ、Cloud Shell ターミナルが表示されているブラウザタブに戻り、ターミナルのペインをクリックして Ctrl + C キーを押し、ウェブサーバーを停止します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ADK のウェブ UI を使用してエージェントを実行する

タスク 4. エージェントをプログラマティックに実行する

開発 UI はテストとデバッグには適していますが、本番環境での複数のユーザーによるエージェントの利用には適していません。

エージェントを大規模なアプリケーションの一部として実行するには、前のタスクでウェブアプリが処理した agent.py スクリプトにいくつかの追加コンポーネントを含める必要があります。次の手順に沿って、これらのコンポーネントを含むスクリプトを開き、確認します。

  1. Cloud Shell ターミナルで次のコマンドを実行して、環境変数をエクスポートします。この方法を使用すると、ディレクトリに .env ファイルがない場合に、すべてのエージェントが使用する環境変数を設定できます。

    export GOOGLE_GENAI_USE_VERTEXAI=TRUE export GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} export GOOGLE_CLOUD_LOCATION={{{project_0.default_region| GCP_LOCATION}}} export MODEL=gemini-2.5-flash
  2. Cloud Shell エディタのファイル ブラウザで、adk_project/app_agent ディレクトリを選択します。

  3. このディレクトリ内の agent.py ファイルを選択します。

  4. このエージェントは、アプリケーションの一部として実行されるように設計されています。agent.py のコメント付きコードを読み、コード内の次のコンポーネントに特に注目してください。

    コンポーネント 機能 説明
    InMemoryRunner() エージェントの実行の監視 ランナーは、ユーザーのクエリを受け取って適切なエージェントに渡し、エージェントの回答イベントを受け取って呼び出し元アプリケーションまたは UI に返し、次のイベントをトリガーする役割を担うコードです。詳しくは、ADK のイベントループに関するドキュメントをご覧ください。
    runner.session_service.create_session() 会話の履歴と共有状態 セッションを使用すると、エージェントは状態を維持し、アイテムのリスト、タスクの現在のステータス、その他の「現在の」情報を記憶できます。このクラスは、簡略化のためにローカル セッション サービスを作成しますが、本番環境ではデータベースで処理できます。
    types.Content()types.Part() 構造化されたマルチモーダル メッセージ エージェントには、単純な文字列ではなく、複数の Part で構成される Content オブジェクトが渡されます。これにより、テキストやマルチモーダル コンテンツなどの複雑なメッセージを特定の順序でエージェントに渡すことができます。
開発 UI でエージェントを実行したときは、セッション サービス、アーティファクト サービス、ランナーを作成しました。独自のエージェントを記述してプログラマティックにデプロイする場合は、インメモリ バージョンに依存するのではなく、これらのコンポーネントを外部サービスとして提供することをおすすめします。
  1. スクリプトには、エージェントに "What is the capital of France?" と尋ねるハードコードされたクエリが含まれています。

  2. Cloud Shell ターミナルで次のコマンドを実行して、このエージェントをプログラマティックに実行します。

    python3 app_agent/agent.py

    選択された出力:

    trivia_agent: The capital of France is Paris.
  3. エージェントの特定の入力スキーマや出力スキーマを定義することもできます。

    次に、Pydantic スキーマクラスBaseModelField のインポートを追加し、それらを使用して、キーが「capital」で、国の首都の名前を想定した文字列値を持つ 1 つのフィールドで構成されるスキーマクラスを定義します。これらの行は、app_agent/agent.py ファイルの他のインポートの直後に貼り付けることができます。

    from pydantic import BaseModel, Field class CountryCapital(BaseModel): capital: str = Field(description="A country's capital.") 重要な注意事項: 出力スキーマを定義する場合は、ツール転送やエージェント転送を使用できません。
  4. root_agentAgent 定義内で、次のパラメータを追加して転送を無効にし(出力スキーマを使用する場合は必須)、上記で定義した CountryCapital スキーマに従って出力が生成されるように設定します。

    disallow_transfer_to_parent=True, disallow_transfer_to_peers=True, output_schema=CountryCapital,
  5. エージェント スクリプトを再度実行して、output_schema に従った回答を確認します。

    python3 app_agent/agent.py

    選択された出力:

    ** User says: {'parts': [{'text': 'What is the capital of France?'}], 'role': 'user'} ** trivia_agent: {"capital": "Paris"}

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

タスク 5. コマンドライン インターフェースを使用してエージェントとチャットする

コマンドライン インターフェースを使用して、ローカル開発環境でエージェントとチャットすることもできます。これは、エージェントを開発しているときに、簡単なデバッグやテストを行うのにとても便利です。

ウェブ インターフェースと同様に、コマンドライン インターフェースも、エージェントのセッション サービス、アーティファクト サービス、ランナーの作成を処理します。

コマンドライン インターフェースを使用してインタラクティブ セッションを実行するには:

  1. Cloud Shell ターミナルで次のコマンドを実行します。

    adk run my_google_search_agent

    出力:

    Log setup complete: /tmp/agents_log/agent.20250322_010300.log To access latest log: tail -F /tmp/agents_log/agent.latest.log Running agent basic_search_agent, type exit to exit. user:
  2. 次のメッセージを入力します。

    what are some new movies that have been released in the past month in India?

    出力例(実際のものとは異なる場合があります):

    [google_search_agent]: Here are some movies that have been released in India in the past month (August-September 2025): * **Param Sundari** Released on 29 August 2025. * **Ek Chatur Naar** Released on 12 September 2025. * **Jolly LLB 3** Released on 19 September 2025. * **Ajey: The Untold Story of a Yogi** Released on 19 September 2025. * **Antha 7 Naatkal** Released on Sep 25 2025.
  3. コマンドライン インターフェースとのチャットが終了したら、次のユーザー プロンプトで exit と入力して、チャットを終了します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 コマンドライン インターフェースを使用してエージェントとチャットする

タスク 6. マルチエージェントの例をプレビューする

マルチエージェント システムの構築については、ラボ「ADK を使用してマルチエージェント システムを構築する」で詳しく説明しますが、マルチエージェント機能は Agent Development Kit のエクスペリエンスの中核であるため、ここで 1 つのマルチエージェント システムを試してみましょう。

このエージェント システムは、LLM によって生成された回答の事実に基づくグラウンディングを評価し、向上させます。これには、次のものが含まれます。critic_agent: 自動ファクト チェッカーとして機能します。reviser_agent: 検証済みの調査結果に基づいて不正確な点を修正するために、必要に応じて回答を書き換えます。

このエージェントを試すには:

  1. このマルチエージェント システムのコードを確認するには、Cloud Shell エディタのファイル エクスプローラを使用して、ディレクトリ adk_project/llm_auditor に移動します。

  2. llm_auditor ディレクトリで、agent.py ファイルを選択します。

  3. このマルチエージェントの例で注目すべき点をいくつか紹介します。

    • SequentialAgent クラスをインポートして使用しています。これは、ユーザーの順番を待たずに会話の制御を 1 つのエージェントから次のエージェントに順番に渡すワークフロー クラスの例です。エージェントを実行すると、ユーザーの順番を待たずに、critic_agentreviser_agent の両方からの回答がこの順序で表示されます。
    • これらのサブエージェントはそれぞれ、sub_agents ディレクトリ内の独自のディレクトリからインポートされます。
    • サブエージェントのディレクトリには、以前にディレクトリ構造で確認した __init__.py ファイルと agent.py ファイルに加えて、prompt.py ファイルがあります。このファイルは、完全で適切に構造化されたプロンプトを agent.py ファイルにインポートする前に保存して編集するための専用の場所を提供します。
  4. このエージェントの .env ファイルを作成し、Cloud Shell ターミナルで次のコマンドを実行して開発 UI を再度起動します。

    cd ~/adk_project cat << EOF > llm_auditor/.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}}} MODEL=gemini-2.5-flash EOF adk web 注: 前回の adk web セッションをシャットダウンしていない場合、デフォルトのポート 8000 がブロックされますが、たとえば adk web --port 8001 を使用して新しいポートで Dev UI を起動できます。
  5. ターミナル出力の http://127.0.0.1:8000 リンクをクリックします。新しいブラウザタブが開き、ADK 開発 UI が表示されます。

  6. 左側の [Select an agent] プルダウンから、llm_auditor を選択します。

  7. 次の誤った文で会話を開始します。

    Double check this: Earth is further away from the Sun than Mars.
  8. チャットエリアにエージェントからの 2 つの回答が表示されます。

    • 1 つ目は、Google 検索によるファクト チェックに基づいて説明の真実性を確認する critic_agent からの詳細な回答。
    • 2 つ目は、reviser_agent からの短い修正文。誤った入力文の修正版("Earth is closer to the Sun than Mars." など)が含まれます。
  9. 各回答の横にあるエージェント アイコン(agent_icon)をクリックして、その回答のイベントパネルを開きます(または、[Events] パネルで対応する番号付きのイベントを見つけて選択します)。イベントビューの上部には、このマルチエージェント システムのエージェントとツールの関係を視覚化したグラフが表示されます。この回答を担当したエージェントがハイライト表示されます。

  10. コードをさらに詳しく調べるか、開発 UI で他のファクト チェックを行ってみます。別の例を試してみましょう。

    Q: Why is the sky blue? A: Because the sky reflects the color of the ocean.
  11. 会話をリセットする場合は、ADK 開発 UI の右上にある [+ New Session] リンクを使用して会話を再び開始します。

  12. このエージェントへの質問が完了したら、ブラウザタブを閉じ、ターミナルで Ctrl + C キーを押してサーバーを停止します。

人間参加型パターン

この例では SequentialAgent ワークフロー エージェントを使用していますが、このパターンは人間参加型パターンと考えることができます。SequentialAgent がシーケンスを終了すると、会話は親(この例では llm_auditor)に戻り、ユーザーから新しい入力ターンを取得してから、会話を他のエージェントに渡します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 マルチエージェントの例をプレビューする

お疲れさまでした

このラボでは、次のことを学びました。

  • Agent Development Kit の主な機能
  • ADK の基本コンセプト
  • ADK のプロジェクト ディレクトリの構造
  • ADK のエージェントの最も基本的なパラメータ(モデル名とツールの指定方法など)
  • ADK のブラウザ UI の機能
  • エージェントの出力スキーマを制御する方法
  • エージェントを 3 つの方法(ブラウザ UI、プログラム、CLI チャット インターフェース)で実行する方法

次のステップ

Agent Development Kit を使用してエージェントを構築、デプロイする方法について詳しくは、以下のラボをご覧ください。

  • ツールで ADK エージェントを強化する
  • ADK を使用してマルチエージェント システムを構築する
  • ADK エージェントを Agent Engine にデプロイする

ADK の詳細については、ドキュメントと GitHub リポジトリをご覧ください。

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

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

マニュアルの最終更新日: 2025 年 8 月 4 日

ラボの最終テスト日: 2025 年 8 月 4 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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