---
title: "Встроенные инструменты"
description: "Настраивайте агентов ThunderPhone на завершение звонков, перевод звонящих, навигацию по клавиатуре, ожидание на удержании, поиск знаний, воспроизведение звуков и отправку писем по email."
---

Встроенные инструменты позволяют агенту выполнять распространённые действия во время звонка без подключения вашего API. Большинство доступны автоматически; email, звуки и поиск по базе знаний появляются только после настройки соответствующего параметра или источника. Укажите агенту в промпте, когда использовать каждое действие.

| Инструмент | Для чего использовать | Как включить | Поддерживаемые звонки |
| --- | --- | --- | --- |
| `end_call` | Завершить завершённый разговор | Всегда доступен | Телефон, Talk в браузере, виджет, симуляция и Realtime |
| `transfer_call` | Перенаправить звонящего по телефону | Настройте маршрутизацию в промпте | Обычные телефонные звонки; встроенный Realtime с `call_events` может использовать холодный перевод. В Realtime для сохранённого агента этот инструмент отсутствует. |
| `send_keypad_input` | Нажимать клавиши в телефонном меню | Всегда доступен в обычных телефонных звонках | Телефонные звонки; встроенный исходящий Realtime с `call_events`. В Realtime для сохранённого агента этот инструмент отсутствует. |
| `no_response` | Продолжать слушать, пока говорит автоматическое меню или звонящий размышляет вслух; звонящий, который просит агента подождать, услышит только «Конечно». | Всегда доступен | Все типы звонков |
| `wait_on_hold` | Молча ждать возвращения человека | Включён в исходящие звонки | Исходящие телефонные звонки и исходящие встроенные сессии Realtime |
| `search_knowledge_base` | Отвечать на основе прикреплённых источников | Прикрепите знания к агенту | Звонки сохранённому агенту с прикреплёнными знаниями |
| `play_sound` | Воспроизвести настроенный звук уведомления | **Дополнительно → Звук инструмента** | Звонки сохранённому агенту |
| `send_email` | Отправить письмо одному фиксированному получателю | **Дополнительно → Отправить email** | Звонки сохранённому агенту |

## `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"`. Если попытка тёплого перевода не удалась, управление возвращается агенту, поэтому причина завершения определяется последующим окончанием звонка. В сеансах без телефона запрос на перевод вместо этого завершает сеанс.

См. [Перевод звонков](/ru/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.
```

Если поиск завершается ошибкой, результат возвращается агенту. Инструкции по настройке в панели
управления и через API см. в разделе [База знаний](/ru/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`

Отправляет текстовое электронное письмо одному получателю, настроенному владельцем агента.
Модель указывает тему и текст письма. Она никогда не получает параметр получателя
и не может выбрать или изменить адрес.

В панели управления включите **Дополнительно → Отправка 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.
```

За один звонок можно выполнить не более трёх попыток отправки email. Длина темы ограничена 300
символами, а текста письма — 20 000 символами. Отсутствующая конфигурация, недопустимое
содержимое, лимит на звонок и ошибки доставки возвращаются агенту.
Неудачная доставка всё равно использует одну из трёх попыток.

Перед широким развертыванием протестируйте с контролируемым адресом получателя. Browser Talk и
симуляции отправляют реальные письма; режима пробного запуска нет.

## Примечание о совместимости

Настройка **Дополнительно → Непрерываемые уведомления** и устаревшее поле
`speak_uninterruptible_enabled` сохранены для совместимости, но их включение не даёт эффекта.
Оставьте настройку выключенной; никакой промпт не может активировать этот инструмент.

Для обязательного уведомления в начале звонка используйте **Объявление о согласии**. Оно
воспроизводится дословно перед обычным разговором и не может быть прервано. См. [Законы о согласии на запись звонков](/ru/guides/recording-consent-laws).

## Тестирование и мониторинг встроенных инструментов

Используйте Browser Talk или симуляцию для проверки промптов, поиска по базе знаний, звуков
и email. Эти среды не могут воспроизвести поведение телефонной сети. Проверьте
навигацию по клавиатуре и удержание во время исходящего телефонного звонка, а также выполните
полный тёплый перевод в реальном звонке с использованием подходящего импортированного номера VoIP. Поддержка
Realtime ограничена, как показано в таблице выше.

## Звонки, тарифы и вебхуки

За встроенные действия не взимается плата за использование инструмента. Обычные
тарифы за звонки и услуги провайдера по-прежнему применяются; см. [Тарифы](/ru/guides/pricing). Их вызовы и результаты могут отображаться
в завершённой расшифровке, но они не отправляют события `telephony.tool` или `web.tool`.
Эти события предназначены для [пользовательских функций](/ru/tools/overview). Только завершённый
сброс вызова или перевод меняет `end_reason` звонка; другие сбои возвращаются
агенту. Запись звонка см. в разделе [Вебхуки завершения](/ru/webhooks/call-complete).
