Сигналы — это фоновые признаки переписки, которые сигнальная система распознаёт по ходу разговора: настроение клиента, наличие претензии, требование перевода диалога на оператора, повторный запрос информации. Происходит это незаметно для клиента и отдельно от основной работы агента: сигнальная система наблюдает за признаками разговора и проставляет их значения, а сценарий реагирует на установленные сигналы — запускает шаг, использует значение в условиях, открывает дополнительные вложенные сигналы для анализа.
Так поверх основного сценария появляется второй, почти невидимый слой: основная работа агента идёт по шагам, а сигнальная система тихо работает рядом и следит за смыслом происходящего. Ценность в том, что реакцию на сигнал можно обработать в любой точке сценария и, в зависимости от ситуации, либо сменить вектор работы агента, либо обогатить его задачу дополнительным контекстом.
Разделение ролей
Механика сигналов держится на разделении ролей, и здесь важно, что сам агент сигналы не оценивает. В работе участвуют три независимые стороны:
- Сигнальная система — наблюдает. Работает отдельно от основного агента: на каждом ходе смотрит на переписку и проставляет значения сигналов по их описаниям («клиент раздражён?» → «настроение клиента» = «раздражён»). Решений «что с этим делать» она не принимает — только фиксирует признаки.
- Сценарий — реагирует. На установленные сигналы откликается сценарий: запускает скрытый шаг, проверяет значения в условиях, открывает вложенные сигналы. Это автоматическая реакция, настроенная вами заранее.
- Агент — получает результат. Сам агент признаки не оценивает и о сработавших по сигналам переходах не знает. Он лишь видит текущие значения сигналов в рабочем дашборде и выполняет то, чем сценарий направил его работу, — подмешанные инструкции и переходы по шагам. Так он не отвлекается на анализ и держит внимание на разговоре с клиентом.
Смысл такого разделения в том, что наблюдение за сигналами вынесено из основного агента в отдельную сигнальную систему. Для неё это простая изолированная задача — проставить значения по описаниям, не смешивая её с рассуждениями агента над ответом клиенту. Поэтому сигналы работают надёжно даже в длинном диалоге: проставить одно значение по понятной инструкции куда проще, чем удержать сложное правило через весь разговор и вовремя его применить.
Когда нужны сигналы
Сигналы полезны, когда правила работы агента завязаны на смысл и контекст переписки с клиентом и могут сработать в непредсказуемый момент. Используйте сигналы, когда:
- правило сложно перенести в последовательную работу по шагам или его приходится дублировать несколько раз;
- правило зависит сразу от нескольких факторов, которые можно перенести и наблюдать через отдельные сигналы;
- правило нужно редко, но в момент обнаружения требует критичных мер;
- агент в длинном диалоге регулярно забывает или игнорирует правило;
- реакция на сигнал может использоваться для смены стратегии работы агента в любой части сценария;
- для обогащения контекста агента без изменения направления в сценарии.
И наоборот, не выносите в сигнал то, что проще держать в промпте или в описании шага: общее правило поведения или форматирования сообщений, запреты и границы работы, другие инструкции, которые действуют всегда и с которыми агент стабильно справляется.
Разницу между доступными видами инструкций для агента подробно разбирает раздел «Сравнение инструкций сценария».
Как создаётся сигнал
Управление сигналами происходит на вкладке «Сигналы» в настройках агента: отображается список всех сигналов и кнопка «Добавить новый». Для каждого сигнала в форме задаются:
- «Название сигнала» — ёмкое и понятное название. Оно показывается агенту в рабочем дашборде после установки, а также используется при составлении условий.
- «Тип сигнала» — тип значения: «Да/Нет», «Строка» или «Число».
- «Описание сигнала» — инструкция, по которой сигнальная система заполняет сигнал. Это самое важное поле: чем подробнее и яснее вы опишете, в какой момент и как ставить значение, тем точнее и стабильнее система будет его заполнять.
- «Зависимости» — набор условий, при выполнении которых сигнал вообще берётся в работу (см. ниже).
Тип определяет, какое значение сигнальная система устанавливает при обнаружении сигнала:
- «Да/Нет» — простое наблюдение да/нет: «клиент просил перезвонить», «есть претензия».
- «Строка» — текстовая классификация: тип лида, причина недовольства. Необходимо описать заранее заданные варианты значений — система выбирает из фиксированного списка категорий (например, настроение: нейтральное / позитивное / раздражён / злой). Эти варианты затем можно будет использовать при настройке условий по установленным сигналам.
- «Число» — числовая оценка по шкале: срочность, готовность к покупке от 0 до 10.
«Описание сигнала» — инструкция, по которой заполняется сигнал
«Описание сигнала» — это прямая инструкция модели, и от неё зависит качество работы всей системы сигналов. Здесь действует то же правило, что и для «Инструкции для AI-агента» в данных шага: сигнальная система заполняет сигнал, читая ваше описание, и без понятной инструкции будет ошибаться.
Что стоит указывать в описании:
- конкретные триггеры — когда именно ставить значение («ставь
true, когда клиент во второй раз и более спрашивает о цене»); - смысл каждого значения, особенно для «Да/Нет»: когда
true, когдаfalse, а когда оставить пустым; - границы — что засчитывать не нужно («только если клиент явно просит человека; не ставь, когда он просто задаёт вопросы или выражает недовольство»);
- пересмотр значения — нужно ли изменять или сбрасывать значение сигнала, если ситуация изменилась;
- пограничные случаи, на которых легко ошибиться.
Язык описания — как и у других инструкций для модели: пишите на том языке, на котором вам удобнее настраивать систему (русский подходит хорошо). Это инструкция для агента, а не текст для клиента.
Зависимости: сигнал появляется не сразу
По умолчанию сигнальная система оценивает все активные сигналы. «Зависимости» позволяют скрыть сигнал, пока другой сигнал (или иное условие) не получит нужное значение, — и взять его в работу только тогда.
Раскрытие происходит постепенно, потому что сигнальная система переоценивает сигналы на каждом новом сообщении клиента. На первом сообщении ей доступен только верхний сигнал; как только он получает нужное значение, открывается вложенный — и со следующего сообщения система оценивает уже и его.
Например, задача — не упустить клиента, который заинтересовался, но сомневается. Широкий сигнал «клиент интересуется покупкой» виден всегда; пока он не сработал, копать глубже рано. Как только интерес подтверждён, открывается более узкий сигнал — он уточняет картину и определяет, что именно мешает клиенту решиться: дорого, не доверяет, не уверен в качестве, хочет подумать. Как только причина распознана, сценарий по этому сигналу даёт агенту нужный документ базы знаний — например, «Работа с возражениями» — чтобы тот изучил подходящие аргументы и помог клиенту снять сомнение. В списке сигналов в колонке «Зависимость» виден сигнал, после установки ожидаемого значения которого открывается зависимый.
Сама зависимость — это условие: выбирается сигнал («Название переменной»), оператор («Равно» и другие) и «Ожидаемое значение». Несколько правил объединяются по «и» (нужны все) или «или» (достаточно одного). Важно: зависимость только решает, берётся ли сигнал в работу на этом ходе, — само значение она не ставит. Когда сигнал стал доступен, его значение определяется по переписке.
Формат условий, операторы и все доступные источники — общие для всего сценария и подробно описаны в разделе «Зависимости между сигналами».
На что влияет установленный сигнал
Установленный сигнал работает в нескольких местах.
1. Запускает шаг сценария. Шаг, настроенный на событие «Реакция на сигнал» (см. «На какие события можно настроить шаг»), срабатывает, когда значения сигналов совпали с его «Условиями срабатывания шага». Система выполняет такой шаг до обычного ответа агента. Внутри он может делать всё, что умеет обычный шаг, — добавить инструкцию, перейти к другому шагу, передать диалог менеджеру, проставить теги, сохранить данные.
У сигнального шага могут быть и дополнительные условия из других источников — например, запускать эскалацию только при негативном сигнале и только в рабочее время.
2. Участвует в условиях. Значение сигнала доступно в любых условиях сценария (источник «Сигналы»): по нему можно выбирать ветку перехода, пропускать или блокировать действие, открывать вложенный сигнал. Подробно — в разделе «Источник Сигналы».
3. Показывается агенту в рабочем дашборде. Текущие значения сигналов система показывает агенту в рабочем дашборде на каждом ходе. Так у агента есть устойчивый контекст о переписке между ходами — он видит, что уже распознано (настроение, тип лида, обсуждённые темы), и не разбирает всю историю заново.
Одноразовое срабатывание и сброс
Сигнальный шаг срабатывает один раз на одно значение сигнала — чтобы он не запускался заново на каждом сообщении, пока значение держится. Логика такая:
- «настроение» стало «раздражён» → шаг эскалации сработал и помечен как сработавший;
- следующее сообщение, «настроение» всё ещё «раздражён» → шаг повторно не срабатывает;
- клиент успокоился, сигнал сбросился в пустое значение → отметка снимается;
- позже клиент снова раздражён → шаг может сработать ещё раз.
Сброс сигнала в пустое значение, таким образом, не только очищает значение, но и снимает отметку о сработавших шагах. Этим пользуются специально: в описании сигнала указывают, когда его сбросить, чтобы реакция могла повториться в изменившихся обстоятельствах. Подробнее — в разделе «Шаги, запускаемые сигналами».
На что обратить внимание
- Значения сигналов живут весь диалог и не очищаются между сообщениями. При закрытии диалога они сбрасываются, и новый диалог начинается без ранее найденных сигналов (детали жизненного цикла — в разделе «Источник Сигналы»).
- Сигнальная система заполняет все видимые сейчас сигналы, поэтому держите их число разумным: зависимости помогают показывать только то, что имеет смысл в текущий момент.
Практические паттерны
Эскалация раздражения. Сигнал «настроение клиента» («Строка» с вариантами нейтральное / позитивное / раздражён / злой) сигнальная система обновляет по ходу. Скрытый шаг на «Реакцию на сигнал» при «раздражён» или «злой» подмешивает агенту инструкцию перейти в режим мягкой деэскалации или передаёт диалог менеджеру.
Переключение на скрытую ветку сценария. В сценарии можно держать отдельную ветку, изначально скрытую от агента переключателями видимости шагов. Когда в переписке распознаётся особое состояние, сигнальный шаг открывает агенту переход в эту ветку — а перед этим действием «Очистить задачи агента» сбрасывает накопленный контекст и прежние задачи. Так агент не тащит за собой то, над чем работал до этого, и полностью переключается на новую цель.
Подсчёт повторов через цепочку сигналов. Агенту трудно уследить, сколько раз за переписку повторилось одно и то же — например, сколько раз клиент задал конкретный вопрос или запросил информацию. Это удобно разложить на цепочку связанных сигналов: «запросил информацию» → «запросил повторно» → «настаивает на запросе». Каждый следующий зависит от предыдущего и открывается только после него, поэтому цепочка работает как счётчик повторов. Помогает здесь то, что набор сигналов переоценивается на каждом новом сообщении: следующая ступень становится доступной лишь на одном из последующих сообщений, так что повторы считаются по ходам диалога. Цепочку можно завести под любой конкретный запрос, а на нужной ступени подключить реакцию — например, при «настаивает» передать диалог менеджеру.
Реакция на вложения клиента. Сигнал можно настроить на то, что клиент прислал в чат изображение или аудио — например, фото документа или голосовое сообщение. Такие вложения нередко требуют ручной обработки, с которой агент сам не справится, поэтому по сигналу диалог уходит на менеджера.