Install ADK and set up your environment

進行状況を確認

/ 25

Explore the ADK agent

進行状況を確認

/ 25

Deploy the Agent as an A2A Server

進行状況を確認

/ 25

Enable another ADK agent to call the agent remotely

進行状況を確認

/ 25

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
注: 一貫性のある高パフォーマンスなエクスペリエンスを提供するため、このラボでは一部のモデル リクエストに対してキャッシュされた応答が提供される場合があります。

GENAI120

Google Cloud セルフペース ラボ

概要

Agent2Agent(A2A)プロトコルは、AI の分野における重要な課題に対処します。その課題とは、さまざまな企業がさまざまなフレームワークを使用して構築し、個別のサーバー上で実行される生成 AI エージェントが、単なるツールとして動作するだけでなく、効果的なコミュニケーションとコラボレーションを行うことを可能にするというものです。A2A は、エージェント向けに共通言語を提供し、より相互接続性が高く、強力で革新的な AI エコシステムを育成することを目的としています。

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

  • 標準化された通信: HTTP(S) 上での JSON-RPC 2.0。
  • エージェントの発見: エージェント カードにエージェントの機能と接続情報が記載されているため、エージェントは互いに発見して、互いの機能について知ることができます。
  • リッチデータ交換: テキスト、ファイル、構造化された JSON データを処理します。
  • 柔軟なインタラクション: 同期されたリクエスト / レスポンス、ストリーミング(SSE)、非同期のプッシュ通知をサポートします。
  • エンタープライズ対応: セキュリティ、認証、オブザーバビリティを考慮して設計されています。

目標

このラボでは、次のタスクの実行方法について学びます。

  • 環境を設定して Agent Development Kit(ADK)をインストールする。
  • ADK エージェントを A2A サーバーとしてデプロイする。
  • A2A エージェントの機能が記述された JSON エージェント カードを準備する。
  • デプロイした A2A エージェントのエージェント カードを別の ADK エージェントが読み取り、サブエージェントとして使用できるようにする。

設定と要件

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

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、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 のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

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

このラボ環境では、Vertex AI APICloud Run 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. ペインの上部にある [エディタを開く](鉛筆アイコン 編集(鉛筆)アイコン)をクリックしてファイルを表示します。
  6. 左側のナビゲーション メニューの上部にあるエクスプローラ アイコン(エクスプローラ アイコン)をクリックして、ファイル エクスプローラを開きます。
  7. [Open Folder] ボタンをクリックします。
  8. 表示された [Open Folder] ダイアログで [OK] をクリックし、受講者アカウントのホームフォルダを選択します。
  9. 画面の右側に表示される追加のチュートリアルや Gemini のパネルを閉じると、コードエディタのウィンドウをより広く使用できます。
  10. このラボの残りの部分では、このウィンドウを Cloud Shell エディタと Cloud Shell ターミナルを備えた IDE として使用できます。

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

  • Cloud Shell ターミナルで次のコードを実行して、このラボのコードをダウンロードし、Agent Development Kit(ADK)やその他の要件をインストールします。

    gcloud storage cp -r gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/* . export PATH=$PATH:"/home/${USER}/.local/bin" python3 -m pip install --upgrade google-adk[a2a]==1.31.0 google-genai

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ADK をインストールして環境を設定する。

タスク 2. リモートで利用可能にする予定の ADK エージェントの詳細を確認する

このラボでは、あなたはスタジアムのメンテナンス会社である Cymbal Stadiums で働いているとします。最近のプロジェクトの一環として、あなたはブランド ガイドラインに沿ってイラストを作成できる画像生成エージェントを開発しました。現在、組織内の複数のチームがこのエージェントを使用したいと考えています。

多くのエージェントがサブエージェントとして使用できるようにコードをコピーすると、それらすべてのコピーを維持していくことや改良を加えていくことは非常に困難になります。

代わりに、このエージェントを A2A サーバーでラップされたエージェントとして 1 回だけデプロイし、他のチームのエージェントがそれを組み込めるようにするという方法が可能です。この場合、他のチームのエージェントは、リモートでクエリを行うという形になります。

  1. Cloud Shell エディタのファイル エクスプローラ ペインで、adk_and_a2a/illustration_agent ディレクトリに移動します。このディレクトリには、リモートで利用可能にする予定の ADK エージェントが含まれています。このディレクトリをクリックして開きます。

  2. このディレクトリの agent.py ファイルを開き、# Tools というラベルの付いたセクションまでスクロールします。

  3. このエージェントがツールとして使用する generate_image() 関数を見つけます。この関数は、プロンプトを受け取り、2 段階のプロセスを実行します。まず、Google Gen AI SDK を使用して generate_content() を呼び出します。このレスポンスで生の画像データが直接返されます。次に、この関数は Cloud Storage ライブラリを使用して、これらの画像バイトを Google Cloud Storage バケットにアップロードします。最後に、このツールは新しく作成された画像ファイルの URL を返します。

  4. root_agent に提供される instruction は、会社のブランド ガイドラインに沿った画像生成プロンプトを使用するようエージェントに具体的な指示を提供します。たとえば、次のようなことを指定します。

    • 具体的なイラスト スタイル:(コーポレート メンフィス
    • カラーパレット(夕暮れのグラデーションの上に紫と緑)
    • スタジアム、スポーツ、メンテナンスの画像例(スタジアムのメンテナンス会社であるため)
  5. 実際に動作を確認するには、まず .env ファイルを作成して、ADK エージェントが必要とする環境変数を設定する必要があります。Cloud Shell ターミナルで次のコマンドを実行して、このディレクトリにこのファイルを書き込みます。

    cd ~/adk_and_a2a cat << EOF > illustration_agent/.env GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} GOOGLE_CLOUD_LOCATION=global MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}} IMAGE_MODEL={{{project_0.startup_script.gemini_flash_image_model_id | gemini_flash_image_model_id}}} EOF
  6. 次のコマンドを実行して、このラボで使用している別のエージェント ディレクトリに .env ファイルをコピーします。

    cp illustration_agent/.env slide_content_agent/.env
  7. エージェントが画像の署名付き URL を作成できるようにするには、専用のサービス アカウントの権限を借用する必要があります。次のコマンドを実行して、権限借用によりアプリケーションのデフォルト認証情報を構成します。

    gcloud auth application-default login \ --impersonate-service-account=illustration-agent-sa@{{{project_0.project_id|YOUR_GCP_PROJECT_ID}}}.iam.gserviceaccount.com
  8. Cloud Shell ターミナルで、個人アカウントで認証することを確認するメッセージが表示されます。「Y」(「はい」の意味)と入力して Enter キーを押します。

  9. 提供されたリンクをクリックし、Qwiklabs 受講者アカウントを選択して認証します。

  10. 認証が完了すると、認証コードが表示されます。[コピー] ボタンを使用してコードをコピーし、Cloud Shell ターミナルに戻ります。

  11. コピーしたコードを Cloud Shell ターミナルに貼り付けて、Enter キーを押します。

  12. Cloud Shell ターミナルで次のコマンドを実行して、Agent Development Kit 開発 UI を起動します。

    adk web --allow_origins "regex:https://.*\.cloudshell\.dev"

    出力

    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)
  13. ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力の下部にある http://127.0.0.1:8000 リンクをクリックします。

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

  15. ADK 開発 UI タブで、左側にある [Select an app] プルダウンから [illustration_agent] を選択します。

  16. 人材募集のプレゼン資料で使用するようなテキストを使用して、エージェントに対してプロンプトを与えます。

    By supporting each other, we get big things done!
  17. 1~2 分後に、エージェントは生成したプロンプトと画像のプレビューを返します。

    出力例

    レスポンスと生成画像。

  18. エージェントに指示したプロンプトでは、スポーツ、スタジアム、メンテナンスの仕事については言及しませんでした。しかし、エージェントはテキストとブランド ガイドラインを考慮し、それらを組み合わせて、画像生成モデル向けのプロンプトを作成しました。

    ベース エージェントの確認が終わったら、ブラウザタブを閉じます。

  19. Cloud Shell ターミナルに戻り、Ctrl+C キーを押してサーバーを停止します。

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

タスク 3. エージェントを A2A サーバーとしてデプロイする

このタスクでは、このエージェントをリモート A2A エージェントとしてデプロイする手順について説明します。A2A エージェントは、エージェント カードを公開することで、自身とその機能を提示します。

  1. 次のコマンドを実行して、agent.json ファイルを作成します。

    cat << EOF > illustration_agent/agent.json { "name": "illustration_agent", "description": "An agent designed to generate branded illustrations for Cymbal Stadiums.", "defaultInputModes": ["text/plain"], "defaultOutputModes": ["application/json"], "skills": [ { "id": "illustrate_text", "name": "Illustrate Text", "description": "Generate an illustration to illustrate the meaning of provided text.", "tags": ["illustration", "image generation"] } ], "url": "https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app/a2a/illustration_agent", "capabilities": {}, "version": "1.0.0" } EOF
  2. agent.json ファイル内の JSON の内容を調べます。エージェントの namedescription が指定されており、いくつかの skills が特定されていることに注目してください。また、このエージェントを呼び出すための url も指定されています。

    このラボの手順に沿ってエージェントをデプロイすると、エージェントの url は Cloud Run サービスの URL になります。

    skills と意味は似ていますが、パラメータ capabilities はストリーミングなどの機能を示すために予約されています。

  3. 次のコマンドを実行して、illustration_agent ディレクトリに requirements.txt ファイルを作成します。

    cat << EOF > illustration_agent/requirements.txt google-adk[a2a]==1.31.0 EOF
  4. 次のコマンドでは、adk deploy cloud_run--a2a フラグを指定して、エージェントを A2A サーバーとして Cloud Run にデプロイします。

    adk deploy cloud_run \ --project {{{project_0.project_id| YOUR_GCP_PROJECT_ID}}} \ --region {{{project_0.default_region| GCP_LOCATION}}} \ --service_name illustration-agent \ --a2a \ illustration_agent \ -- \ --service-account=illustration-agent-sa@{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}.iam.gserviceaccount.com \ --set-env-vars="GOOGLE_CLOUD_LOCATION=global"
  5. 認証されていないレスポンスを許可するよう求められたら、「Y」と入力し、Enter キーを押します。

    エージェントのデプロイ中に、コマンドに渡される次の引数を確認します。

    • --project--region は、Cloud Run サービスがデプロイされるプロジェクトとリージョンを定義します。
    • --service_name は、Cloud Run サービスの名前を定義します。
    • --a2a フラグは、A2A エージェントとしてホストする必要があることを示します。つまり、エージェントは、ADK エージェントと A2A エージェントをブリッジするクラスである A2aAgentExecutor でラップされます。このクラスは、A2A プロトコルのタスクとメッセージの言語を、ADK Runner のイベントの言語に変換します。
    • -- 区切り記号は、基盤となる gcloud run deploy コマンドにフラグを直接渡すために使用されます。-- の後に指定されているフラグは、ADK ツールによって無視され、Google Cloud CLI によって直接処理されます。ここでは、専用のサービス アカウントを割り当て、最初のデプロイで GOOGLE_CLOUD_LOCATION 環境変数を設定するために使用されます。
    注: デプロイには 5~10 分ほどかかります。PERMISSION_DENIED エラーが発生した場合は、上記のコマンドをもう一度実行してください。

    想定される出力:

    Dockerfile のビルド、コンテナのデプロイ、サービスのデプロイに関する手順が表示された後、以下の内容が表示されます。

    Service [illustration-agent] revision [illustration-agent-00001-xpp] has been deployed and is serving 100 percent of traffic. Service URL: https://illustration-agent-{{{project_0.startup_script.project_number|Project Number}}}.{{{project_0.default_region| GCP_LOCATION}}}.run.app

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

タスク 4. 別の ADK エージェントがこのエージェントをリモートで呼び出せるようにする

このタスクでは、2 番目の ADK エージェントが、イラスト生成エージェントの機能を特定してリモートで呼び出せるようにします。この 2 番目のエージェントは、スライドのコンテンツを作成するタスクを担います。見出しと数文からなる本文を書き、イラスト生成エージェントに転送して、そのテキストを表す画像を生成してもらいます。

  1. Cloud Shell ターミナルで、次のコマンドを実行して、エージェント カードの JSON ファイルを adk_and_a2a ディレクトリにコピーし、illustration_agent であることを表すようにファイル名を変更します。

    cp illustration_agent/agent.json illustration-agent-card.json
  2. Cloud Shell エディタのファイル エクスプローラ ペインで、adk_and_a2a/slide_content_agent ディレクトリに移動し、agent.py ファイルを開きます。

    このエージェントの instruction を確認します。このエージェントは、ユーザーからスライドの内容を受け取り、それを基に見出しと本文を作成して、その後 A2A エージェントにスライドのイラストの生成を依頼する流れになっていることがわかります。

  3. # Agents ヘッダー(16 行目辺り)の下に次のコードを貼り付け、ADK の RemoteA2aAgent クラスを使用してリモート エージェントを追加します。

    illustration_agent = RemoteA2aAgent( name="illustration_agent", description="Agent that generates illustrations.", agent_card=( "illustration-agent-card.json" ), )
  4. 同じファイルの # Add the sub_agents parameter below の下に次のパラメータを追加して、illustration_agentroot_agent のサブエージェントとして追加します。

    sub_agents=[illustration_agent]
  5. ファイルを保存します。

  6. Cloud Shell ターミナルから次のコマンドを実行して UI を起動します。

    cd ~/adk_and_a2a adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
  7. ターミナル出力の http://127.0.0.1:8000 リンクをもう一度クリックして、ADK 開発 UI を起動します。

  8. ADK 開発 UI ブラウザタブで、左側にある [Select an app] プルダウンから [slide_content_agent] を選択します。

  9. 次のようなスライドのアイデアを記述して、エージェントに対してプロンプトを入力します。

    Create content for a slide about our excellent on-the-job training.

    次の出力が表示されます。

    • slide_content_agent 自体が作成した見出しと本文。
    • transfer_to_agent の呼び出し。illustration_agent への転送を示します。
    • 新しい画像を含む illustration_agent からのレスポンス。

    想定される出力:

    エージェントがテキストを生成し、illustration_agent に転送して画像を生成してもらいます。

    [進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 別の ADK エージェントがエージェントをリモートで呼び出せるようにする。

お疲れさまでした

このラボでは、A2A プロトコルを使用したクロス エージェント コラボレーションの力を実証しました。ローカル ADK エージェントを個別のマイクロサービスとして Cloud Run にデプロイし、標準化されたエージェント カードを使用してその機能を詳細に確認しました。その後、独立したセカンダリ エージェントからタスクを安全に引き継ぎました。これらの基礎的なスキルを身につければ、分散したチーム間でスケーラブルなマルチ エージェント エコシステムの構築を開始できます。

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

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

マニュアルの最終更新日: 2026 年 4 月 20 日

ラボの最終テスト日: 2026 年 4 月 20 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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

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