Функции (Functions)
Источник: doc.nextbot.ru/functional/functions
Что такое функции
Функции — это конкретные действия, которые ИИ-Агент может выполнять во время диалога. Агент сам решает, когда вызвать функцию, основываясь на контексте разговора и описании функции.
Примеры функций:
- Записать клиента на встречу
- Отправить данные в CRM
- Сделать запрос к внешнему API
- Собрать данные из диалога (имя, телефон, email)
- Выполнить Python-скрипт
Создание функции
Ручное создание
- Перейти в раздел Функции
- Нажать "Добавить функцию"
- Заполнить:
| Поле | Описание | Пример |
|---|---|---|
| Название | Используется ИИ для понимания назначения (на английском) | collect_contact_info |
| Описание | Подробное описание, КОГДА вызывать функцию | «Вызывать, когда клиент готов оставить контакт» |
Генерация с помощью ИИ
Можно описать задачу текстом, и ИИ автоматически создаст функцию с параметрами.
Рекомендации
- Названия — на английском, snake_case
- Описание — максимально подробное, чтобы ИИ точно знал когда вызывать
- Одна функция = одно конкретное действие
Параметры функции
Параметры — это данные, которые агент должен собрать у пользователя перед выполнением функции.
Настройки параметра
| Поле | Описание |
|---|---|
| Название | Имя параметра (на английском) |
| Тип | text (строка), number (число), boolean (да/нет) |
| Инструкция | Описание для ИИ, что именно запрашивать |
| Обязательный | Будет ли ИИ требовать этот параметр у пользователя |
Типы параметров
- text — строковое значение (имя, email, адрес, описание)
- number — числовое значение (сумма, количество, возраст)
- boolean — логическое значение (да/нет, согласие)
Список значений (Enum)
Можно задать фиксированный список допустимых значений для параметра. Для каждого значения можно указать свой сценарий:
Параметр: service_type
Значения:
- "consultation" → Сценарий: отправить в CRM как лид
- "support" → Сценарий: переключить на техподдержку
- "complaint" → Сценарий: уведомить менеджера
Примеры часто используемых параметров
| Параметр | Тип | Описание |
|---|---|---|
client_name |
text | Имя клиента |
phone |
text | Телефон |
email |
text | |
message |
text | Текст обращения |
amount |
number | Сумма |
currency |
text | Валюта |
agree_to_terms |
boolean | Согласие на обработку данных |
Активация функции
«Разрешить ИИ вызвать эту функцию» (по умолчанию)
ИИ сам решает, когда вызвать функцию, на основе:
- Системного промта агента
- Описания функции
- Контекста диалога
«Вызвать при определённом условии»
Функция вызывается автоматически при выполнении условия:
- Определённое ключевое слово
- Конкретный этап диалога
- Результат предыдущей функции
Реакция на выполнение (After Execution Reaction)
Определяет, что произойдёт сразу после вызова функции:
| Реакция | Описание | Когда использовать |
|---|---|---|
| Отправить сообщение | Зафиксированный текст ответа | Стандартные подтверждения ("Спасибо, заявка принята!") |
| Инструкция для ИИ | Дополнительные указания агенту | Направить ход диалога ("Теперь спроси про сроки") |
| Разрешить ИИ ответить | ИИ сам генерирует ответ | Когда нужен контекстный, персонализированный ответ |
| Ничего не делать | Молча завершить | Фоновые операции (логирование, отправка в CRM) |
Пример: «Отправить сообщение»
Текст: "Спасибо, {client_name}! Ваша заявка #{request_id} принята.
Менеджер свяжется с вами в течение 15 минут."
Пример: «Инструкция для ИИ»
Инструкция: "Клиент оставил заявку. Поблагодари его и спроси,
есть ли ещё вопросы. Не предлагай повторно оставить заявку."
Поведение после выполнения (Behavior Scenario)
Определяет общий ход диалога после функции:
Варианты поведения
| Поведение | Описание |
|---|---|
| Продолжить диалог | Агент продолжает как обычно |
| Пауза | Агент останавливается. Возобновление: вручную или автоматически через N минут |
| Дополнить промт | К системному промту добавляются новые инструкции |
| Переключить агента | Диалог передаётся другому специализированному агенту |
Пауза
- Ручная — оператор снимает паузу вручную
- Автоматическая — агент возобновляется через заданное время (например, 30 минут)
- Полезно для: ожидания подтверждения оператора, проверки оплаты
Дополнить промт
Позволяет динамически менять поведение агента:
После функции "оплата_подтверждена":
Дополнить промт: "Клиент оплатил заказ. Теперь помоги ему
с доставкой и отслеживанием. НЕ предлагай оплату повторно."
Переключить агента
Функция "transfer_to_support":
→ Переключить на: Агент-Техподдержка
→ Контекст сохраняется