# Описание действий в промпте

Как описать в системном промпте условия вызова действий, обязательные данные, подтверждение пользователя и обработку результата.

Действия позволяют боту получать и изменять данные во внешних системах: искать клиента, создавать запись, менять статус сделки, отправлять webhook или выполнять последовательность операций.

Чтобы бот вызывал действия предсказуемо, настройте не только карточку действия, но и правила его использования в системном промпте.

# Перед написанием промпта

Сначала создайте действие по инструкции Как работают действия и заполните:

  • Название действия — понятное название в интерфейсе;
  • Кодовое название — уникальный идентификатор, по которому действие можно однозначно указать в промпте;
  • Описание действия для бота — назначение, условия вызова и ограничения;
  • Реакцию на выполнение — что бот должен сделать после получения результата;
  • Что выполнить в результате — базовую или интеграционную операцию и её параметры.

Описание в карточке помогает модели понять отдельное действие. Системный промпт задаёт общий порядок работы: какие данные собрать, когда запросить подтверждение, в какой последовательности вызывать действия и как отвечать пользователю.

# Что обязательно указать в промпте

# 1. Условие вызова

Опишите конкретную ситуацию, в которой действие разрешено использовать.

Используй действие `check_stock`, только когда клиент спрашивает о наличии конкретного товара.

Не используйте расплывчатые формулировки вроде «при необходимости вызывай действие». Укажите намерение пользователя и ожидаемый результат.

# 2. Обязательные данные

Перечислите значения, которые бот должен получить до вызова.

Перед вызовом `create_record` узнай услугу, имя клиента, телефон и желаемую дату.
Если хотя бы одного значения нет, задай уточняющий вопрос и не вызывай действие.

# 3. Проверка и подтверждение

Для создания, изменения, удаления, оплаты и других значимых операций запросите явное подтверждение.

Перед вызовом `create_order` покажи состав заказа и итоговую сумму.
Вызывай действие только после однозначного подтверждения клиента.

Не считайте вопрос или уточнение подтверждением операции.

# 4. Порядок нескольких действий

Если результат одной операции нужен другой, зафиксируйте последовательность.

1. Вызови `find_contact` и проверь, существует ли контакт.
2. Если контакт найден, используй его идентификатор в `create_deal`.
3. Если контакт не найден, сначала вызови `create_contact`, затем `create_deal`.

# 5. Ответ после выполнения

Опишите отдельно успешный результат, пустой ответ и ошибку.

После успешного `create_order` сообщи номер заказа из результата действия.
Если номер не вернулся, не придумывай его и сообщи, что заказ не удалось подтвердить.
При ошибке предложи повторить попытку или передай диалог менеджеру.

Бот должен использовать только фактические данные из результата и не подставлять вымышленные идентификаторы, даты, цены или статусы.

# Использование превью результата

В карточке операции раскройте Превью результата. Оно показывает пример JSON, который действие вернёт боту, не выполняя операцию и не изменяя реальные данные.

По превью определите:

  • какие поля доступны после выполнения;
  • где находится нужный идентификатор, статус или сообщение;
  • какие значения могут отсутствовать;
  • как сформулировать ответ пользователю.
Превью результата действия в ChatRex

Превью не заменяет тестирование: фактический ответ внешней системы может зависеть от переданных данных и настроек интеграции.

# Пример готового блока промпта

## Запись клиента

Используй действие `create_record`, когда клиент хочет записаться на услугу.

До вызова обязательно получи:
- услугу;
- имя клиента;
- телефон;
- дату и время.

Повтори клиенту все данные и запроси подтверждение.
Не вызывай действие до явного подтверждения.

После успешного выполнения сообщи дату, время и номер записи из результата.
Если слот недоступен, предложи выбрать другое время.
Если действие вернуло ошибку, не сообщай об успешной записи и предложи помощь менеджера.

# Типичные ошибки

  • действие упомянуто без кодового названия;
  • не указано, какие данные обязательны;
  • действие вызывается до подтверждения клиента;
  • несколько действий перечислены без порядка выполнения;
  • бот должен сообщить данные, которых нет в результате;
  • отсутствует сценарий для ошибки или пустого ответа;
  • финансовая или необратимая операция разрешена без дополнительной проверки.

# Проверка настройки

Протестируйте как минимум четыре ситуации:

  1. Все данные собраны, пользователь подтвердил операцию.
  2. Одного обязательного значения не хватает.
  3. Пользователь изменил данные или отказался от подтверждения.
  4. Действие вернуло пустой результат или ошибку.

Для операций, изменяющих данные, используйте тестовые записи и аккаунты.

# Что читать дальше