> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hubtalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 05. Переходы

> Пять видов переходов, порядок их проверки и почему Default у говорящего узла мёртв.

# Переходы: пять видов и их приоритет

<Info>
  **Цель модуля:** перестать угадывать, почему диалог ушёл не туда, — и уметь читать порядок проверки переходов.
</Info>

Порядок проверки жёсткий и он показан прямо в инспекторе над списком переходов: **Always → условие-формула → условие-промпт → Default**. Формулы проверяются сверху вниз, побеждает первая выполненная — поэтому порядок переходов в списке значим, его можно перетаскивать.

| Вид                      | Кто решает      | Как выглядит и где применяется                                                                                                                                     |
| ------------------------ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Always**               | никто           | Безусловный уход. Может быть только один и только один на узле — «сделал и пошёл». Ставится автоматически после узлов Function, Code и реплик без ожидания ответа. |
| **Формула** (`equation`) | код, без LLM    | `{{slots_count}} > 0`, `{{status}} == "ok"`. Дешёво и детерминированно: если решение можно выразить сравнением переменных — берите формулу, не промпт.             |
| **Промпт** (`prompt`)    | классификатор   | Смысл сказанного: «клиент хочет перенести визит». Формулируйте от лица клиента и различимо: два похожих условия на одном узле — гарантированная путаница.          |
| **Default**              | fallback        | Срабатывает, если не сработало ничего. Осмыслен только у немых узлов и у реплик без ожидания ответа.                                                               |
| **Таймер** (`timeout`)   | таймер рантайма | «Клиент молчит N секунд» — детерминированный переход без модели. Только на Conversation, один таймер на узел.                                                      |

<Warning>
  **Грабли: Default у говорящего узла мёртв**

  Классификатор говорящего узла видит только промпт-условия. Если клиент сказал что-то неожиданное, узел просто отвечает сам и остаётся на месте — Default не сработает никогда. Валидация об этом предупреждает (`speaking_default`). Нужное поведение задаётся промпт-условием, а не Default.
</Warning>

<Note>
  **Три формы таймера**

  Секунды живут в поле условия, поэтому таймер можно поставить и на промпт-переход: тогда он срабатывает двумя входами — «клиент сказал вот это» *или* «клиент молчал». Так рисуется сценарий «выберите время… или просто промолчите, и я перезвоню» одним переходом. Ограничение одно: таймер узла должен быть **короче** порога завершения по тишине, иначе публикация не пройдёт.
</Note>
