運作方式
- 你使用結構描述定義工具(工具可接受的引數)
- 你提供
endpoint設定(ThunderPhone 呼叫你的 API 的位置)——或不設定,以便在組織的網路掛鉤接收工具呼叫 - 通話期間,AI 會根據對話決定何時使用工具
- ThunderPhone 會使用工具引數呼叫你的端點
- 你的 API 回應會回傳給 AI,以繼續對話
工具結構描述
每個工具都遵循以下結構:函式定義
端點設定
endpoint 設定不會傳送至 AI 模型——它僅供 ThunderPhone 用來執行工具呼叫。兩種呼叫路徑
你的伺服器收到哪一種請求,取決於工具是否具有endpoint:
兩種路徑皆為阻塞式——AI 會在說到一半時等待
結果——並設有 20 秒逾時限制。請讓處理常式保持快速。混用也沒問題:
在組織設有網路掛鉤 URL 的通話中,具有
endpoint 的工具會
直接呼叫,其餘工具則會改由網路掛鉤處理。
直接端點呼叫
當 AI 呼叫具有endpoint 的工具時,ThunderPhone 會向你的 URL 傳送
請求:
請求標頭
endpoint.headers 中設定的自訂標頭,
以及兩個 ThunderPhone 命名空間標頭:
X-ThunderPhone-Signature—— 使用你的組織 webhook 密鑰作為金鑰, 對確切的請求主體位元組計算的 HMAC-SHA256X-ThunderPhone-Call-ID—— 目前的通話 ID
endpoint.headers 覆寫它,否則系統會設定
Content-Type: application/json —— 自訂 Content-Type 會優先採用。
請求主體
對於POST / PUT / PATCH,主體僅包含工具
引數(不含包裝層),並以標準化方式序列化(排序鍵值、精簡
分隔符號):
GET / DELETE,引數會作為查詢參數傳送,
主體為空 —— 此時簽章會針對空位元組字串計算。請參閱
驗證 webhook 簽章。
回應
傳回包含工具結果的 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 密鑰作為金鑰
GET/DELETE工具會對空位元組字串簽章
範例:完整預約流程
以下是一組適用於完整預約系統的工具:最佳實務
撰寫清楚的說明
撰寫清楚的說明
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 與工具呼叫的單一驗證輔助工具。
