始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a data store and search app
/ 20
Use a LangChain Tool
/ 20
Use a CrewAI Tool
/ 20
Use a function as a custom tool
/ 20
Use a Google-provided tool
/ 20
このラボでは、Agent Development Kit エージェントでツールを使用する方法について説明します。
Google 検索や Vertex AI Search などの Google が提供する強力なツールから、LangChain や CrewAI のエコシステムで利用できる豊富なツールまで、さまざまなツールの使用を開始することができます。
さらに、関数から独自のツールを作成するには、適切な docstring を記述するだけで済みます。
このラボでは、ラボ「Agent Development Kit(ADK)を使ってみる」で説明されている ADK の基本を理解していることを前提としています。
このラボでは、ADK エージェントが利用できるツールのエコシステムについて学びます。また、カスタムツールとしてエージェントに機能を提供する方法も学びます。
このラボを修了すると、次のことができるようになります。
こちらの手順をお読みください。ラボの時間は制限されており、一時停止することはできません。[ラボを開始] ボタンをクリックするとタイマーが開始され、Cloud リソースを利用できる時間が表示されます。
この Qwiklabs ハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。一時的な認証情報が新しく提供されるため、ラボ受講中の Google Cloud Platform へのログインおよびアクセスにはその認証情報を使用してください。
このラボを完了するには、次のものが必要です。
注: すでに個人の GCP アカウントやプロジェクトをお持ちの場合でも、そのアカウントやプロジェクトはラボでは使用しないでください。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
ツールを効果的に活用できることが、インテリジェント エージェントと基本的なモデルの真の違いです。ツールは、関数やメソッドなどのコードブロックであり、データベースとのやり取り、API リクエストの作成、他の外部サービスの呼び出しなどの特定のアクションを実行します。
ツールを使用することで、エージェントは他のシステムとやり取りし、コアとなる推論機能や生成機能を超えたアクションを実行できます。これらのツールはエージェントの LLM とは独立して動作するため、ツール自体が自動的に推論能力を持つわけではないことに注意することが重要です。
Agent Development Kit では、デベロッパーにさまざまなツール オプションが提供されます。
このラボでは、これらのカテゴリについて確認し、それぞれのタイプの 1 つを実装します。
Google は、エージェント向けの便利なツールをいくつか提供しています。次のようなものがあります。
Google 検索(google_search): エージェントが Google 検索を使用してウェブ検索を実行できるようにします。エージェントのツールに google_search を追加するだけです。
コード実行(built_in_code_execution): このツールを使用すると、エージェントはコードを実行して、計算、データ操作、または他のシステムとのプログラムによるやり取りを行うことができます。事前構築済みの VertexCodeInterpreter または BaseCodeExecutor インターフェースを実装する任意のコード実行ツールを使用できます。
検索(retrieval): さまざまなソースから情報を取得するように設計されたツールのパッケージ。
Vertex AI Search ツール(VertexAiSearchTool): このツールは Google Cloud の Vertex AI Search サービスと統合されており、エージェントが AI アプリケーションのデータストアを検索できます。
Google Cloud コンソール ウィンドウを選択した状態で、キーボードの G キーを押してから S キーを押して、Cloud Shell を開きます。または、Cloud コンソールの右上にある「Cloud Shell をアクティブにする」ボタン をクリックします。
[続行] をクリックします。
Cloud Shell を承認するよう求められたら、[承認] をクリックします。
Cloud Shell ターミナル パネルの右上にある「新しいウィンドウで開く」ボタン()をクリックします。
Cloud Shell ターミナルで、次のコマンドを入力して Cloud Shell エディタをホーム ディレクトリで開きます。
次のコマンドを Cloud Shell ターミナルに貼り付けて、Cloud Storage バケットからこのラボのコードをダウンロードします。
Cloud Shell ターミナルで次のコマンドを実行して、PATH 環境変数を更新し、ADK をインストールして、このラボの追加要件をインストールします。
注: google-adk[extensions] は、Crew AI ツールに必要な追加の依存関係をインストールするために使用されます。
後のタスクでは、Google が提供する Vertex AI Search ツールを使用して、AI Applications のデータストアにある独自のデータに基づいて回答をグラウンディングします。アプリのデータストアはデータの取り込みに少し時間がかかるため、ここで設定し、後のタスクで回答をグラウンディングするために使用します。
Cloud コンソールを表示しているブラウザタブで、コンソールの上部で「AI Applications」を検索して移動します。
利用規約のチェックボックスをオンにして、[続行して API を有効にする] をクリックします。
左側のナビゲーション メニューで、[データストア] を選択します。
[データストアを作成] を選択します。
[Cloud Storage] カードを見つけて、[選択] をクリックします。
[非構造化ドキュメント(PDF、HTML、TXT など)] を選択します。
サンプル ドキュメントは Cloud Storage にアップロードされています。これらのドキュメントは、Persephone という架空の新惑星の発見に関連したものです。このケースでは、モデルがトレーニング中にこの惑星について何も学習できないように、架空の惑星を使用しています。
GCS パスには、 と入力します。
[続行] をクリックします。
[ロケーション] は [グローバル] のままにします。
データストア名に「Planet Search」と入力します。
[作成] をクリックします。
左側のナビゲーションで [アプリ] をクリックします。
[新しいアプリを作成] をクリックします。
[カスタム検索(一般)] アプリのカードを見つけて、[作成] をクリックします。
アプリに Planet Search という名前を付けます。
会社名に「Planet Conferences」と入力します。
[続行] をクリックします。
Planet Search データストアの横にあるチェックボックスをオンにします。
[作成] を選択します。
アプリが作成されたら、左上の AI アプリケーションのロゴをクリックして、アプリのダッシュボードに戻ります。
[アプリ] テーブルに表示されているアプリの ID の値をコピーします。この値は後で必要になるため、テキスト ドキュメントに保存しておきます。
ここでは、データストアがデータを取り込むまでしばらく待ちます。後で、エージェントに提供して回答の根拠とします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
ADK を使用すると、LangChain や CrewAI などのサードパーティの AI ライブラリから利用できるツールを使用できます。
LangChain コミュニティは、多数のデータソースにアクセスし、さまざまなウェブ プロダクトと統合して、多くのことを実現するために、多数のツール統合を作成しました。ADK 内のコミュニティ ツールを使用すると、誰かがすでに作成したツールを書き直す手間が省けます。
Cloud Shell エディタが表示されているブラウザタブに戻り、左側のファイル エクスプローラを使用して adk_tools/langchain_tool_agent ディレクトリに移動します。
Cloud Shell ターミナルで次のコマンドを実行して、このエージェント ディレクトリの認証の詳細を提供する .env ファイルを作成します。
次のコマンドを実行して、.env ファイルをこのラボで使用する他のエージェント ディレクトリにコピーします。
langchain_tool_agent ディレクトリの agent.py ファイルをクリックします。
LangchainTool クラスをインポートしている点に注意してください。これは、Agent Development Kit 内で LangChain ツールを使用できるようにするラッパー クラスです。
agent.py ファイルで指定された場所に次のコードを追加して、LangChain Wikipedia ツールをエージェントに追加します。これにより、エージェントは Wikipedia で情報を検索できるようになります。
ファイルを保存します。
Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから、次のコマンドを使用して Agent Development Kit 開発 UI を起動します。
出力
ウェブ インターフェースを新しいタブで表示するには、ターミナルの出力にある http://127.0.0.1:8000 リンクをクリックします。
新しいブラウザタブが開き、ADK 開発 UI が表示されます。
左側の [エージェントを選択] プルダウンから、[langchain_tool_agent] を選択します。
エージェントに次のクエリを実行します。
出力:
wikipedia ツールが使用されたことを示すエージェントのチャットのふきだしの横にあるエージェント アイコン()をクリックします。
コンテンツには、Wikipedia へのクエリを含む functionCall が含まれています。
タブの上部にある進むボタンをクリックして、次のイベントに移動します。
このイベントを調べると、モデルの回答を生成するために使用された Wikipedia から取得された結果を確認できます。
このエージェントへの質問が終わったら、開発 UI のブラウザタブを閉じます。
Cloud Shell ターミナル パネルを選択し、Ctrl+C キーを押してサーバーを停止します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
同様に、CrewaiTool ラッパーを使用して CrewAI Tools を使用できます。
これを行うには、Cloud Shell エディタのファイル エクスプローラを使用して、ディレクトリ adk_tools/crewai_tool_agent に移動します。
crewai_tool_agent ディレクトリの agent.py ファイルをクリックします。
ADK から CrewaiTool クラスを、crewai_tools から ScrapeWebsiteTool をインポートしている点に注意してください。
agent.py ファイルで指定された場所に次のコードを追加して、CrewAI Scrape Website ツールをエージェントに追加し、名前と説明を付けます。
ScrapeWebsiteTool は、Associated Press のニュース ウェブサイト apnews.com からコンテンツを読み込みます。
ファイルを保存します。
このエージェントは、コマンドライン インターフェースを使用して実行します。これは、エージェントをすばやくテストする便利な方法として、コマンドライン インターフェースに慣れるためです。Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから、ADK コマンドライン UI を使用してエージェントを起動します。
エージェントの読み込み中に、いくつかの警告が表示されることがあります。それらは無視して構いません。user: プロンプトが表示されたら、次のように入力します。
出力:
コマンドライン インターフェースでは、ツールが使用されていることも示されます。
ターミナルで、次の user: プロンプトに exit と入力して、コマンドライン インターフェースを終了します。
ターミナルの履歴をスクロールして adk run crewai_tool_agent を実行した場所を見つけ、コマンドライン インターフェースが追跡するログファイルを提供したことを確認します。そのコマンドをコピーして実行し、実行の詳細を表示します。
Ctrl+C キーを押してログファイルの追跡を停止し、コマンド プロンプトに戻ります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
既製のツールでは特定の要件を完全に満たすことはできない場合、独自のツールを作成できます。これにより、独自のデータベースへの接続や独自のアルゴリズムの実装など、カスタマイズされた機能を実現できます。
新しいツールを作成する最も簡単な方法は、標準形式で記述された docstring を含む標準の Python 関数を作成し、それをツールとしてモデルに渡すことです。このアプローチは、柔軟性と迅速な統合を実現します。
ツールとして使用する関数を作成する際には、いくつかの重要な点に留意する必要があります。
"error_message" キーを持つ辞書を返します。ベスト プラクティスとして、全体の結果を示す "status" キー(例: "success"、"error"、"pending")を返り値の辞書に含めます。これにより、LLM にオペレーションの状態に関する明確なシグナルを提供します。次の手順に沿って関数を定義し、ツールとして使用します。
Cloud Shell エディタのファイル エクスプローラを使用して、ディレクトリ adk_tools/function_tool_agent に移動します。
function_tool_agent ディレクトリで、agent.py ファイルをクリックします。
get_date() 関数と write_journal_entry() 関数には、ADK エージェントがいつどのように使用するかを把握できるように、適切に書式設定された docstring が含まれています。次のようなものがあります。
Args: セクションReturns: セクション。推奨されるレスポンス タイプは dict
関数をエージェントに渡してツールとして使用するには、agent.py ファイルで指定された場所に次のコードを追加します。
ファイルを保存します。
開発 UI を使用してこのエージェントを実行し、そのツールによってツールリクエストとレスポンスを簡単に可視化できることを確認します。Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから次のコマンドを使用して開発 UI を再度実行します(サーバーがまだ実行中の場合は、まず CTRL+C キーを使用して実行中のサーバーを停止してから、次のコマンドを実行して再起動します)。
ターミナル出力の http://127.0.0.1:8000 リンクをクリックします。
新しいブラウザタブが開き、ADK 開発 UI が表示されます。
左側の [エージェントを選択] プルダウンから、[function_tool_agent] を選択します。
エージェントとの会話を始めるには、次のように入力します。
エージェントがあなたの一日について尋ねてきます。一日の出来事を一文で答える(例: 今日は良い一日でした。ADK ラボに取り組みました。)と、日記を書いてくれます。
出力例:
エージェントに、カスタムツールのリクエストとレスポンスのボタンが表示されていることに注目してください。各イベントをクリックすると、詳細を確認できます。
開発 UI のタブを閉じます。
Cloud Shell エディタで、日付が付けられた日記ファイルが adk_tools ディレクトリにあります(Cloud Shell エディタのメニューで [表示] > [単語の折り返し] を有効にすると、横スクロールをあまり行わずに全文を表示できます)。
Cloud Shell ターミナル パネルをクリックし、Ctrl+C キーを押してサーバーを停止します。
str や int などのプリミティブ データ型を使用します。update_profile(profile: Profile) 関数ではなく、update_name(name: str)、update_age(age: int) などの個別の関数を作成します。"status" キーを含めて、全体の結果を示し(例: "success"、"error"、"pending")、オペレーションの状態に関する明確なシグナルを LLM に提供します。[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このタスクでは、Google の組み込みの Vertex AI Search ツールと、先ほど作成した AI Applications データストアを使用して、Agent Development Kit のエージェントで RAG アプリケーションを簡単にデプロイする方法を確認します。
Cloud Shell エディタのタブに戻り、adk_tools/vertexai_search_tool_agent ディレクトリを選択します。
vertexai_search_tool_agent ディレクトリの agent.py ファイルをクリックします。
インポートの最後で指定された場所に VertexAiSearchTool クラスのインポートを追加します。
VertexAiSearchTool がインスタンス化されるコードを更新します。data_store_id に渡されるパスで、YOUR_PROJECT_ID を YOUR_SEARCH_APP_ID を前のタスクでコピーした検索アプリ ID に更新します。
エージェント定義で指定された場所に次の行を追加し、エージェントにツールを提供します。
データストアが使用できる状態になっていることを確認するには、コンソールの [AI Applications > データストア] ページでデータストアの名前を選択します。
[アクティビティ] タブと [ドキュメント] タブには、ドキュメントのインポートとインデックス登録のステータスが表示されます。[アクティビティ] タブに [インポートが完了しました] と表示されたら、データストアのクエリを実行する準備が整っています。
Cloud Shell ターミナルで、adk_tools プロジェクト ディレクトリから、次のコマンドでコマンドライン インターフェースを起動します。変更を加えたときに開発 UI がエージェントを再読み込みするように、--reload_agents フラグを含めます。
adk web セッションをシャットダウンしていない場合は、そのセッションが実行されている Cloud Shell ターミナル パネルを選択し、Ctrl+C キーを押します。以前使用した Cloud Shell ターミナルタブが見つからない場合は、デフォルトのポート 8000 がブロックされますが、adk web --port 8001 を使用して新しいポートで開発 UI を起動できます。http://127.0.0.1:8000 をクリックして、ADK 開発 UI を開きます。
左側の [エージェントを選択] プルダウンから、[vertexai_search_tool_agent] を選択します。
Cloud Storage ドキュメントに記載されている架空の惑星について、エージェントに次のように質問します。
出力例(実際のものとは異なる場合があります):
検索ツールには、同じエージェント内で検索ツールと非検索ツールを混在させることができないという実装上の制限があります。この問題を回避するには、AgentTool を使用して検索ツールでエージェントをラップし、そのエージェントをツールとして使用して、他のツールと並行して検索を実行します。
実際に機能していることを確認するには、以下を行います。
adk_tools/vertexai_search_tool_agent/agent.py ファイルが開いていることを確認します。
get_date 関数ツールを含めるように、root_agent の tools パラメータを更新します。
ファイルを保存します。
ADK 開発 UI で、エージェントに次の質問をします。
想定される出力:
adk_tools/vertexai_search_tool_agent/agent.py ファイルに戻り、root_agent の上に次のコードを貼り付けます。このエージェントは検索ツールの使用に特化しており、検索ツールとその使用方法の両方が含まれています。
次に、root_agent's tools パラメータを以下に置き換えて、前の手順で作成したエージェントを AgentTool でラップします。
これで、エージェントにクエリを実行して、検索結果と get_date() 関数を使用できます。
ADK 開発 UI のブラウザタブに戻り、[+ 新しいセッション] をクリックします。
もう一度質問します。
エージェントは正しい日付を回答するはずです。
検索ツールを呼び出すには、次のように尋ねます。
想定される出力:
この新しい惑星や、その発見が発表される会議について、エージェントに自由に質問してください。確認が終わったら、開発 UI のタブを閉じます。
このエージェントへの質問が完了したら、ブラウザタブを閉じ、サーバーが実行されている Cloud Shell ターミナル ウィンドウを選択して、Ctrl+C キーを押してサーバーを停止します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
以下のツールタイプは知っておくと便利ですが、このラボでは実装しません。
このツールは FunctionTool のサブクラスです。エージェントの実行をブロックせずに呼び出す必要がある、大量の処理時間を要するタスク向けに設計されています。
LongRunningFunctionTool を使用する場合、Python 関数は長時間実行オペレーションを開始し、必要に応じて中間結果を返して、モデルとユーザーに進行状況(ステータスの更新や完了予定時間など)を知らせることができます。エージェントはその後、他のタスクを続行できます。
たとえば、エージェントがタスクを進める前に人間の承認を必要とする、人間参加型のシナリオなどです。
Application Integration では、Google Cloud コンソールのドラッグ&ドロップ インターフェースを使用して、Google Cloud プロダクトやサードパーティ システム(Salesforce、ServiceNow、JIRA、SAP など)向けに 100 以上の事前構築済みコネクタを提供する Integration Connectors を使用して、ツール、データ接続、データ変換を構築できます。その後、ADK ApplicationIntegrationToolset を使用して、エージェントがこれらのソースに接続したり、ワークフローを呼び出したりできるようにします。
Model Context Protocol(MCP)は、Gemini や Claude などの大規模言語モデル(LLM)が外部のアプリケーション、データソース、ツールと通信する方法を標準化するために設計されたオープン標準です。ADK を使用すると、MCP サービスを呼び出すツールを構築する場合でも、他のデベロッパーやエージェントがツールを操作できるように MCP サーバーを公開する場合でも、エージェントで MCP ツールを使用および利用できます。
ADK を MCP サーバーと組み合わせて使用するのに役立つコードサンプルと設計パターンについては、MCP ツールに関するドキュメントをご覧ください。
ADK エージェントで MCP を使用する方法について詳しくは、ラボ ADK エージェントで Model Context Protocol(MCP)ツールを使用するをご覧ください。
このラボでは、次のことを学びました。
Agent Development Kit を使用してエージェントを構築、デプロイする方法について詳しくは、以下のラボをご覧ください。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 9 月 22 日
ラボの最終テスト日: 2025 年 9 月 22 日
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください