准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
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 和 LangChain 及 CrewAI 生態系統都提供了豐富多樣的強大工具 (例如 Google 搜尋和 Vertex AI Search),任您挑選。
此外,只要編寫正確的 docstring,就能從函式建立屬於自己的工具!
本實驗室假設您熟悉「開始使用 Agent Development Kit (ADK)」實驗室涵蓋的 ADK 基礎知識。
在本實驗室,您將瞭解 ADK 代理適用的工具生態系統,以及如何將函式提供給代理當做自訂工具。
完成本實驗室後,您將能夠:
請詳閱以下操作說明。實驗室活動會計時,中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您會在實際雲端環境中完成 Qwiklabs 實作實驗室活動,而非模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
注意:如果您擁有個人 Google Cloud 或專案,請勿用於本實驗室。
注意:如果您使用的是 Pixelbook,請在無痕視窗執行本實驗室。
點選「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 應用程式資料儲存庫。
選取 Google Cloud 控制台視窗,然後依序按下鍵盤上的 G 和 S 鍵,開啟 Cloud Shell。或者,您也可以點按 Cloud 控制台右上方的「啟用 Cloud Shell」按鈕 ()。
按一下「繼續」。
系統提示您為 Cloud Shell 提供授權時,按一下「授權」。
點按 Cloud Shell 終端機面板右上角的「在新視窗中開啟」 按鈕 。
在 Cloud Shell 終端機輸入下列指令,開啟 Cloud Shell 編輯器並前往主目錄:
將下列指令貼到 Cloud Shell 終端機,從 Cloud Storage bucket 下載本實驗室的程式碼:
在 Cloud Shell 終端機執行下列指令,更新 PATH 環境變數、安裝 ADK,並安裝本實驗室的其他必要項目。
google-adk[extensions] 的目的是安裝 Crew AI 工具所需的額外依附元件。在後續工作中,您將使用 Google 提供的 Vertex AI Search 工具,根據 AI 應用程式資料儲存庫中的資料建立回覆基準。應用程式的資料儲存庫需要一段時間才能擷取資料,因此您現在要設定資料儲存庫,然後在後續工作中用來根據資料提供回覆。
前往已開啟 Cloud 控制台的瀏覽器分頁,然後在頂端搜尋「AI 應用程式」並前往該頁面。
勾選條款及細則核取方塊,然後按一下「繼續並啟用 API」。
選取左側導覽選單中的「資料儲存庫」。
選取「建立資料儲存庫」。
找到「Cloud Storage」資訊卡,然後點按「選取」。
選取「非結構化文件 (PDF、HTML、TXT 等)」。
我們已為您將範例文件上傳至 Cloud Storage。這些文件與假想的行星「Persephone」有關。本例中使用的是虛構行星,因此模型在訓練期間不可能學到任何與該行星相關的知識。
如果是 GCS 路徑,請輸入 。
按一下「繼續」。
將「位置」維持「全域」。
在「資料儲存庫名稱」中輸入:Planet Search。
點按「建立」。
按一下左側導覽列中的「應用程式」。
按一下「建立新的應用程式」。
找到「自訂搜尋 (一般)」應用程式的資訊卡,然後按一下「建立」。
將應用程式命名為「Planet Search」。
提供「Planet Conferences」的「公司名稱」。
按一下「繼續」。
勾選「Planet Search」資料儲存庫旁的核取方塊。
選取「建立」。
建立應用程式後,按一下左上方的「AI 應用程式」標誌,即可返回應用程式資訊主頁。
複製「應用程式」表格中顯示的應用程式 ID 值。請將這個值儲存在文字文件中,稍後會使用這個值。
目前,資料儲存庫需要一些時間來擷取資料。稍後您需要將搜尋應用程式提供給代理,做為回應的依據。
點選「Check my progress」,確認目標已達成。
ADK 可讓您使用第三方 AI 程式庫 (例如 LangChain 和 CrewAI) 提供的工具。
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 開發人員使用者介面:
輸出內容
點按終端機輸出內容中的 http://127.0.0.1:8000 連結,即可在新分頁中查看網頁介面。
系統會開啟新的瀏覽器分頁,顯示 ADK 開發人員使用者介面。
在左側的「選取代理」下拉式選單中,選取「langchain_tool_agent」。
使用下列內容查詢代理:
輸出內容:
點按代理聊天泡泡旁的代理圖示 (),即可查看代理是否使用了 Wikipedia 工具。
請注意,內容包含 functionCall,其中含有維基百科的查詢。
點按分頁頂端的前進按鈕,即可前往下一個事件。
探索這個事件,您會看到系統從維基百科擷取,用來生成模型回覆的結果。
向這個代理提問完畢後,關閉開發人員使用者介面瀏覽器分頁。
選取 Cloud Shell 終端機面板,然後按下 CTRL + C 鍵停止伺服器。
點選「Check my progress」,確認目標已達成。
您也可以透過 CrewaiTool wrapper 使用 CrewAI 工具。
如要執行這項操作,請使用 Cloud Shell 編輯器檔案總管,前往 adk_tools/crewai_tool_agent 目錄。
點選 crewai_tool_agent 目錄中的 agent.py 檔案。
請留意 ADK 中的 CrewaiTool 類別和 crewai_tools 中的 ScrapeWebsiteTool 都已匯入。
在 agent.py 檔案中的指定位置新增下列程式碼,將 CrewAI Scrape Website 工具新增至代理,並提供名稱和說明:
ScrapeWebsiteTool 會從美聯社新聞網站 apnews.com 載入內容。
您將使用指令列介面執行這個代理,藉此熟悉這種快速測試代理的便利方式。請在 Cloud Shell 終端機中,從 adk_tools 專案目錄啟動代理,並使用 ADK 指令列 UI:
代理載入時,可能會顯示一些警告。您可以忽略這類訊息。看到 user: 提示時,請輸入以下內容:
輸出內容:
請注意,指令列介面也會指出目前使用的工具。
在終端機中,針對下一個 user: 提示詞回應 exit,即可退出指令列介面。
在終端機記錄中向上捲動,找出您執行 adk run crewai_tool_agent 的位置,並注意指令列介面提供給您進行追蹤的記錄檔。複製並執行該指令,即可查看執行作業的更多詳細資料:
按下 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 專案目錄執行開發人員使用者介面 (如果伺服器仍在執行,請先按下 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 旗標,以便讓開發人員使用者介面在您做出變更時重新載入代理。
adk web 工作階段,請選取執行工作階段的 Cloud Shell 終端機面板,然後按下 CTRL + C 鍵。假如找不到先前使用的 Cloud Shell 終端機分頁,預設通訊埠 8000 會遭到封鎖,但您可以使用 adk web --port 8001 啟動開發人員使用者介面並啟用新的通訊埠。
點按 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 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 11 月 18 日
實驗室上次測試日期:2025 年 11 月 6 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验