Create a data store and search app

進行状況を確認

/ 25

Use a LangChain Tool

進行状況を確認

/ 25

Use a function as a custom tool

進行状況を確認

/ 25

Use a Google-provided tool

進行状況を確認

/ 25

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

GENAI105

概要

このラボでは、Agent Development Kit エージェントでツールを使用する方法について説明します。

Google 検索や Vertex AI Search などの Google が提供する強力なツールから、LangChain のエコシステムで利用できる豊富なツールまで、さまざまなツールの使用を開始することができます。

さらに、関数から独自のツールを作成するには、適切な docstring を記述するだけで済みます。

このラボでは、ラボ「Agent Development Kit(ADK)を使ってみる」で説明されている ADK の基本を理解していることを前提としています。

目標

このラボでは、ADK エージェントが利用できるツールのエコシステムについて学びます。また、カスタムツールとしてエージェントに機能を提供する方法も学びます。

このラボを修了すると、次のことができるようになります。

  • Google または LangChain の事前構築済みのツールをエージェントに提供する
  • エージェント ツールの関数を作成する際に、構造化された docstring と型指定が重要であることについて説明する
  • エージェント用の独自のツール関数を作成する

設定と要件

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

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

Agent Developer Kit でのツールの使用

ツールを効果的に活用できることが、インテリジェント エージェントと基本的なモデルの真の違いです。ツールは、関数やメソッドなどのコードブロックであり、データベースとのやり取り、API リクエストの作成、他の外部サービスの呼び出しなどの特定のアクションを実行します。

ツールを使用することで、エージェントは他のシステムとやり取りし、コアとなる推論機能や生成機能を超えたアクションを実行できます。これらのツールはエージェントの LLM とは独立して動作するため、ツール自体が自動的に推論能力を持つわけではないことに注意することが重要です。

Agent Development Kit では、デベロッパーにさまざまなツール オプションが提供されます。

  • 事前構築済みツール: Google 検索、コード実行、検索拡張生成(RAG)ツールなど、すぐに使用できる機能。
  • サードパーティ ツール: LangChain などの外部ライブラリのツールをシームレスに統合。
  • カスタムツール: 言語固有の構成要素と Agents-as-Tools を使用して、特定の要件に合わせてカスタマイズされたツールを作成する機能。また、SDK は長時間実行関数ツールを通じて非同期機能も提供します。

このラボでは、これらのカテゴリについて確認し、それぞれのタイプの 1 つを実装します。

使用可能な Google の事前構築済みツール

Google は、エージェント向けの便利なツールをいくつか提供しています。次のようなものがあります。

Google 検索google_search): エージェントが Google 検索を使用してウェブ検索を実行できるようにします。エージェントのツールに google_search を追加するだけです。

コード実行built_in_code_execution): このツールを使用すると、エージェントはコードを実行して、計算、データ操作、または他のシステムとのプログラムによるやり取りを行うことができます。事前構築済みの VertexCodeInterpreter または BaseCodeExecutor インターフェースを実装する任意のコード実行ツールを使用できます。

検索retrieval): さまざまなソースから情報を取得するように設計されたツールのパッケージ。

Vertex AI Search ツールVertexAiSearchTool): このツールは Google Cloud の Vertex AI Search サービスと統合されており、エージェントが AI アプリケーションのデータストアを検索できます。

タスク 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. ペインの上部にある [エディタを開く](鉛筆アイコン 編集 鉛筆アイコン)をクリックしてファイルを表示します。
  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_tools .
  2. Cloud Shell ターミナルで次のコマンドを実行して、PATH 環境変数を更新し、ADK をインストールして、このラボの追加要件をインストールします。

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

タスク 2. 独自のデータで回答をグラウンディングするために使用する検索アプリを作成する

後のタスクでは、Google が提供する Vertex AI Search ツールを使用して、AI Applications のデータストアにある独自のデータに基づいて回答をグラウンディングします。アプリのデータストアはデータの取り込みに少し時間がかかるため、ここで設定し、後のタスクで回答をグラウンディングするために使用します。

  1. Cloud コンソールを表示しているブラウザタブで、コンソールの上部で「AI Applications」を検索して移動します(このタブの下部または右側に表示されている Cloud Shell ターミナルまたはチュートリアル パネルは閉じて構いません)。

  2. 利用規約のチェックボックスをオンにして、[続行して API を有効にする] をクリックします。

  3. 左側のナビゲーション メニューで、[データストア] を選択します。

  4. [+ データストアを作成] を選択します。

  5. [Cloud Storage] カードを見つけて、[選択] をクリックします。

  6. [非構造化データをインポート(ドキュメント検索と RAG)] で [ドキュメント] を選択します。

  7. サンプル ドキュメントは Cloud Storage にアップロードされています。これらのドキュメントは、Persephone という架空の新惑星の発見に関連したものです。このケースでは、モデルがトレーニング中にこの惑星について何も学習できないように、架空の惑星を使用しています。

    GCS パスには、-bucket/planet-search-docs と入力します。

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

  9. [ロケーション] は [グローバル] のままにします。

  10. [データストア名] に「Planet Search」と入力します。

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

  12. 料金モデルの選択を求められたら、デフォルトの選択をそのままにして [作成] をクリックします。

  13. 左側のナビゲーションで [アプリ] をクリックします。

  14. [新しいアプリを作成] をクリックします。

  15. [カスタム検索(一般)] アプリのカードを見つけて、[作成] をクリックします。

  16. アプリに「Planet Search」という名前を付けます

  17. [会社名] に「Planet Conferences」と入力します。

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

  19. Planet Search データストアの横にあるチェックボックスをオンにします。

  20. デフォルトの料金条件のままにして、[作成] を選択します。

  21. アプリが作成されたら、左上の [AI Applications] をクリックして、アプリのダッシュボードに戻ります。

  22. [アプリ] テーブルに表示されているアプリの ID の値をコピーします。この値は後で必要になるため、テキスト ドキュメントに保存しておきます。

    ここでは、データストアがデータを取り込むまでしばらく待ちます。後ほど、検索アプリをエージェントに提供して回答をグラウンディングします。

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

タスク 3. LangChain コミュニティのサードパーティ ツールを使用する

ADK を使用すると、LangChain などのサードパーティの AI フレームワークから利用できるツールを使用できます。LangChain コミュニティは、多数のデータソースにアクセスし、さまざまなウェブ プロダクトと統合して、多くのことを実現するために、多数のツール統合を作成しました。ADK 内のコミュニティ ツールを使用すると、誰かがすでに作成したツールを書き直す手間が省けます。

  1. Cloud Shell エディタが表示されているブラウザタブに戻り、左側のファイル エクスプローラを使用して adk_tools/langchain_tool_agent ディレクトリに移動します。

  2. Cloud Shell ターミナルで次のコマンドを実行して、このエージェント ディレクトリの認証の詳細を提供する .env ファイルを作成します。

    cd ~/adk_tools cat << EOF > langchain_tool_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}}} EOF
  3. 次のコマンドを実行して、.env ファイルをこのラボで使用する他のエージェント ディレクトリにコピーします。

    cp langchain_tool_agent/.env function_tool_agent/.env cp langchain_tool_agent/.env vertexai_search_tool_agent/.env
  4. langchain_tool_agent ディレクトリの agent.py ファイルをクリックします。

  5. LangchainTool クラスをインポートしている点に注意してください。これは、Agent Development Kit 内で LangChain ツールを使用できるようにするラッパー クラスです。

  6. agent.py ファイル内の指定された場所に次のコードを追加して、LangChain Wikipedia ツールをエージェントに追加します。これにより、エージェントは Wikipedia で情報を検索できるようになります。

    tools = [ # Use the LangchainTool wrapper... LangchainTool( # to pass in a LangChain tool. # この場合は、ツールの一部として # WikipediaAPIWrapper を必要とする # WikipediaQueryRun ツールを使用しています。 tool=WikipediaQueryRun( api_wrapper=WikipediaAPIWrapper(), handle_tool_error=True, ) ), ]
  1. Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから、次のコマンドを使用して 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)
  2. ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力にある http://127.0.0.1:8000 リンクをクリックします。

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

  4. 左側の [エージェントを選択] プルダウンから、[langchain_tool_agent] を選択します。

  5. エージェントに次のクエリを実行します。

    Who was Grace Hopper?

    出力:

    Langchain Wikipedia ツール

  6. wikipedia ツールが使用されたことを示すエージェントのチャットのふきだしの横にあるエージェント アイコン(agent_icon)をクリックします。

  7. コンテンツには、Wikipedia へのクエリを含む functionCall が含まれています。

  8. タブの上部にある進むボタンをクリックして、次のイベントに移動します。

  9. このイベントを調べると、モデルの回答を生成するために使用された Wikipedia から取得された結果を確認できます。

  10. このエージェントへの質問が終わったら、開発 UI のブラウザタブを閉じます。

  11. Cloud Shell ターミナル パネルを選択し、Ctrl+C キーを押してサーバーを停止します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 LangChain ツールを使用する。

タスク 4. 関数をカスタムツールとして使用する

既製のツールでは特定の要件を完全に満たすことはできない場合、独自のツールを作成できます。これにより、独自のデータベースへの接続や独自のアルゴリズムの実装など、カスタマイズされた機能を実現できます。

新しいツールを作成する最も簡単な方法は、標準形式で記述された docstring を含む標準の Python 関数を作成し、それをツールとしてモデルに渡すことです。このアプローチは、柔軟性と迅速な統合を実現します。

ツールとして使用する関数を作成する際には、いくつかの重要な点に留意する必要があります。

  • パラメータ: 関数は任意の数のパラメータを受け取ることができ、各パラメータは JSON でシリアル化可能な任意の型(文字列、整数、リスト、辞書など)にできます。現在、大規模言語モデル(LLM)はデフォルト値の解釈をサポートしていないため、パラメータにデフォルト値を設定することは避けることが重要です。
  • 戻り値の型: Python 関数ツールの推奨される戻り値の型は辞書です。これにより、Key-Value ペアで回答を構成し、LLM にコンテキストと明確さを提供できます。たとえば、数値のエラーコードを返す代わりに、人が読める説明を含む "error_message" キーを持つ辞書を返します。ベスト プラクティスとして、全体の結果を示す "status" キー(例: "success""error""pending")を戻り値の辞書に含めます。これにより、LLM にオペレーションの状態に関する明確なシグナルを提供します。
  • Docstring: 関数の docstring はツールの説明として機能し、LLM に送信されます。そのため、LLM がツールを効果的に使用する方法を理解するには、適切に記述された包括的な docstring が不可欠です。関数の目的、パラメータの意味、想定される戻り値を明確に説明します。

次の手順に沿って関数を定義し、ツールとして使用します。

  1. Cloud Shell エディタのファイル エクスプローラを使用して、ディレクトリ adk_tools/function_tool_agent に移動します。

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

  3. get_date() 関数と write_journal_entry() 関数には、ADK エージェントがいつどのように使用するかを把握できるように、適切に書式設定された docstring が含まれています。次のようなものがあります。

    • 各関数の機能の明確な説明
    • JSON でシリアル化可能な型で関数の入力パラメータを記述する Args: セクション
    • 関数が返すものを記述する Returns: セクション。推奨されるレスポンス タイプは dict
  4. 関数をエージェントに渡してツールとして使用するには、agent.py ファイルで指定された場所に次のコードを追加します。

    tools=[get_date, write_journal_entry]
  1. 開発 UI を使用してこのエージェントを実行し、そのツールによってツールリクエストとレスポンスを簡単に可視化できることを確認します。Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから次のコマンドを使用して開発 UI を再度実行します(サーバーがまだ実行中の場合は、まず CTRL+C キーを使用して実行中のサーバーを停止してから、次のコマンドを実行して再起動します)。

    adk web --allow_origins "regex:https://.*\.cloudshell\.dev"
  2. ターミナル出力の http://127.0.0.1:8000 リンクをクリックします。

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

  4. 左側の [エージェントを選択] プルダウンから、[function_tool_agent] を選択します。

  5. エージェントとの会話を始めるには、次のように入力します。

    hello
  6. エージェントがあなたの一日について尋ねてきます。一日の出来事を一文で答える(例: 今日は良い一日でした。ADK ラボに取り組みました。)と、日記を書いてくれます。

    出力例:

    ジャーナリング ツールの機能

  7. エージェントに、カスタムツールのリクエストとレスポンスのボタンが表示されていることに注目してください。各イベントをクリックすると、詳細を確認できます。

  8. 開発 UI のタブを閉じます。

  9. Cloud Shell エディタで、日付が付けられた日記ファイルが adk_tools ディレクトリにあります(Cloud Shell エディタのメニューで [表示] > [単語の折り返し] を有効にすると、横スクロールをあまり行わずに全文を表示できます)。

  10. Cloud Shell ターミナル パネルをクリックし、Ctrl+C キーを押してサーバーを停止します。

    ツールとして使用する関数を作成するためのベスト プラクティスは次のとおりです。

    • パラメータは少ない方が良い: パラメータの数を最小限に抑えて複雑さを軽減します。
    • 単純なデータ型を使用する: 可能な場合は、カスタムクラスよりも strint などのプリミティブ データ型を使用します。
    • 意味のある名前を使用する: 関数の名前とパラメータの名前は、LLM がツールを解釈して利用する方法に大きな影響を与えます。関数の目的と入力の意味を明確に反映する名前を選択します。
    • 複雑な関数を分割する: 1 つの update_profile(profile: Profile) 関数ではなく、update_name(name: str)update_age(age: int) などの個別の関数を作成します。
    • 戻り値のステータス: 戻り値の辞書に "status" キーを含めて、全体の結果を示し(例: "success""error""pending")、オペレーションの状態に関する明確なシグナルを LLM に提供します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 関数をカスタムツールとして使用する。

タスク 5. Vertex AI Search をツールとして使用して、独自のデータでグラウンディングする

このタスクでは、Google の組み込みの Vertex AI Search ツールと、先ほど作成した AI Applications データストアを使用して、Agent Development Kit のエージェントで RAG アプリケーションを簡単にデプロイする方法を確認します。

  1. Cloud Shell エディタのタブに戻り、adk_tools/vertexai_search_tool_agent ディレクトリを選択します。

  2. vertexai_search_tool_agent ディレクトリの agent.py ファイルをクリックします。

  3. インポートの最後で指定された場所に VertexAiSearchTool クラスのインポートを追加します。

    from google.adk.tools import VertexAiSearchTool
  4. VertexAiSearchTool がインスタンス化されるコードを更新します。search_engine_id に渡されるパスで、YOUR_PROJECT_ID に更新し、YOUR_SEARCH_APP_ID を前のタスクでコピーした検索アプリ ID に更新します。

  5. エージェント定義で指定された場所に次の行を追加し、エージェントにツールを提供します。

    tools=[vertexai_search_tool]

    データストアが使用できる状態になっていることを確認するには、コンソールの [AI Applications > データストア] ページでデータストアの名前を選択します。

    [アクティビティ] タブと [ドキュメント] タブには、ドキュメントのインポートとインデックス登録のステータスが表示されます。[アクティビティ] タブに [インポートが完了しました] と表示されたら、データストアのクエリを実行する準備が整っています。

  6. Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから、次のコマンドでコマンドライン インターフェースを起動します。変更を加えたときに開発 UI がエージェントを再読み込みするように、--reload_agents フラグを含めます。

    adk web --allow_origins "regex:https://.*\.cloudshell\.dev" --reload_agents 注: 前の adk web セッションをシャットダウンしていない場合は、そのセッションが実行されている Cloud Shell ターミナル パネルを選択し、Ctrl+C キーを押します。以前使用した Cloud Shell ターミナルタブが見つからない場合は、デフォルトのポート 8000 がブロックされますが、adk web --port 8001 を使用して新しいポートで開発 UI を起動できます。
  7. http://127.0.0.1:8000 をクリックして、ADK 開発 UI を開きます。

  8. 左側の [エージェントを選択] プルダウンから、[vertexai_search_tool_agent] を選択します。

  9. Cloud Storage ドキュメントに記載されている架空の惑星について、エージェントに次のように質問します。

    新しい惑星 Persephone は居住に適していますか?

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

    「Persephone の調査: これまでの成果」というドキュメントによると、Persephone には居住可能である可能性を示すいくつかの特徴があります。 - 位置: 恒星の居住可能なゾーン内を周回しています。 - 温度: 平均地表温度は 18°C(64°F)程度と推定されています。 ...

AgentTool を使用して検索ツールを他のツールと統合する

検索ツールには、同じエージェント内で検索ツールと非検索ツールを混在させることができないという実装上の制限があります。この問題を回避するには、AgentTool を使用して検索ツールでエージェントをラップし、そのエージェントをツールとして使用して、他のツールと並行して検索を実行します。

実際に機能していることを確認するには、以下を行います。

  1. adk_tools/vertexai_search_tool_agent/agent.py ファイルが開いていることを確認します。

  2. get_date 関数ツールを含めるように、root_agent の tools パラメータを更新します。

    tools=[vertexai_search_tool, get_date]
  1. ADK 開発 UI で、エージェントに次の質問をします。

    今日は何日ですか?

    想定される出力:

    すべてのツールが検索ツールである場合に複数のツールがサポートされるというメッセージが表示されるエラー。
  2. adk_tools/vertexai_search_tool_agent/agent.py ファイルに戻り、root_agent の上に次のコードを貼り付けます。このエージェントは検索ツールの使用に特化しており、検索ツールとその使用方法の両方が含まれています。

    vertexai_search_agent = Agent( name="vertexai_search_agent", model=Gemini(model=os.getenv("MODEL"), retry_options=RETRY_OPTIONS), instruction="Use your search tool to look up facts.", tools=[vertexai_search_tool] )
  1. 次に、root_agent's tools パラメータを以下に置き換えて、前の手順で作成したエージェントを AgentTool() でラップします。

    tools=[ AgentTool(vertexai_search_agent, skip_summarization=False), get_date ]
  2. これで、エージェントにクエリを実行して、検索結果と get_date() 関数を使用できます。

    ADK 開発 UI のブラウザタブに戻り、[+ 新しいセッション] をクリックします。

  3. もう一度質問します。

    今日は何日ですか?

    エージェントは正しい日付を回答するはずです。

  4. 検索ツールを呼び出すには、次のように尋ねます。

    PlanetCon 会議はいつですか?

    想定される出力:

    The PlanetCon: Persephone カンファレンスは、2028 年 10 月 26 日~28 日に開催される予定です。
  5. この新しい惑星や、その発見が発表される会議について、エージェントに自由に質問してください。確認が終わったら、開発 UI のタブを閉じます。

  6. このエージェントへの質問が完了したら、ブラウザタブを閉じ、サーバーが実行されている Cloud Shell ターミナル ウィンドウを選択して、Ctrl+C キーを押してサーバーを停止します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Google 提供のツールを使用する。

さらに多くの種類のツール

以下のツールタイプは知っておくと便利ですが、このラボでは実装しません。

LongRunningFunctionTool クラス

このツールは FunctionTool のサブクラスです。エージェントの実行をブロックせずに呼び出す必要がある、大量の処理時間を要するタスク向けに設計されています。

LongRunningFunctionTool を使用する場合、Python 関数は長時間実行オペレーションを開始し、必要に応じて中間結果を返して、モデルとユーザーに進行状況(ステータスの更新や完了予定時間など)を知らせることができます。エージェントはその後、他のタスクを続行できます。

たとえば、エージェントがタスクを進める前に人間の承認を必要とする、人間参加型のシナリオなどです。

ツールとしての Application Integration ワークフロー

Application Integration では、Google Cloud コンソールのドラッグ&ドロップ インターフェースを使用して、Google Cloud プロダクトやサードパーティ システム(Salesforce、ServiceNow、JIRA、SAP など)向けに 100 以上の事前構築済みコネクタを提供する Integration Connectors を使用して、ツール、データ接続、データ変換を構築できます。その後、ADK ApplicationIntegrationToolset を使用して、エージェントがこれらのソースに接続したり、ワークフローを呼び出したりできるようにします

Model Context Protocol(MCP)ツール

Model Context Protocol(MCP)は、Gemini や Claude などの大規模言語モデル(LLM)が外部のアプリケーション、データソース、ツールと通信する方法を標準化するために設計されたオープン標準です。ADK を使用すると、MCP サービスを呼び出すツールを構築する場合でも、他のデベロッパーやエージェントがツールを操作できるように MCP サーバーを公開する場合でも、エージェントで MCP ツールを使用および利用できます。

ADK を MCP サーバーと組み合わせて使用するのに役立つコードサンプルと設計パターンについては、MCP ツールに関するドキュメントをご覧ください。

  • ADK 内で既存の MCP サーバーを使用する: ADK エージェントは MCP クライアントとして機能し、外部の MCP サーバーが提供するツールを使用できます。
  • MCP サーバーを介して ADK ツールを公開する: ADK ツールをラップする MCP サーバーを構築し、あらゆる MCP クライアントからアクセスできるようにする方法。

ADK エージェントで MCP を使用する方法について詳しくは、ラボ ADK エージェントで Model Context Protocol(MCP)ツールを使用するをご覧ください。

お疲れさまでした

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

  • Google と LangChain の事前構築済みのツールをエージェントに提供する
  • エージェント用の独自のツール関数を作成する
  • エージェント ツールの関数を作成する際に、構造化された docstring と型指定が重要であることについて説明する

次のステップ

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

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

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

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

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

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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

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