Skip to main content

Ноды сценария

Используйте ноды, чтобы выстроить сценарий разговора. Каждая нода отвечает за отдельный шаг диалога или действие агента. Общий вид канваса с несколькими типами нод и связями между ними Выбор компонентов в конструкторе агента
  • Conversation — позволяет агенту разговаривать с абонентом, задавать вопросы, предоставлять информацию и продолжать диалог.
  • Function — запускает внешнее действие, например проверку данных или отправку запроса в другую систему.
  • Code — выполняет пользовательскую логику, когда стандартных нод недостаточно.
  • Logic Split — направляет разговор по разным сценариям в зависимости от ответа абонента или заданного условия.
  • Extract Variables — извлекает важные данные из разговора и сохраняет их для следующих шагов.
  • Transfer — переводит звонок на оператора или другого агента.
  • Component — объединяет повторно используемую часть сценария, чтобы применять её в нескольких местах.
  • MCP Tool — подключает MCP-инструмент, который выполняет определённое действие.
  • End — завершает разговор финальным сообщением.

Нода Conversation

Нода Conversation используется для разговора с абонентом. Она задаёт вопросы, объясняет информацию, собирает данные и передаёт разговор на следующий шаг сценария. Открытая панель ноды Conversation
  • Название ноды — задаёт понятное имя шага, чтобы его было легко найти в сценарии.
  • «Промпт» / «Фраза» — две вкладки: генерировать реплику по инструкции или произнести фиксированный текст.
  • «Инструкция (LLM генерирует реплику)» — что агент должен сказать или сделать на этом шаге. В инструкции можно использовать переменные, например {{transfer_status}} или {{transfer_success}}.
  • «Не ждать ответа — произнести реплику и сразу перейти дальше» — единственный переход узла при этом становится Always.
  • «Переопределения для узла» — выключенный тумблер означает, что узел наследует дефолты агента. Переопределить можно «Перебивание», модель генерации и «Голос» — другой голос TTS, пока говорит этот узел.
  • Базы знаний — позволяет выбрать для этой ноды отдельную базу знаний вместо стандартной базы агента и её настроек поиска.
  • «Примеры для дообучения (транскрипт → ожидаемый переход)» — пары, которые показывают классификатору, куда уводить разговор.
  • «Инструменты (модель вызывает сама)» — необязательный список. С инструментами модель вызывает их сама, и ход диалога занимает больше времени.
  • «Переходы» — куда разговор пойдёт дальше. Порядок проверки: Always (безусловный переход)Equation (условие-формула по переменным)Prompt (условие проверяет модель)Default (запасной переход). Always в узле может быть только один, и других переходов при нём быть не должно.
  • Global node — подпись в кабинете латиницей; делает узел достижимым из любой точки сценария.
  • Удалить ноду — удаляет ноду из сценария агента.

Нода Function

Нода Function запускает внешнее действие: например, проверяет данные клиента или отправляет информацию в другую систему. Для разработки и тестирования можно использовать предсказуемый mock-ответ, а для рабочей интеграции — реальный HTTP-запрос. Открытая панель ноды Function с заполненными Params и Mock-ответом
  • Название ноды — определяет имя шага в сценарии.
  • «Имя» и «Описание» в блоке «Функция» — как функция называется и что она делает.
  • «Режим заглушки (постоянный ответ, без HTTP-вызова)» — тумблер между предсказуемой заглушкой для разработки и настоящим HTTP-вызовом.
  • «Параметры (значения поддерживают {{example}} — входные значения функции; в них подставляются переменные звонка.
  • «LLM-аргументы (parameters: имя ← описание)» — аргументы, которые модель извлекает из диалога и добавляет к параметрам. Пустое поле означает «только подстановка {{example}}».
  • «Переменные из ответа (переменная ← JSONPath)» — сохраняют значения из ответа функции в переменные звонка. Эти переменные можно использовать в следующих нодах и переходах, включая ветки успеха, ошибки и тайм-аута.
  • «Реплика во время вызова (необязательно)» — что агент скажет, пока функция выполняется.
  • «Ответ-заглушка (JSON, поддерживает {{example}} и сценарии — статус и тело ответа заглушки, а также именованные сценарии успеха, ошибки или тайм-аута. Такие сценарии помогают тестировать поток без обращения к реальным endpoint’ам.
  • «Переопределения для узла» — своя «Модель извлечения аргументов для этого узла». Переопределение действует только на LLM-построение аргументов: чистая подстановка {{example}} модель не использует, там переопределять нечего.
  • Переходы — задают следующую ноду после результата функции. Переменные ответа можно использовать для ветвления по успеху и ошибке.
  • Global node — делает узел достижимым из любой точки сценария.
  • Удалить ноду — удаляет функцию из сценария агента.

Нода Code

Нода Code выполняет пользовательский Python-код в sandbox. Используйте её для расчётов, преобразования данных и других небольших действий, которые не покрываются стандартными нодами. Открытая панель ноды Code: подпись песочницы с vars и now, пример с вызовом now("Asia/Almaty") и переменные результата
  • Название ноды — определяет имя шага в сценарии.
  • Редактор кода — содержит Python-код, который должна выполнить нода. В sandbox доступны словарь vars, переменная result, часы now и безопасные встроенные функции; import, open и eval недоступны, сети и файловой системы у песочницы нет.
  • Текущее времяnow("Asia/Almaty") возвращает время в зоне IANA словарём: epoch, iso, date, time (ЧЧ:ММ), hour, minute, second, dow (1–7, понедельник первый), weekday (0–6, понедельник первый) и tz. Зона обязательна: now() без аргумента, пустая строка и неизвестная зона дают ошибку, и нода уходит по ветке ошибки. Переходы на летнее время считает база зон, поэтому проверка «который час» не требует обращения через Function к внешнему сервису времени.
  • Выходные переменные — задают через запятую имена значений, которые создаёт код. Эти переменные становятся доступны следующим нодам и переходам. Имена самой песочницы — vars, result, now — в переменные звонка не попадают: валидатор предупреждает о таком имени, потому что переменная всегда осталась бы пустой.
  • Тайм-аут выполнения — устанавливает максимальное время работы кода. Если лимит превышен, выполнение прерывается.
  • Переходы — соединяют результат выполнения кода со следующей нодой сценария.
  • Global node — делает ноду Code доступной для перехода из любой точки сценария.
  • Удалить ноду — удаляет шаг с кодом из сценария агента.

Нода Logic Split

Нода Logic Split беззвучно направляет сценарий по условиям, заданным через уравнения. Она не отвечает абоненту и не ждёт нового сообщения, а проверяет доступные значения и выбирает первый подходящий переход. Открытая панель ноды Logic Split с несколькими переходами
  • Название ноды — определяет имя шага ветвления в сценарии.
  • Беззвучное ветвление — проверяет условия без формирования ответа и ожидания новой реплики абонента.
  • Переходы — задают возможные направления для каждой ветки. Переход может использовать условие Always, Equation или Prompt.
  • Порядок проверки — условия проверяются сверху вниз. Порядок такой: Always, Equation, Prompt, затем Default. Срабатывает первое подходящее условие.
  • Always — направляет сценарий безусловно и прекращает проверку остальных условий.
  • Equation — проверяет правило по известным значениям, например по переменным из предыдущих нод.
  • Prompt — использует модель для оценки условия на основе доступного контекста разговора.
  • Default — служит запасным вариантом, если ни одно другое условие не сработало. Добавьте его, чтобы сценарий не остановился.
  • Изменение порядка переходов — перетаскивайте карточки переходов, чтобы изменить приоритет проверки.
  • Global node — делает ветвление доступным для перехода из любой точки сценария.
  • Удалить ноду — удаляет шаг ветвления из сценария агента.

Нода Extract Variables

Нода Extract Variables беззвучно извлекает структурированные данные из разговора. Используйте её, когда агенту нужно сохранить имя, оценку, статус, дату или другое значение для следующих шагов сценария. Открытая панель ноды Extract Variables
  • Название ноды — определяет имя шага извлечения в сценарии.
  • Извлекаемые переменные — добавляют одно или несколько значений, которые нода должна найти в диалоге.
  • Имя переменной — задаёт имя извлечённого значения, например var1.
  • Тип переменной — определяет ожидаемый формат значения, например string.
  • Описание для LLM — объясняет смысл переменной и помогает модели найти нужное значение в разговоре.
  • Локальные настройки ноды — позволяют выбрать другую модель извлечения только для этой ноды. Если настройка не включена, нода использует модель агента.
  • Переходы — соединяют шаг извлечения со следующей нодой сценария.
  • Global node — делает ноду извлечения доступной для перехода из любой точки сценария.
  • Удалить ноду — удаляет шаг извлечения из сценария агента.

Нода Transfer

Нода Transfer переводит звонок на оператора или другого агента. Она поддерживает прямой холодный перевод и тёплый перевод, при котором агент сначала передаёт получателю краткую информацию о разговоре. Открытая панель ноды Transfer с секцией «График работы операторов»: тумблер графика, часовой пояс операторов, строки дней и реплика вне графика Секция «Фраза перед переводом»: тумблер, выбор между фиксированным текстом и промптом, поле реплики и галочка «Не перебивать эту фразу»
  • Название ноды — определяет имя шага перевода в сценарии.
  • «Сразу (слепой перевод)» / «С предупреждением (со сводкой)» — соединить напрямую или сначала дать получателю краткий брифинг. При тёплом переводе абонент ставится на удержание, агент дозванивается назначению, передаёт сводку и уходит.
  • Назначение — задаёт, куда перевести звонок: на номер телефона, агента или URI. Перевод на другого агента работает во всех каналах: телефонный звонок, звонок с сайта, голосовой тест в кабинете, чат и WhatsApp.
  • Переменные перевода — позволяют использовать значения {{transfer_status}} и {{transfer_success}} для отслеживания результата.
  • Метод сигнализации — выбирает SIP INVITE или SIP REFER для передачи звонка.
  • Длительность ожидания ответа — задаёт, сколько секунд платформа ждёт ответа назначения. Допустимый диапазон — 1–120 секунд.
  • Отображаемый Caller ID — определяет, какой Caller ID увидит получатель, например номер транка по умолчанию.
  • SIP-заголовки — позволяют добавить пользовательские заголовки X-*. В значениях можно использовать переменные и секреты окружения.
  • Transfer-сабгруппа — выбирает линию транка, по которой уйдёт нога или REFER: её пул номеров, лимиты, разрешённые направления и форму REFER. «По умолчанию» означает прежнее поведение — сабгруппа звонка, иначе дефолт транка. Если выбранный пятизначный префикс не заведён на транке звонка, набор идёт через сабгруппу по умолчанию, а причина видна в Истории. Сами сабгруппы заводятся в Телефонии.
  • Фраза перед переводом — тумблер «Говорить фразу перед переводом»: узел сам произносит «Соединяю вас с оператором…», отдельный узел разговора перед ним не нужен. Текст либо фиксированный, с подстановкой переменных, либо генерируется по вашей инструкции. Перевод стартует только после того, как фраза прозвучала целиком; вне графика операторов она не звучит. Галочка «Не перебивать эту фразу» относится ко всем репликам узла, а не только к этой.
  • График работы операторов — тумблер «Переводить только в рабочее время» ограничивает перевод расписанием. Укажите часовой пояс операторов (подставляется зона организации; измените, если операторы работают в другой) и хотя бы одну строку с днями и часами: включённый график без строк не публикуется, а интервал через полночь задаётся двумя строками. Галочка «Не переводить за 5 минут до закрытия» не даёт отдать абонента, которого уже никто не возьмёт.
  • Что сказать вне графика — фиксированный текст или инструкция для сгенерированной реплики. Пустое поле означает, что нода промолчит. В реплике доступны {{transfer_next_open_time}} и {{transfer_next_open_date}}.
  • Запись разговора — галочка «Продолжать запись после перевода», по умолчанию выключена. По умолчанию запись заканчивается там же, где длительность звонка, — на конце разговора с агентом: при тёплом переводе это удержание, при слепом — начало дозвона. Включите её, чтобы записать и разговор абонента с оператором: тогда запись будет длиннее звонка — учитывайте требования к записи разговоров.
  • Переменные ошибки — после неудачного перевода {{transfer_status}} хранит причину (no_answer, busy, rejected, transfer_ring_timeout или error), а {{transfer_success}} равна false. Их можно использовать в условиях резервных переходов.
  • Переходы — задают резервные направления после неудачного перевода. После успешного перевода они не выполняются, поскольку успешный перевод завершает работу AI.
  • Global node — делает перевод доступным для перехода из любой точки сценария.
  • Удалить ноду — удаляет шаг перевода из сценария агента.
Вне графика перевод не начинается вовсе: {{transfer_status}} принимает значение out_of_hours, {{transfer_success}} равна false, ближайшее открытие попадает в {{transfer_next_open_time}}, {{transfer_next_open_date}}, {{transfer_next_open_iso}} и {{transfer_next_open_epoch}}, реплика произносится, если вы её задали, и нода уходит по своим переходам. Дайте такой ноде переход Default или условие {{transfer_status}} == "out_of_hours" — иначе валидатор предупредит, что звонку вне окна некуда идти. В истории звонка событие перевода помечено как пропущенное с причиной «Вне графика работы» — то есть закрытое окно не попадает в число переводов, которые не доехали до оператора.
Перевод на другого агента меняет и голос. Если адресат перевода — агент, продолжение разговора идёт на настройках целевого агента: его голос и модель синтеза, его язык распознавания, его напоминания о тишине и слова поддакивания, его ограничения управления звонком. Таймеры тишины отсчитываются заново, от первой реплики нового агента.
Звонок в истории: событие перевода со статусом «пропущено» и причиной «Вне графика работы», реплика о графике и переход по умолчанию в ноду End

Нода Component

Нода Component добавляет в сценарий повторно используемый блок. Используйте её для типовой части разговора: проверки данных, завершения звонка или часто повторяющегося сценария. После публикации агент разворачивает компонент в обычные ноды. Открытая панель ноды Component
  • Название ноды — определяет имя повторно используемого блока в сценарии.
  • Component — позволяет выбрать существующий компонент для добавления в сценарий.
  • Создать компонент — если нужного блока в библиотеке ещё нет.
  • Переходы — соединяют компонент со следующей нодой основного сценария.
  • Global node — делает компонент доступным для перехода из любой точки сценария.
  • Удалить ноду — удаляет ссылку на компонент из сценария агента.

Нода MCP Tool

Нода MCP Tool вызывает выбранный инструмент через MCP-сервер без голосового ответа. Используйте её, когда агенту нужно получить данные или выполнить внешнее действие через MCP-интеграцию. Открытая панель ноды MCP Tool
  • Название ноды — определяет имя шага MCP в сценарии.
  • «MCP-сервер» — сервер, который предоставляет инструмент. Если серверов нет, добавьте его в настройках MCP-серверов.
  • Аргументы инструмента — задают значения, необходимые выбранному инструменту. В аргументах можно использовать переменные, например {{var}}.
  • «Ответ → переменные (JSONPath)» — сохраняют значения из ответа инструмента в переменные звонка. Они доступны следующим нодам и переходам.
  • Переменные результата — позволяют использовать статус, success, error, result и HTTP status для ветвления после вызова.
  • «Реплика во время вызова» — что агент скажет, пока инструмент работает.
  • Тайм-аут — задаёт максимальное время выполнения MCP-вызова.
  • «Требовать подтверждение перед вызовом» — агент сначала спросит разрешения.
  • Переходы — соединяют результат работы инструмента со следующей нодой. Переменные ответа можно использовать для веток успеха и ошибки.
  • Global node — делает MCP-инструмент доступным для перехода из любой точки сценария.
  • Удалить ноду — удаляет MCP-вызов из сценария агента.

Нода End

Нода End завершает разговор. Используйте её, когда агент выполнил задачу и должен произнести финальное прощание перед завершением звонка. Открытая панель ноды End
  • Название ноды — определяет финальный шаг сценария.
  • «Промпт» / «Фраза» — сгенерировать прощание по инструкции или произнести фиксированный текст.
  • Фиксированная фраза — задаёт сообщение, которое агент произносит при завершении разговора. В него можно включить переменные, например {{transfer_status}} или {{transfer_success}}.
  • Allow interrupting the farewell phrase — разрешает абоненту перебить финальное сообщение. Если настройка выключена, фраза будет произнесена полностью, после чего звонок завершится.
  • Удалить ноду — удаляет финальный шаг из сценария агента.