Действие требует несколько фрагментов информации, прежде чем оно сможет завершиться.
→Собирайте каждое значение на отдельном шаге как слот; ассистент запрашивает любые еще не предоставленные данные и пропускает уже предоставленные.
Почему: Пошаговое заполнение слотов обрабатывает неупорядоченный и многозначный ввод без ручного ветвления.
Источник↗
Значение должно сохраняться после завершения текущего действия.
→Храните его в переменной сессии, а не в переменной шага/действия. Переменные действия ограничены действием; переменные сессии существуют на протяжении всего разговора.
Почему: Выбор неправильной области видимости — классическая ошибка: значение исчезает по завершении действия или не удается совместно использовать в разных действиях.
Шаг предлагает пользователю выбрать из известного, фиксированного набора.
→Используйте тип ответа "варианты" с определенными выборами вместо свободного текста и сопоставьте каждый вариант со значением.
Почему: Варианты ограничивают ввод, устраняют неоднозначность парсинга и отображаются в виде кнопок на поддерживаемых каналах.
Собранное значение (электронная почта, дата, сумма) может быть некорректным.
→Добавьте условие проверки на шаге; если оно недействительно, оставьте пользователя на шаге с корректирующим запросом.
Почему: Проверка во время сбора данных позволяет избежать передачи некорректных данных расширениям и последующим шагам.
Последующие шаги должны выполняться только для определённых пользователей или значений.
→Установите условия шагов на уже собранные переменные, чтобы шаги пропускались, если их условие ложно.
Почему: Условия выражают ветвление без дублирования действий; редактор оценивает их сверху вниз.
Несколько действий требуют одинакового подпотока (например, подтверждение личности).
→Выделите общую логику в подакцию и вызывайте её из каждого родительского действия.
Почему: Подакции поддерживают логику проверки DRY (Don't Repeat Yourself) и согласованной; дублирование шагов приводит к рассинхронизации.
Пользователь задает несвязанный вопрос посреди потока ("какие у вас часы работы?").
→Разрешите отступление, чтобы ассистент ответил на побочный вопрос, а затем вернулся к прерванному действию.
Почему: Блокировка отступлений навязывает жесткий сценарий, который расстраивает пользователей с законными побочными запросами.
Необходимо вычислить или преобразовать значение внутри шага.
→Используйте встроенный язык выражений (например, строковые и математические функции для переменных) на шаге или в ответе.
Почему: Легковесные преобразования относятся к выражениям; обращение к веб-хуку для тривиальных математических операций — это излишество.
Последующему действию требуется значение, которое пользователь предоставил ранее.
→Обратитесь к существующей переменной сессии вместо повторного запроса.
Почему: Повторный запрос уже известных данных ощущается как сбой; передача контекста вперед является признаком хорошего потока.
Поток должен остановиться или перейти к другому действию при определённом условии.
→Используйте "завершить действие" или переход "перейти к шагу в другом действии" для явного управления потоком.
Почему: Явные переходы предотвращают неожиданный переход к следующему шагу после терминального условия.