---
title: "內建工具"
description: "提示 ThunderPhone 智慧體結束通話、轉接來電者、操作按鍵、等待保留、搜尋知識、播放音效、傳送電子郵件及計算總額。"
---

內建工具可讓智慧體執行常見的通話動作，無須連接你自己的 API。大多數工具會自動提供；電子郵件、音效、計算機和知識搜尋則只會在你設定相關選項或來源後顯示。在提示詞中告訴智慧體何時使用各項動作。

| 工具 | 用途 | 如何啟用 | 支援的通話 |
| --- | --- | --- | --- |
| `end_call` | 結束已完成的對話 | 一律可用 | 電話、瀏覽器 Talk、小工具、模擬和 Realtime |
| `transfer_call` | 為電話來電者轉接 | 在提示詞中設定轉接規則 | 一般電話通話；具備 `call_events` 的內嵌 Realtime 可使用盲轉接。已儲存智慧體的 Realtime 不提供此功能。 |
| `send_keypad_input` | 在電話選單中按鍵 | 在一般電話通話中一律可用 | 電話通話；具備 `call_events` 的內嵌撥出 Realtime。已儲存智慧體的 Realtime 不提供此功能。 |
| `no_response` | 在自動選單說話或來電者邊想邊說時持續聆聽；要求智慧體等待的來電者只會收到「好的。」 | 一律可用 | 所有通話類型 |
| `wait_on_hold` | 靜默等候對方返回 | 包含於撥出通話中 | 撥出電話和撥出內嵌 Realtime 工作階段 |
| `search_knowledge_base` | 根據已附加的來源回答 | 將知識附加至智慧體 | 附加知識的已儲存智慧體通話 |
| `play_sound` | 播放已設定的通知音效 | **進階 → 工具音效** | 已儲存智慧體通話 |
| `send_email` | 寄送電子郵件給一位固定收件者 | **進階 → 傳送電子郵件** | 已儲存智慧體通話 |
| `calculate` | 精確計算總額、費用和找零 | **進階 → 計算機** | 已儲存智慧體通話 |

## `end_call`

當提示詞指示模型執行此操作時，結束目前通話。此工具預設可用，且沒有智慧體設定。

在提示詞中寫明條件，以及任何必要的道別語：

```text
When the caller confirms they need nothing else, say goodbye and end the call.
```

由模型結束的通話會有 `end_reason: "ai_hangup"`，也包括在通話時間限制警告後結束的通話。只有在先達到時間限制時，通話才會以 `max_duration` 結束；預付餘額用盡時，則會以 `balance_exhausted` 結束。

## `transfer_call`

將電話來電者轉接至模型提供的固定號碼。冷轉接會立即進行。經篩選的暖轉接會在連接雙方前，先私下致電目的地。暖轉接需要已驗證且可撥出電話的匯入 VoIP 號碼。

在提示詞中填入目的地號碼和精確的路由條件：

```text
If the caller asks for billing, transfer them to +15551234567.
```

成功的冷轉接會有 `end_reason: "ai_transfer"`；完成的暖轉接交接會有 `end_reason: "ai_warm_transfer"`。暖轉接嘗試失敗時，控制權會交回智慧體，因此通話後續的結束方式會決定其結束原因。在非電話工作階段中，轉接要求會改為結束工作階段。

請參閱[轉接通話](/zh-Hant/guides/call-transfers)，了解控制台和 API 設定、路由、篩選、失敗處理、限制及測試。

## `send_keypad_input`

將 DTMF（電話鍵盤）數字 `0`–`9`、`*` 和 `#` 傳送至電話線路。模型會使用此工具操作 IVR，也就是要求來電者按鍵的自動語音選單。此工具預設可用，且沒有智慧體設定。

請告知模型可操作哪些選單，以及所需值的來源。不要要求它猜測選單選項：

```text
Follow the phone menu for account status. Press a key only after the menu
states what that key does. Enter the account number supplied by the caller.
```

平台會移除不支援的字元，並依序傳送有效數字。若沒有任何有效數字可傳送，或通話無法傳送鍵盤輸入，失敗資訊會回傳給智慧體，以便它復原處理。

## `no_response`

在自動系統仍在說話或要求它繼續聆聽時，以及來電者自言自語（「嗯，讓我看看」）或轉向與他人交談時，讓智慧體保持安靜。當來電者要求智慧體在他們處理事情時等待（「等一下」、「讓我確認一下」、「可以稍等我一下嗎？」），且沒有提供其他需要回覆的內容時，智慧體只會說「當然。」（而不是「慢慢來」），然後等待來電者再次說話。如果線路持續安靜，智慧體的靜默確認提示仍會執行，且一律會說出口。這不適用於真人的問候、問題或真正的保留等待佇列。此功能預設可用，且沒有智慧體設定。

如果你的提示詞告訴智慧體當來電者要求稍候時該說什麼，則以提示詞為準。

通常內建說明已足夠。對於大量使用 IVR 的通話，請在提示詞中強化此界線：

```text
Stay silent while a phone menu is still speaking. Answer a live person as soon
as they address you.
```

此操作不會結束通話。

## `wait_on_hold`

讓撥出智慧體進入靜默保留狀態，直到真人返回。
模型只會在對方明確表示要將智慧體置於保留狀態後使用此工具。此工具會自動於撥出通話中提供，且沒有
控制台設定。

```text
If a person explicitly puts you on hold, wait silently. When they return,
continue from the question you were discussing.
```

請勿提示智慧體針對 IVR 的「請稍候」訊息使用此工具。保留狀態預設最長可持續
15 分鐘。對於一般撥出通話，`POST /v1/call`
接受正整數 `max_hold_seconds`；內嵌 Realtime 將
`max_hold_seconds` 限制為 10–900 秒。如果對方
返回，智慧體會繼續通話，且不會變更通話的結束原因。如果超過限制，
平台會以 `end_reason: "ai_hangup"` 結束通話。

## `search_knowledge_base`

搜尋附加至智慧體的文件並傳回相關段落。附加知識庫或個別知識文件以啟用此工具，
然後告訴模型哪些回答必須來自這些來源：

```text
Search the knowledge base before answering policy questions. If the first
search is inconclusive, try once more with different key terms.
```

如果搜尋失敗，結果會傳回給智慧體。請參閱[知識
庫](/zh-Hant/guides/knowledge-base)了解控制台與 API 設定。

## `play_sound`

在同一回合的任何語音之後，播放智慧體設定的通知音效。在控制台中，將 **進階 → 工具音效** 設為 **提示音**、**叮聲**、
或 **嗶聲**，然後部署智慧體。**無** 會移除此工具。

使用 [Agents API](/api-reference/agents) 時，將 `play_sound_asset` 設為
`"chime"`、`"ding"` 或 `"beep"`，然後部署。設為 `""` 可停用
此工具。

```text
After confirming that an appointment was saved, say "You're all set" and play
the notification sound.
```

播放失敗會傳回給智慧體，但不會結束通話。

## `send_email`

將純文字電子郵件寄給智慧體擁有者設定的唯一收件者。
模型會提供主旨與內文。它永遠不會看到收件者參數，也無法選擇或變更地址。

在控制台中，啟用 **進階 → 寄送電子郵件**，儲存收件者地址，
然後部署智慧體。使用 [Agents API](/api-reference/agents) 時，設定
`send_email_enabled: true` 與非空白的 `send_email_recipient`，然後部署。
在提示中定義觸發條件與必要內容：

```text
When the caller asks to leave a message, collect their name, callback number,
and message. Read the details back for confirmation, then email them.
```

每通通話最多可嘗試寄送三封電子郵件。每個主旨最多 300
個字元，每封內文最多 20,000 個字元。缺少設定、內容無效、每通通話限制與寄送失敗，
都會傳回給智慧體。
即使寄送失敗，仍會消耗三次嘗試中的一次。

在廣泛部署前，先使用由你掌控的收件者地址進行測試。Browser Talk 與
模擬會寄送真實電子郵件；沒有試跑模式。

## `calculate`

精確計算算術運算式並傳回結果，讓智慧體不必在腦中加總價格。此功能預設為關閉。在控制台中，啟用 **進階 → 計算機**，然後部署智慧體。使用 [Agents API](/api-reference/agents) 時，先暫存 `calculator_enabled: true`，然後部署。

模型會寫出運算式，例如 `2*23.5 + 16.5 + 4`，並將結果讀給來電者。運算式可使用數字、`+`、`-`、`*`、`/` 和括號。單次呼叫最多可包含 10 個以 `;` 分隔的運算式，例如小計與加上運費的總計，全部合計最多 500 個字元。結果會四捨五入至小數點後 10 位。此數學運算採用精確十進位算術，因此 `0.1 + 0.2` 會傳回 `0.3`。除以零及運算式中的其他任何問題，都會以錯誤形式傳回給智慧體，以便修正。它在 ThunderPhone 上執行並立即回應，不會有填充語句或打字聲。

適用於報價訂單總額、費用或找零的智慧體。無需修改提示詞。

## 相容性說明

**進階 → 不可中斷揭露事項** 設定與舊版
`speak_uninterruptible_enabled` 欄位會保留以維持相容性，但啟用它們不會產生任何效果。
請保持此設定為關閉；任何提示都無法啟用此工具。

如需在通話開場時進行必要告知，請使用 **同意公告**。它會在一般對話開始前逐字播放，
且無法被中斷。請參閱[通話錄音同意法規](/zh-Hant/guides/recording-consent-laws)。

## 測試及監控內建工具

使用瀏覽器 Talk 或模擬來檢查提示、知識搜尋、音效與電子郵件。這些環境無法重現電話
網路行為。請在撥出電話中測試按鍵導覽與保留功能，並使用符合資格的已匯入 VoIP 號碼，
在真實通話中測試完整的暖轉接。Realtime 支援範圍有限，如上表所示。

## 通話、定價與 Webhook

內建動作不收取每次使用的工具費用。一般通話與供應商費用
仍然適用；請參閱[定價](/zh-Hant/guides/pricing)。其通話與結果可能會顯示
在已完成的逐字稿中，但不會產生 `telephony.tool` 或 `web.tool`。
這些事件專供[使用者定義函式](/zh-Hant/tools/overview)使用。只有成功完成的
掛斷或轉接會變更通話的 `end_reason`；其他失敗會回傳給智慧體。通話
紀錄請參閱[完成 Webhook](/zh-Hant/webhooks/call-complete)。
