Skip to main content
函式工具可讓你的 AI 智慧體在通話期間呼叫外部 API。使用它們查詢客戶資料、檢查可用時段、預約行程,或執行你的後端支援的任何操作。

運作方式

  1. 你使用結構描述定義工具(工具可接受的引數)
  2. 你提供 endpoint 設定(ThunderPhone 呼叫你的 API 的位置)——或不設定,以便在組織的網路掛鉤接收工具呼叫
  3. 通話期間,AI 會根據對話決定何時使用工具
  4. ThunderPhone 會使用工具引數呼叫你的端點
  5. 你的 API 回應會回傳給 AI,以繼續對話
函式工具是自備 API 的方式。ThunderPhone 也 提供不需要端點的平台代管工具: 應用程式連線(HubSpot、Salesforce、Slack、 Google Calendar、Google Sheets、Cal.com)、 API 連線,以及 MCP 伺服器

工具結構描述

每個工具都遵循以下結構:

函式定義

端點設定

endpoint 設定不會傳送至 AI 模型——它僅供 ThunderPhone 用來執行工具呼叫。

兩種呼叫路徑

你的伺服器收到哪一種請求,取決於工具是否具有 endpoint 兩種路徑皆為阻塞式——AI 會在說到一半時等待 結果——並設有 20 秒逾時限制。請讓處理常式保持快速。混用也沒問題: 在組織設有網路掛鉤 URL 的通話中,具有 endpoint 的工具會 直接呼叫,其餘工具則會改由網路掛鉤處理。

直接端點呼叫

當 AI 呼叫具有 endpoint 的工具時,ThunderPhone 會向你的 URL 傳送 請求:

請求標頭

系統一律會原樣包含你在 endpoint.headers 中設定的自訂標頭, 以及兩個 ThunderPhone 命名空間標頭:
  • X-ThunderPhone-Signature —— 使用你的組織 webhook 密鑰作為金鑰, 對確切的請求主體位元組計算的 HMAC-SHA256
  • X-ThunderPhone-Call-ID —— 目前的通話 ID
除非你的 endpoint.headers 覆寫它,否則系統會設定 Content-Type: application/json —— 自訂 Content-Type 會優先採用。
簽章使用來自 GET /v1/webhook 的組織層級 webhook 密鑰作為金鑰。 如果你的組織從未設定過舊版 webhook,便不會有 密鑰,工具呼叫將帶有 X-ThunderPhone-Call-ID —— 若處理常式在缺少簽章時直接失敗, 就會拒絕這些呼叫。 請設定舊版 webhook 以取得密鑰,或在 endpoint.headers 中放入你自己的 共用密鑰。

請求主體

對於 POST / PUT / PATCH,主體僅包含工具 引數(不含包裝層),並以標準化方式序列化(排序鍵值、精簡 分隔符號):
對於 GET / DELETE,引數會作為查詢參數傳送, 主體為空 —— 此時簽章會針對空位元組字串計算。請參閱 驗證 webhook 簽章

回應

傳回包含工具結果的 JSON 回應:
回應會經過格式化並提供給 AI,以繼續 對話。非 JSON 回應會包裝為 {"data": "<text>"}; 逾時和連線失敗會以錯誤形式回報給 AI,讓 智慧體能夠致歉並繼續處理,而不會停滯。

Webhook 模式派送

設定 endpoint 的工具會以已簽署的 telephony.tool(電話 通話)或 web.tool(網頁呼叫)請求,派送至你組織的舊版 webhook URL。不同於執行後傳送至 webhook 端點的稽核通知,此請求就是 執行本身 —— 你的 HTTP 回應即為工具結果。
web.tool 會攜帶 origin_domain,而非 from_number / to_number。請以 JSON 傳回工具結果 —— 回應規格與直接端點呼叫相同。 如同所有其他 webhook,請求會使用組織 webhook 密鑰,針對原始主體進行簽署。
已訂閱的 webhook 端點還會 在每次工具執行後收到非阻塞式的 telephony.tool / web.tool 通知 (無論透過哪個路徑執行),其中包含 工具的回應 —— 適合用於建立稽核軌跡。請參閱 事件目錄

簽章驗證

直接工具呼叫的簽章方式與 Webhook 相同:
  • 對完全一致的請求主體位元組計算 HMAC-SHA256(標準化 JSON——鍵已排序,無額外空白)
  • 使用你組織的 Webhook 密鑰作為金鑰
  • GETDELETE 工具會對空位元組字串簽章
完整範例——包括空主體情況及未設定密鑰時的注意事項——請參閱驗證 Webhook 簽章

範例:完整預約流程

以下是一組適用於完整預約系統的工具:

最佳實務

description 欄位可協助人工智慧理解何時使用此工具。請明確說明工具的功能,以及適合使用的時機。
回傳人工智慧能理解的錯誤訊息:{"error": "No slots available for that date"},而不是通用的 500 錯誤。
僅回傳人工智慧繼續對話所需的資訊。大型酬載會拖慢回應時間。
只有在確實必要時,才將欄位標示為 required。人工智慧會在呼叫工具前向使用者詢問必填資訊。

相關內容

應用程式連線

平台代管的 HubSpot、Salesforce、Slack、Google Calendar、Google Sheets 和 Cal.com 工具——無需端點。

MCP 伺服器

附加 MCP 伺服器,讓智慧體呼叫其工具。

API 連線

可重複使用、可附加至智慧體的 REST 整合。

驗證 Webhook 簽章

適用於 Webhook 與工具呼叫的單一驗證輔助工具。