始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Run the agent using the ADK's Web UI
/ 40
Run an agent programmatically
/ 40
Preview a multi-agent example
/ 20
Run the agent using the ADK's Web UI
/ 40
Run an agent programmatically
/ 40
Preview a multi-agent example
/ 20
複雑なエージェント アプリケーションの構築には、複数の専門的なモデルの調整、ツール統合の管理、実行トレースのデバッグが必要になることが多く、これらはすべて手作業で集中的に行う必要があり、スケーリングが困難です。
Agent Development Kit(ADK)は、マルチエージェント システムの構築、テスト、デプロイを行うためのモジュール型フレームワークを提供することで、これらの課題を解決します。これにより、専門的なエージェントを階層構造に構成したり、事前構築済みのツールまたはカスタムのツールを装備したり、予測可能なパイプラインならびに LLM による動的なルーティングの両方を使用するワークフローを連携させたりできます。
このラボでは、ADK を使用してリサーチ アシスタントを構築します。このアシスタントは、
このラボでは、次のタスクの実行方法について学びます。
エージェント アプリケーションを構築する開発者にとって、ADK には、次のような重要なメリットがあります。
他の SDK でもモデルのクエリは可能ですが、ADK は複数のモデル間の複雑な調整を処理する高レベルのフレームワークを提供します。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
このタスクでは、エージェント アプリケーションの構築とテストを行うための環境を準備します。そのためには、Cloud Shell エディタを構成し、プロジェクトを初期化し、Agent Development Kit(ADK)をインストールします。
このラボ環境では、Vertex AI API と Telemetry API がすでに有効になっています。ご自身のプロジェクトでは、モデルに対してクエリを行ったり、テレメトリー データを Cloud Logging に送信したりするために、これらの API を有効にする必要があります。
Google Cloud コンソールのタイトルバーで、[Cloud Shell をアクティブにする]()をクリックします。
[続行] をクリックします。
Cloud Shell を承認するよう求められたら、[承認] をクリックします。
Cloud Shell ターミナル アクションバーで、[新しいウィンドウで開く]()をクリックします。
Cloud Shell エディタのアクションバーで [エディタを開く]()をクリックして、ファイルを表示します。
左側のペインで [Explorer]()をクリックして、ファイル エクスプローラを開きます。
[Open Folder] をクリックします。
表示された [Open Folder] ダイアログで [OK] をクリックします。これによって、Google Skills 受講者アカウントのホームフォルダが選択されます。
画面の右側に表示される追加のチュートリアルや Gemini のパネルを閉じると、コードエディタのウィンドウをより広く使用できます。
このラボの残りの部分では、このウィンドウを Cloud Shell エディタと Cloud Shell ターミナルを備えた IDE として使用できます。
次のコマンドを Cloud Shell ターミナルに貼り付けて、このラボのコードを含むプロジェクト ディレクトリを Cloud Storage バケットからコピーします。
Cloud Shell ターミナルで次のコマンドを実行します。これにより、ユーザーのローカル環境を含めるように PATH 環境変数が更新され、ロギングとテレメトリー用の OpenTelemetry(OTel)プラグインとその他のラボ要件が含まれる ADK がインストールされます。
エージェント、ツール、オーケストレーション パターンなど、ADK の基本的なコンセプトと構成要素を理解し、効果的かつ柔軟なマルチエージェント システムの設計に使用される原則を学びます。
Session)のコンテキストを処理します。これには、履歴(Events)と、その会話のエージェントのワーキング メモリ(State)が含まれます。次に、ADK プロジェクトの標準レイアウトを確認して、これらのコンセプトが実際にどのように整理されているかを見てみましょう。
Cloud Shell エディタのファイル エクスプローラ ペインで adk_project をクリックしてディレクトリを開きます。
adk_project にある 4 つのエージェント ディレクトリ(adk_utils、app_agent、llm_auditor、my_google_search_agent)に注目してください。これらの各ディレクトリは、別個のエージェントを表します。エージェントをプロジェクト ディレクトリ内の独自のディレクトリに分離することにより、エージェントが整理されます。また、この分離によって ADK はエージェントの存在を把握できるようになります。
my_google_search_agent をクリックしてエージェント ディレクトリを開きます。
adk_project/my_google_search_agent ディレクトリ内であることを確認してください。init.py をクリックして内容を表示します。このディレクトリには agent.py ファイルも含まれています。
init.py ファイルに含まれているのは 1 行だけであり、agent.py ファイルからインポートするだけです。ADK はこれを使用して、このディレクトリをエージェント パッケージとして識別します。
agent.py をクリックしてコードを表示します。Google 検索ツールを備えたシンプルなエージェントのコードです。
google.adk からのインポート(Agent クラスと tools モジュールの google_search ツール)。インポートした google_search ツールを使用するには、そのツールをエージェントに渡す必要があります。agent.py ファイルの 34 行目付近(Agent オブジェクト作成の最後であることが示されている)に次の行を貼り付けます。
agent.py ファイルを保存します。
ツールを使用すると、エージェントはテキストの生成以外の操作を実行できます。このケースでは、エージェントは google_search ツールを使用することにより、トレーニング データからすでに得ていた情報よりも詳細な情報を取得すべきなのはどのような場合かを判断できます。検索クエリを作成し、Google 検索を使用してウェブを検索し、その結果に基づいてユーザーに回答することができます。
モデルが取得した追加情報に基づいて回答を生成することを「グラウンディング」と呼び、このプロセス全体を「検索拡張生成」または「RAG」と呼びます。
ADK には、エージェントの開発とテストに役立つようローカルで実行するように設計された開発 UI が含まれています。各エージェントが何をしているか、複数のエージェントがどのように相互作用しているかの可視化に役立ちます。このタスクでは、このインターフェースについて学習します。
注: エージェントを実行する場合、ADK は誰がモデル API 呼び出しをリクエストしているかを知る必要があります。この情報は、次の 2 つの方法で指定できます。
このラボでは、2 番目のアプローチを採用して、Vertex AI プロジェクトで認証を行います。
Cloud Shell ターミナルで次のコマンドを実行します。これにより、環境変数を設定する行が .env ファイルに書き込まれます。これらの環境変数は、使用するプロジェクトとグローバル エンドポイントの使用をエージェントに指示します。
これらの変数は次の役割を果たします。
GOOGLE_GENAI_USE_VERTEXAI=TRUE は、Gemini API キー認証ではなく、Vertex AI を認証に使用することを示します。GOOGLE_CLOUD_PROJECT と GOOGLE_CLOUD_LOCATION は、モデル呼び出しを関連付けるプロジェクトとロケーションを指定します。MODEL は必須ではありませんが、ここに保存することによって、別の環境変数として読み込むことができるようになります。これは、さまざまなデプロイ環境でさまざまなモデルを試すのに便利な方法です。OTEL_SERVICE_NAME、OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED、OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT は、エージェントから ADK 固有のテレメトリー データを収集するための OpenTelemetry(OTel)の構成に使用されます。ADK 開発 UI と CLI チャット インターフェースは、.env ファイルから構成を自動的に読み込みます。ファイルが存在しない場合は、名前が一致するシステム環境変数が使用されます。
Cloud Shell ターミナルで、次のコマンドを実行して、エージェント サブディレクトリがある adk_project ディレクトリに移動します。
次のコマンドといくつかの便利なフラグを使用して、ADK 開発 UI を起動します。このコマンドは次のことを行います。
出力
現在実行されている ADK 開発 UI の URL が表示されます。
ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力にある http://127.0.0.1:8000 リンクをクリックします。これにより、Cloud Shell インスタンスでローカルに実行されているこのアプリにプロキシ経由でリンクされます。結果として、実行されている開発 UI が新しいタブに表示されます。
左側の [Select an agent] メニュー オプションから my_google_search_agent を選択します。
Google 検索ツールを使用するようにエージェントに促すため、次の質問を入力します。
エージェントが Google 検索を使用してリアルタイム情報を取得し、事前トレーニング済みモデルのナレッジ カットオフを回避していることに注目してください。
左側のペインで、デフォルトで [Trace] タブが表示されていることに注意してください。直前のクエリテキスト(I know the Summer olympics are happening in 2028, please tell me which countries are participating and what events will be held.)をクリックすると、クエリのさまざまな部分の実行にかかった時間のトレースが表示されます。
これを使用して、ツール呼び出しを含むより複雑な実行をデバッグし、さまざまなプロセスが回答のレイテンシにどのように影響するかを把握できます。
ウィンドウのチャット ディスカッション セクションに戻り、右側のペインにあるエージェントの回答の横のエージェント アイコン()をクリックして、エージェントが返したイベントを調べます。このイベントには、ユーザーに返された
content と、回答の基になった検索結果の詳細を示す groundingMetadata が含まれています。
ADK 開発 UI の確認が終わったら、このブラウザタブを閉じます。
Cloud Shell ターミナルが表示されているブラウザタブに戻り、ターミナルのペインをクリックします。
Ctrl+C キーを押してウェブサーバーを停止します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ADK 開発 UI はテストとデバッグには適していますが、本番環境での複数のユーザーによるエージェントの利用には適していません。
エージェントを大規模なアプリケーションの一部として実行するには、前のタスクでウェブアプリが処理した agent.py スクリプトにいくつかの追加コンポーネントを含める必要があります。次の手順に沿って、これらのコンポーネントを含むスクリプトを開き、確認します。
ディレクトリに .env ファイルがない場合に、すべてのエージェントが使用する環境変数を設定できます。Cloud Shell ターミナルで次のコマンドを実行して、環境変数をエクスポートします。
Cloud Shell エディタのファイル ブラウザで、adk_project/app_agent をクリックします。
このディレクトリ内の agent.py ファイルをクリックします。
このエージェントは、アプリケーションの一部として実行されるように設計されています。agent.py のコメント付きコードを読み、コード内の次のコンポーネントに特に注目してください。
InMemoryRunner()(68 行目付近): エージェント実行機能の管理。このランナーは、ユーザーのクエリを受け取って適切なエージェントに渡し、エージェントの回答イベントを受け取って、呼び出し元のアプリケーションまたは UI に返し、次のイベントをトリガーする役割を担うコードです。詳しくは、ADK のイベントループに関するドキュメントをご覧ください。runner.session_service.create_session()(71 行目付近)は、会話履歴と共有状態の機能です。セッションを使用すると、エージェントは状態を維持し、アイテムのリスト、タスクの現在のステータス、その他の「現在の」情報を記憶できます。このクラスは、簡略化のためにローカル セッション サービスを作成しますが、本番環境ではデータベースで処理できます。types.Content() と types.Part()(78 行目と 79 行目付近): 構造化されたマルチモーダル メッセージ機能。エージェントには、単純な文字列ではなく、複数の Part で構成される Content オブジェクトが渡されます。これにより、テキストやマルチモーダル コンテンツなどの複雑なメッセージを特定の順序でエージェントに渡すことができます。スクリプトには、エージェントに "What is the capital of France?" と尋ねるハードコードされたクエリ(93 行目付近)が含まれています。
Cloud Shell ターミナルで次のコマンドを実行して、このエージェントをプログラマティックに実行します。
選択された出力:
次のように、エージェントの特定の入力スキーマや出力スキーマを定義することもできます。
28 行目付近に、Pydantic のスキーマクラスである BaseModel と Field のインポート ステートメントを追加して、スキーマクラスを定義します。
62 行目付近の root_agent の Agent 定義で、上記で定義した CountryCapital スキーマを使用するように output_schema パラメータを設定します。
エージェント スクリプトを再度実行して、output_schema に従った回答を確認します。
選択された出力:
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
コマンドライン インターフェースを使用して、ローカル開発環境でエージェントとチャットすることもできます。これは、エージェントを開発しているときに、簡単なデバッグやテストを行うのにとても便利です。
ウェブ インターフェースと同様に、コマンドライン インターフェースも、エージェントのセッション サービス、アーティファクト サービス、ランナーの作成を処理します。
コマンドライン インターフェースを使用してインタラクティブ セッションを実行するには:
Cloud Shell ターミナルで次のコマンドを実行します。
出力:
次のメッセージを入力します。
出力例(実際のものとは異なる場合があります):
コマンドライン インターフェースとのチャットが終了したら、次のユーザー プロンプトで exit と入力して、チャットを終了します。
このタスクでは、マルチエージェント システムを調べて、ADK の中心的な機能を理解します。
このエージェント システムは、LLM によって生成された回答の事実に基づくグラウンディングを評価し、向上させます。これには次のものが含まれます。
critic_agent: 自動ファクト チェッカーとして機能します。reviser_agent: 検証済みの調査結果に基づいて不正確な点を修正するために、必要に応じて回答を書き換えます。このエージェントを試すには:
Cloud Shell エディタのファイル エクスプローラを使用して、ディレクトリ adk_project/llm_auditor に移動します。
llm_auditor ディレクトリで、agent.py をクリックします。
このマルチエージェントの例で注目すべき点をいくつか紹介します。
SequentialAgent は、ユーザー入力を必要とせずに、エージェント間で会話の制御を順番に渡すワークフロー クラスです。実行すると、critic_agent と reviser_agent が自動的に順番に応答します。sub_agents ディレクトリ内の独自のディレクトリからインポートされます。init.py、agent.py、prompt.py が含まれています。prompt.py を使用して複雑なプロンプトを個別に管理してから、agent.py にインポートします。Cloud Shell ターミナルで次のコマンドを実行します。これにより、前に作成した .env ファイルをコピーしてこのエージェントでも使用できるようにし、ADK 開発 UI を再度起動します。
adk web セッションをシャットダウンしていない場合、デフォルトのポート 8000 がブロックされますが、adk web --port 8001 などを使用して新しいポートで開発 UI を起動できます。ターミナル出力の http://127.0.0.1:8000 リンクをクリックします。新しいブラウザタブが開き、ADK 開発 UI が表示されます。
左側の [Select an agent] メニュー オプションから、llm_auditor を選択します。
次の誤った文で会話を開始します。
チャットエリアにエージェントからの 2 つの回答が表示されます。
critic_agent からの詳細な回答。reviser_agent からの短い修正文。誤った入力文の修正版("Earth is closer to the Sun than Mars." など)が含まれます。イベントビューの上部には、このマルチエージェント システムのエージェントとツールの関係を視覚化したグラフが表示されます。この回答を担当したエージェントがハイライト表示されます。
コードをさらに詳しく調べるか、開発 UI で他のファクト チェックを行ってみます。別の例を試してみましょう。
会話をリセットする場合は、セッションのタイトルバーにある [New Session] をクリックして会話を再開します。
このエージェントへの質問が完了したら、ブラウザタブを閉じ、ターミナルで Ctrl+C キーを押してサーバーを停止します。
注: この例では SequentialAgent ワークフロー エージェントを使用していますが、このパターンは人間参加型パターンと考えることができます。
SequentialAgent がシーケンスを終了すると、会話は親(この例では llm_auditor)に戻り、ユーザーから新しい入力ターンを取得してから、会話を他のエージェントに渡します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Agent Development Kit(ADK)の基礎的なラボが完了しました。エージェントとツールの中心的なアーキテクチャを分析し、標準化された開発環境を初期化して、動的モデルの依存関係として
ADK について詳しくは、以下のリソースをご覧ください。
adk-docs GitHub リポジトリ adk-docs
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2026 年 4 月 15 日
ラボの最終テスト日: 2026 年 4 月 15 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください
ラボを開始するには、この簡単な手順を完了してください。