搭配 Gemini API 使用工具和代理程式

工具和代理程式可擴充 Gemini 模型的功能,讓模型在現實世界中採取行動、存取即時資訊,以及執行複雜的運算工作。模型可透過即時 API,在標準要求/回應互動和即時串流工作階段中使用工具。

  • 工具是模型可用來回答查詢的特定功能 (例如 Google 搜尋或程式碼執行)。
  • 代理程式是一種系統,可規劃、執行及綜合多步驟工作,以達成使用者目標。

Gemini API 提供一系列全代管的內建工具和代理程式,可針對 Gemini 模型進行最佳化。您也可以使用函式呼叫定義自訂工具。

可用的內建工具

工具 說明 應用實例
Google 搜尋 根據網路上的時事和事實建立回覆基準,減少幻覺。 - 回答近期活動相關問題
- 根據各種來源驗證事實
Google 地圖 建構位置辨識助理,尋找地點、規劃路線及提供豐富的當地資訊。 - 規劃包含多個停靠點的旅遊行程
- 根據使用者條件尋找當地商家
程式碼執行 允許模型撰寫及執行 Python 程式碼,準確解決數學問題或處理資料。 - 解出複雜的數學方程式
- 準確處理及分析文字資料
網址環境 指示模型讀取及分析特定網頁或文件中的內容。 - 根據特定網址或文件回答問題
- 擷取不同網頁的資訊
電腦使用 (預覽) 啟用 Gemini 來查看畫面,並生成與網頁瀏覽器 UI 互動的動作 (用戶端執行)。 - 自動執行重複的網頁工作流程
- 測試網頁應用程式使用者介面
檔案搜尋 為自有文件建立索引並進行搜尋,啟用檢索增強生成 (RAG)。 - 搜尋技術手冊
- 根據專有資料回答問題

如要瞭解特定工具的相關費用,請參閱定價頁面

可用的服務專員

代理 說明 應用實例
Deep Research 自主規劃、執行及整合多步驟研究工作。 - 市場分析
- 盡職調查
- 文獻回顧

工具執行的運作方式

模型可在對話期間透過工具要求執行動作。視工具是內建 (由 Google 管理) 還是自訂 (由您管理) 而定,流程會有所不同。

內建工具流程

如果是內建工具 (Google 搜尋、Google 地圖、網址內容、檔案搜尋、程式碼執行),整個程序會在一次 API 呼叫中完成:

  1. 傳送提示:「GOOG 最新股價的平方根是多少?」
  2. Gemini 判斷需要工具,並在 Google 伺服器上執行這些工具 (例如搜尋股價,然後執行 Python 程式碼來計算平方根)。
  3. Gemini 會根據工具結果傳回最終答案。

自訂工具流程 (函式呼叫)

如果是自訂工具和電腦使用,應用程式會處理執行作業:

  1. 會連同函式 (工具) 宣告傳送提示。
  2. Gemini 可能會傳回結構化 JSON,以呼叫特定函式 (例如 {"name": "get_order_status", "args": {"order_id": "123"}}),且一律會附上專屬的 id
  3. 可以在應用程式或環境中執行函式。
  4. 您將函式結果連同函式呼叫的相同 id 送回 Gemini。
  5. Gemini 會根據結果生成最終回覆,或呼叫其他工具。

詳情請參閱函式呼叫指南

結合內建和自訂工具流程

如果要求結合了內建工具和自訂工具 (函式呼叫),模型會使用工具情境循環,協調不同環境的執行作業:

  1. 可以傳送提示,並宣告要啟用的內建工具和自訂函式,然後設定旗標來啟用組合支援功能。
  2. Gemini 會執行內建工具,並在產生任何用戶端函式呼叫時讓步給使用者 (執行順序取決於提示和模型判斷)。並傳回包含下列內容的回應:
    • 確認工具呼叫
    • 工具回應的結果 (如果模型生成兩個平行函式呼叫,這可能會出現在 JSON 之後)
    • 用於呼叫函式的結構化 JSON
    • 加密的思緒簽章,可保留情境
  3. 可以在應用程式或環境中執行函式。
  4. 會傳回 Gemini 回覆的所有部分,以及函式呼叫結果。
  5. Gemini 會使用所有合併的脈絡資訊生成最終回覆。

請參閱工具組合指南,瞭解如何啟用內建和自訂工具組合的支援功能,以及內容流通的範例。

結構化輸出內容與函式呼叫

Gemini 提供兩種產生結構化輸出的方法。如果模型需要連線至您自己的工具或資料系統,執行中繼步驟,請使用函式呼叫。如果模型最終回應必須嚴格遵守特定結構定義 (例如用於算繪自訂 UI),請使用結構化輸出內容

使用工具輸出結構化內容

您可以結合結構化輸出和內建工具,確保模型回覆以外部資料或運算結果為依據,同時嚴格遵守結構定義。

如需程式碼範例,請參閱「使用工具產生結構化輸出內容」。

建構代理

代理是使用模型和工具完成多步驟工作的系統。Gemini 提供推理能力 (「大腦」) 和必要工具 (「雙手」),但您通常需要自動化調度管理架構,才能管理代理程式的記憶體、規劃迴圈,以及執行複雜的工具鍊結。

如要盡量提升多步驟工作流程的穩定性,請編寫明確控制模型推論和規劃方式的指令。雖然 Gemini 提供強大的通用推論功能,但複雜的代理程式需要提示來強制執行特定行為,例如在遇到問題時保持不懈、評估風險及主動規劃。

如需設計這些提示的策略,請參閱代理程式工作流程。以下是系統指令範例,可將多個代理程式基準的效能提升約 5%。

代理架構

Gemini 整合了領先業界的開放原始碼代理框架,例如:

  • LangChain / LangGraph:使用圖表結構建構有狀態的複雜應用程式流程和多代理系統。
  • LlamaIndex:將 Gemini 代理程式連結至私人資料,以 RAG 增強工作流程。
  • CrewAI:自動調度管理角色扮演的自主式 AI 代理,進行協作。
  • Vercel AI SDK:在 JavaScript/TypeScript 中建構 AI 輔助的使用者介面和代理程式。
  • Google ADK:開放原始碼架構,用於建構及協調可互通的 AI 代理程式。