Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
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
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
本實驗室介紹如何在 Agent Development Kit 代理中使用各種工具。
無論是 Google 提供的強大工具 (例如 Google 搜尋和 Vertex AI Search),還是 LangChain 生態系統中豐富多樣的工具,都能輕鬆上手。
此外,只要寫好 docstring,就能將函式轉成自訂工具!
本實驗室假設您熟悉「開始使用 Agent Development Kit (ADK)」實驗室涵蓋的 ADK 基礎知識。
在本實驗室,您將瞭解 ADK 代理適用的工具生態系統,以及如何將函式提供給代理當做自訂工具。
完成本實驗室後,您將能夠:
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
善用工具是智慧型代理與基本模型的主要差異。工具是一段程式碼 (如函式或方法),可執行特定動作,例如與資料庫互動、發出 API 要求,或叫用其他外部服務。
工具可讓代理與其他系統互動,並執行超出核心推理和生成能力範圍的動作。請務必注意,這些工具是獨立運行,與代理的 LLM 無關,也就是說,工具不會自動具備自己的推理能力。
Agent Development Kit 為開發人員提供多種工具:
在本實驗室,您將瞭解這些類別,並實作其中一種類別。
Google 為代理提供多種實用工具,包括:
Google 搜尋 (google_search):允許代理使用 Google 搜尋執行網頁搜尋,只要將 google_search 新增至代理的工具即可。
執行程式碼 (built_in_code_execution):這項工具可讓代理執行程式碼,進行計算、操縱資料,或以程式輔助方式與其他系統互動。您可以使用預先建構的 VertexCodeInterpreter,或是實作 BaseCodeExecutor 介面的任何程式碼執行器。
檢索 (retrieval):這組工具可從各種來源擷取資訊。
Vertex AI Search 工具 (VertexAiSearchTool):這項工具與 Google Cloud 的 Vertex AI Search 服務整合,可讓代理搜尋 AI 應用程式資料儲存庫。
將下列指令貼到 Cloud Shell 終端機,從 Cloud Storage bucket 下載本實驗室的程式碼:
在 Cloud Shell 終端機執行下列指令,更新 PATH 環境變數、安裝 ADK,並安裝本實驗室所需的其他項目。
在後續工作中,您將使用 Google 提供的 Vertex AI Search 工具,根據 AI 應用程式資料儲存庫中的資料建立回覆基準。由於資料儲存庫擷取資料需要時間,因此現在要先完成設定,以便在後續工作中根據您的資料建立回覆基準。
在剛才開啟 Cloud 控制台的瀏覽器分頁中,於頂端搜尋「AI 應用程式」並前往該頁面 (此時可關閉分頁底部的 Cloud Shell 終端機,或右側的教學面板)。
勾選條款及細則核取方塊,然後按一下「繼續並啟用 API」。
選取左側導覽選單中的「資料儲存庫」。
選取「建立資料儲存庫」。
找到「Cloud Storage」資訊卡,點按其中的「選取」。
在「匯入非結構化資料 (文件搜尋和 RAG)」下方,選取「文件」。
範例文件已為您上傳至 Cloud Storage。這些文件與假想的行星「Persephone」有關。本例中使用的是虛構行星,因此模型在訓練期間不可能學到任何與該行星相關的知識。
如果是 GCS 路徑,請輸入 。
按一下「繼續」。
將「位置」維持「全域」。
在「資料儲存庫名稱」欄位輸入 Planet Search。
按一下「繼續」。
在提示選取計費模式時,請保留預設設定,然後點選「建立」。
按一下左側導覽列中的「應用程式」。
按一下「建立新的應用程式」。
找到「自訂搜尋 (一般)」應用程式的資訊卡,然後按一下「建立」。
將應用程式命名為 Planet Search。
將「公司名稱」設為 Planet Conferences。
按一下「繼續」。
勾選「Planet Search」資料儲存庫旁的核取方塊。
保留預設定價條款,選取「建立」。
建立應用程式後,按一下左上方的「AI 應用程式」,即可返回應用程式資訊主頁。
在「應用程式」表格中複製應用程式 ID。請將這個值儲存在文字文件中,稍後會使用這個值。
目前,資料儲存庫需要一些時間來擷取資料。稍後您需要將搜尋應用程式提供給代理,做為回應的依據。
點選「Check my progress」,確認目標已達成。
ADK 支援使用 LangChain 等第三方 AI 框架的工具。LangChain 社群已開發大量工具整合項目,可用於存取多種資料來源、串接各種網路產品,以及處理許多作業。使用 ADK 內的社群工具,可避免重複編寫他人已建立的工具。
返回顯示 Cloud Shell 編輯器的瀏覽器分頁,並使用左側的檔案總管前往 adk_tools/langchain_tool_agent 目錄。
在 Cloud Shell 終端機中執行下列指令,即可在代理目錄中建立 .env 檔案,提供驗證詳細資料:
執行下列指令,將 .env 檔案複製到本實驗室會使用的其他代理目錄:
點選 langchain_tool_agent 目錄中的 agent.py 檔案。
請留意 LangchainTool 類別的匯入作業。此為 wrapper 類別,支援在 Agent Development Kit 中直接使用 LangChain 工具。
在 agent.py 檔案的指定位置加入下列程式碼,將 LangChain 的 Wikipedia 工具加入代理。這樣一來,代理就能搜尋維基百科的資訊:
在 Cloud Shell 終端機中切換至 adk_tools 專案目錄,並執行下列指令,啟動 Agent Development Kit 開發人員 UI:
輸出內容
點選終端機輸出內容中的 http://127.0.0.1:8000 連結,在新分頁開啟網頁介面。
系統會開啟新的瀏覽器分頁,顯示 ADK 開發人員使用者介面。
在左側的「選取代理」下拉式選單中,選取「langchain_tool_agent」。
使用下列內容查詢代理:
輸出內容:
點按代理聊天泡泡旁的代理圖示 (),即可查看代理是否使用了 Wikipedia 工具。
請注意,內容包含 functionCall,其中含有維基百科的查詢。
點按分頁頂端的前進按鈕,即可前往下一個事件。
探索這個事件,您會看到系統從維基百科擷取,用來生成模型回覆的結果。
向這個代理提問完畢後,關閉開發人員使用者介面瀏覽器分頁。
選取 Cloud Shell 終端機面板,然後按下 CTRL + C 鍵停止伺服器。
點選「Check my progress」,確認目標已達成。
如果預先建構的工具無法完全滿足特定需求,您可以自行建立工具,以便使用自訂功能,例如連線至專屬資料庫或實作獨特的演算法。
想要建立新工具,最簡單的方法是編寫標準 Python 函式,並以標準格式撰寫 docstring,然後傳遞至模型當做工具。這個方法具有彈性,且可快速整合。
撰寫做為工具使用的函式時,請留意下列幾點:
"error_message" 鍵的字典,提供人類可讀的說明。最佳做法是在傳回的字典中加入 "status" 鍵,指出整體執行結果 (例如 "success"、"error"、"pending"),讓 LLM 能明確掌握作業狀態。如要定義函式並將其當做工具使用,請完成下列步驟:
使用 Cloud Shell 編輯器的檔案總管,前往 adk_tools/function_tool_agent 目錄。
在 function_tool_agent 目錄中,點選 agent.py 檔案。
檢查函式 get_date() 和 write_journal_entry() 的 docstring 格式是否正確,ADK 代理可據此瞭解使用時機和方式,包括:
Args: 區段,說明函式的輸入參數和可序列化為 JSON 的類型Returns: 區段,說明函式傳回的內容,並以 dict 做為偏好的回覆類型如要將函式傳遞給代理當做工具使用,請在 agent.py 檔案中的指定位置新增下列程式碼:
您將使用開發人員使用者介面執行這個代理,瞭解如何透過工具輕鬆查看工具要求和回覆。在 Cloud Shell 終端機中,切換至 adk_tools 專案目錄並執行下列指令,重新啟動開發 UI (如果伺服器仍在執行,請先按下 Ctrl + C 鍵停止執行,再以下列指令重新啟動):
點按終端機輸出內容中的 http://127.0.0.1:8000 連結。
系統會開啟新的瀏覽器分頁,顯示 ADK 開發人員使用者介面。
在左側的「選取代理」下拉式選單中,選取「function_tool_agent」。
使用下列內容與代理開始對話:
代理應會詢問您今天過得如何。請用一句話說明您今天過得如何 (例如「It's been a good day.I did a cool ADK lab),代理就會為您撰寫日記。
輸出內容範例:
請注意,代理會顯示自訂工具要求和回覆的按鈕。點按各個按鈕即可查看不同事件的詳細資訊。
關閉開發人員使用者介面分頁。
在 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 能清楚判斷作業狀態。點選「Check my progress」,確認目標已達成。
在這項工作中,您將瞭解如何使用 Agent Development Kit 代理,搭配內建的 Google Vertex AI Search 工具,以及先前建立的 AI 應用程式資料儲存庫,輕鬆部署 RAG 應用程式。
返回「Cloud Shell 編輯器」分頁,然後選取「adk_tools/vertexai_search_tool_agent」目錄。
在 vertexai_search_tool_agent 目錄中,點選 agent.py 檔案。
在匯入項目底部的指定位置,新增 VertexAiSearchTool 類別的匯入項目:
更新程式碼,將 VertexAiSearchTool 例項化。在傳遞至 search_engine_id 的路徑中,將 YOUR_PROJECT_ID 更新為 YOUR_SEARCH_APP_ID 更新為您在先前工作中複製的搜尋應用程式 ID。
在代理定義中的指定位置新增下列程式碼,為代理提供工具:
如要確認資料儲存庫是否已可供使用,請在控制台的「AI 應用程式」>「資料儲存庫」頁面中選取資料儲存庫名稱。
「活動」 和「文件」 分頁會顯示文件匯入和建立索引作業的狀態。「活動」分頁顯示「匯入完成」時,資料儲存庫應已可供查詢。
在 Cloud Shell 終端機中執行下列指令,從 adk_tools 專案目錄啟動指令列介面。指令中須加入 --reload_agents 旗標,讓開發 UI 能在您做出變更時,自動重新載入代理。
adk web 工作階段,請切換至執行指令的 Cloud Shell 終端機面板,按下 Ctrl + C 鍵。如果找不到先前使用的 Cloud Shell 終端機分頁,導致預設的 8000 通訊埠遭到占用,您也可以改用 adk web --port 8001 指令,透過新通訊埠啟動開發 UI。點按 http://127.0.0.1:8000 開啟 ADK 開發人員使用者介面。
在左側的「選取代理」下拉式選單中,選取「vertexai_search_tool_agent」。
使用下列指令,向代理查詢 Cloud Storage 文件中所述的虛構行星:
輸出內容範例 (可能與您的輸出內容略有不同)
搜尋工具的實作限制在於,您無法在同一個代理中混用搜尋工具和非搜尋工具。如要解決這個問題,您可以使用 AgentTool 將代理包裝成搜尋工具,然後使用該代理做為工具,與其他工具一起執行搜尋。
如要查看實際運作情況,請按照下列步驟操作:
確認您已開啟 adk_tools/vertexai_search_tool_agent/agent.py 檔案。
更新 root_agent 的 tools 參數,加入 get_date 函式工具:
在 ADK 開發人員使用者介面中詢問代理:
預期輸出內容:
返回 adk_tools/vertexai_search_tool_agent/agent.py 檔案,將下列程式碼貼到 root_agent 上方。這個代理專用於操作搜尋工具,內含工具本身與相關使用指令:
將 root_agent 的工具參數替換成下列內容,使用 AgentTool() 包裝在上一個步驟中建立的代理:
現在您可以查詢代理,並同時接收搜尋結果和使用 get_date() 函式。
返回 ADK 開發人員使用者介面瀏覽器分頁,然後按一下「+ 新工作階段」。
再問一次以下問題:
代理應會回覆正確日期。
提出以下問題來叫用搜尋工具:
預期輸出內容:
歡迎向代理提出更多問題,瞭解這顆新行星和即將公布這項發現的研討會。取得滿意的結果後,關閉開發人員使用者介面分頁。
向這個代理提問完畢後,請關閉瀏覽器分頁,選取執行伺服器的 Cloud Shell 終端機視窗,然後按下 CTRL + C 鍵停止伺服器。
點選「Check my progress」,確認目標已達成。
以下工具類型值得瞭解,但您不會在本實驗室中實作這些工具。
這項工具是 FunctionTool 的子類別,可處理需要大量處理時間的工作,因此應在不封鎖代理執行的情況下呼叫。
使用 LongRunningFunctionTool 時,Python 函式可以啟動長時間執行的作業,並視需要傳回中繼結果,讓模型和使用者掌握進度 (例如狀態更新或預計完成時間),以便代理繼續處理其他工作。
舉例來說,在人機迴圈情境中,代理必須先獲得人工核准,才能繼續執行工作。
透過 Application Integration,您可以在 Google Cloud 控制台使用拖曳介面,透過 Integration Connector 的 100 多個預先建構連接器,為 Google Cloud 產品和第三方系統 (例如 Salesforce、ServiceNow、JIRA、SAP 等) 建構工具、資料連線和資料轉換。之後,您可以使用 ADK ApplicationIntegrationToolset,允許代理連線至這些來源或呼叫工作流程。
Model Context Protocol (MCP) 是一項開放標準,旨在將 Gemini 和 Claude 等大型語言模型 (LLM) 與外部應用程式、資料來源和工具的通訊方式標準化。無論您是想建構工具來呼叫 MCP 服務,還是公開 MCP 伺服器,供其他開發人員或代理與您的工具互動,ADK 都能協助您在代理中運用 MCP 工具。
請參閱 MCP 工具說明文件,瞭解相關程式碼範例和設計模式,協助您搭配使用 ADK 和 MCP 伺服器,包括:
想進一步瞭解如何搭配 ADK 代理使用 MCP,請參閱「搭配 ADK 代理使用 Model Context Protocol (MCP) 工具」實驗室。
在本實驗室中,您已瞭解如何:
想進一步瞭解如何使用 Agent Development Kit 建構及部署代理,請參閱下列實驗室:
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2026 年 2 月 3 日
實驗室上次測試日期:2026 年 2 月 3 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one
Complete this quick step to start your lab.