---
title: "組み込みツール"
description: "ThunderPhoneエージェントに、通話の終了、発信者の転送、キーパッド操作、保留中の待機、ナレッジの検索、サウンドの再生、メールの送信、合計の計算を指示できます。"
---

組み込みツールにより、独自の API を接続せずに、エージェントが一般的な通話アクションを実行できます。ほとんどは自動的に利用可能です。メール、サウンド、計算機、ナレッジ検索は、関連する設定またはソースを構成した後にのみ表示されます。各アクションを使用するタイミングをプロンプトでエージェントに指示します。

| ツール | 用途 | 有効にする方法 | 対応する通話 |
| --- | --- | --- | --- |
| `end_call` | 完了した会話を終了する | 常に利用可能 | 電話、ブラウザの通話、ウィジェット、シミュレーション、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` | 固定の受信者 1 名にメールを送信する | **詳細設定 → メールを送信** | 保存済みエージェントの通話 |
| `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"` になります。ウォーム転送の試行に失敗すると制御がエージェントに戻るため、その後の通話終了によって終了理由が決まります。電話以外のセッションでは、転送リクエストによってセッションが終了します。

ダッシュボードと API の設定、ルーティング、スクリーニング、失敗処理、制限、テストについては、[通話転送](/ja/guides/call-transfers)を参照してください。

## `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.
```

検索が失敗した場合、結果がエージェントに返されます。ダッシュボードと API の設定については、
[ナレッジベース](/ja/guides/knowledge-base)を参照してください。

## `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`

エージェント所有者が設定した1人の受信者にプレーンテキストメールを送信します。
モデルが件名と本文を指定します。受信者パラメーターがモデルに表示されることはなく、
アドレスを選択または変更することもできません。

ダッシュボードで **詳細設定 → メール送信** を有効にし、受信者のアドレスを保存してから、
エージェントをデプロイします。[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.
```

1回の通話で試行できるメール送信は最大3回です。各件名は300
文字、各本文は20,000文字に制限されます。設定不足、無効な
内容、通話ごとの上限、および配信失敗はエージェントに返されます。
配信に失敗した場合も、3回の試行のうち1回として扱われます。

広範囲にデプロイする前に、管理された受信者でテストしてください。ブラウザ通話と
シミュレーションでは実際にメールが送信されます。ドライランモードはありません。

## `calculate`

算術式を正確に評価して結果を返すため、エージェントが頭の中で価格を計算する必要がありません。デフォルトでは無効です。ダッシュボードで **詳細設定 → 計算機** を有効にしてから、エージェントをデプロイします。[Agents API](/api-reference/agents) では、`calculator_enabled: true` をステージングしてからデプロイします。

モデルは `2*23.5 + 16.5 + 4` のような式を書き、結果を発信者に読み上げます。式には数値、`+`、`-`、`*`、`/`、および括弧を使用できます。1回の呼び出しには、小計や配送料を含む合計など、`;` で区切られた最大10個の式を含めることができ、全体で最大500文字です。結果は小数点以下10桁に丸められます。計算には正確な10進数演算を使用するため、`0.1 + 0.2` は `0.3` を返します。ゼロ除算や式内のその他の問題は、エージェントが修正できるようエラーとして返されます。ThunderPhone 上で実行され、つなぎの文言や入力音なしに即座に応答します。

注文合計、手数料、またはお釣りを案内するエージェントで有効にします。プロンプトの変更は不要です。

## 互換性に関する注意

**詳細設定 → 中断不可の告知** 設定とレガシー
`speak_uninterruptible_enabled` フィールドは互換性のために残されていますが、有効にしても
効果はありません。設定はオフのままにしてください。どのプロンプトでもこのツールを有効化することはできません。

通話開始時に必須の告知には、**同意に関するアナウンス** を使用してください。これは通常の会話の前に
そのまま再生され、中断できません。[通話録音に関する同意法](/ja/guides/recording-consent-laws)を参照してください。

## 組み込みツールをテストして監視する

ブラウザ通話またはシミュレーションを使用して、プロンプト、ナレッジ検索、音声、
メールを確認します。これらの環境では電話ネットワークの動作を再現できません。対象となる
発信電話でキーパッド操作と保留をテストし、条件を満たすインポート済み VoIP 番号を使用した実際の通話で
完全なウォーム転送をテストしてください。Realtime のサポートは上記の表に示すとおり
限定されています。

## 通話、料金、Webhook

組み込みアクションには、使用ごとのツール料金はかかりません。通常の通話料金とプロバイダー料金は
引き続き適用されます。[料金](/ja/guides/pricing)を参照してください。通話とその結果は
完了したトランスクリプトに表示される場合がありますが、`telephony.tool` または `web.tool` は発行されません。
これらのイベントは[ユーザー定義関数](/ja/tools/overview)向けです。完了した
通話終了または転送のみが通話の `end_reason` を変更します。その他の失敗はエージェントに返されます。
通話レコードについては、[完了Webhook](/ja/webhooks/call-complete)を参照してください。
