Блок сценария «ИИ-агент» (AI Agent) позволяет автоматизировать целевые диалоги с клиентами в голосовых и чат-сценариях с помощью языковых моделей из интеграций с поставщиками ИИ. Вы задаете любое количество требуемых результатов и инструкции по поведению модели. Следуя этим инструкциям, блок ведет с клиентом голосовой или текстовый диалог и собирает сведения для достижения заданных результатов. Когда собрано достаточно данных для одного из результатов, выполнение блока завершается, а переменные сценария заполняются данными, извлеченными из диалога.
| Предварительные условия | ||
|
||
Как блок ведет диалог
Блок «ИИ-агент» ведет диалог с клиентом следующим образом:
- Инициализация: Когда сценарий выполняет блок «ИИ-агент» (диалоговый блок), поставщик ИИ создает первое сообщение для клиента на основе параметра «Инструкции для ИИ» и списка «Запрашиваемые результаты».
- Взаимодействие с клиентом (голос или чат):
- Голос: Сообщение ИИ воспроизводится клиенту с помощью поставщика синтеза речи, выбранного по умолчанию. Ответ клиента преобразуется в текст с помощью интеграции Speech-to-Text, указанной в параметре «Сервис распознавания речи».
- Чат: Сообщение ИИ отправляется клиенту в чат. Диалоговый блок ожидает текстового ответа клиента.
- Если время, заданное параметром Тайм-аут ответа (Reply timeout), истекло, а клиент не ответил, ИИ получает уведомление об отсутствии ответа.
- Оценка ответов: ИИ анализирует ответ клиента.
- Если ответ клиента содержит данные, связанные с одним из результатов списка «Запрашиваемые результаты», ИИ извлекает и форматирует эти данные для дальнейшего использования диалоговым блоком.
- Если собраны все данные для запрашиваемого результата, ИИ указывает, какой результат должен выбрать диалоговый блок.
- ИИ формирует следующее сообщение для клиента. Оно отправляется только в том случае, если диалоговый блок продолжает разговор.
- Выход или продолжение: Блок «ИИ-агент» определяет, продолжить диалог или завершить выполнение блока.
- Результат достигнут: Если для одного из результатов из списка «Запрашиваемые результаты» собраны все данные и ИИ указал, какой результат выбрать, диалоговый блок завершается через соответствующий условный выход. Отправку последнего сообщения ИИ клиенту определяет параметр «Обрезать заключительный ответ ИИ».
- Продолжение диалога: Если данных недостаточно для достижения какого-либо результата из списка «Запрашиваемые результаты», диалоговый блок возвращается к этапу взаимодействия с клиентом: отправляет следующее сообщение и ожидает ответа.
- Максимальное количество обменов репликами: если клиент не отвечает на несколько сообщений ИИ либо достигнуто максимальное количество обменов репликами, диалоговый блок переходит к выходу по умолчанию и сообщает об ошибке
1005«Reached the maximum number of dialog turns» («Достигнуто максимальное количество обменов репликами»).
Настройки

Текст заголовка
Название экземпляра блока в сценарии.
Поставщик ИИ
Выберите учетную запись поставщика ИИ для этого блока либо выберите <<default>>, если поставщик услуг предоставил учетную запись ИИ.
Сервис распознавания речи
Только для блока «ИИ-агент» в голосовых сценариях.
Сервис распознавания речи, который будет преобразовывать высказывания пользователя в текст. Выберите одну из настроенных учетных записей интеграции Speech-to-Text (STT) либо <<default>>, если поставщик услуг предоставил сервис распознавания речи.
Тайм-аут определения конца фразы
Только для блока «ИИ-агент» в голосовых сценариях.
Продолжительность тишины после ответа клиента, которая указывает, что он закончил говорить. Когда клиент начинает говорить, его ответ записывается до паузы длительностью, заданной параметром «Тайм-аут определения конца фразы». После этого ответ считается завершенным и отправляется поставщику ИИ для анализа.
Разрешить прерывание голосового сообщения речью клиента
Только для блока «ИИ-агент» в голосовых сценариях.
Если параметр включен, блок постоянно отслеживает речь клиента во время воспроизведения сообщения ИИ. Обнаружив речь во время сообщения ИИ, блок выполняет следующие действия:
- Останавливает воспроизведение сообщения ИИ.
- Записывает ответ клиента и преобразует его в текст.
- Продолжает взаимодействие: отправляет ответ клиента поставщику ИИ для анализа.
Если параметр выключен, блок начинает слушать речь клиента только после полного воспроизведения сообщения ИИ. Любая речь клиента до окончания сообщения игнорируется.
Контексты распознавания речи
Только для блока «ИИ-агент» в голосовых сценариях.
Необязательный список слов или фраз, которые клиент, вероятно, произнесет. Термины из списка с большей вероятностью будут распознаны правильно. Подробнее см. в описании параметра Speech context блока Play-Listen.
Сообщение для воспроизведения во время ожидания ИИ
Только для блока «ИИ-агент» в голосовых сценариях.
Выбранное аудиосообщение воспроизводится, пока блок ожидает ответа поставщика ИИ. Музыка или звуковой эффект могут помочь клиенту понять, что система обрабатывает его ответ.
Инструкции для ИИ
Эти инструкции передаются ИИ при каждом обмене репликами и определяют, как он должен вести диалог с клиентом. Переменные сценария позволяют персонализировать инструкции для каждого клиента.
При составлении инструкций учитывайте особенности модели, выбранной у поставщика ИИ. Идеи по составлению эффективных инструкций можно найти в галерее запросов Vertex AI и руководстве OpenAI по составлению запросов.
Независимо от выбранной модели и поставщика типичные инструкции для ИИ включают следующее:
- Контекст диалога: «Вы общаетесь с клиентом, который, возможно, хочет сделать X, Y или Z…»
- Описание цели, которую должен достичь ИИ: «Выясните, чего хочет клиент, и соберите необходимую информацию…»
- Описание поведения ИИ: «Будьте вежливы, задавайте короткие вопросы, придерживайтесь делового тона…»
- Ограничения тем разговора: «Говорите только о X, Y или Z. Собирайте только сведения, необходимые для решения X, Y или Z. Вы представляете только компанию Cloud Contact».
- Роль ИИ: «Представьтесь Дианой, виртуальным помощником клиентов Cloud Contact…»
Чтобы составить эффективные инструкции, потребуется поэкспериментировать. Полезно проверить их в диалогах, где вы пытаетесь увести ИИ от заданного сценария: например, заставить его обсудить конкурента, дать обещания от имени вашей компании, сделать нежелательное заявление, задать неуместный вопрос или нарушить инструкции.
Дополнительно: системные инструкции
Нажмите «Дополнительно», чтобы открыть диалоговое окно «Системные инструкции», в котором можно просмотреть и настроить следующие параметры:
- Системный запрос (System prompt): инструкции, которые отправляются вместе с основным запросом «Инструкции для ИИ» и управляют поведением ИИ на системном уровне.
- Запрос для создания краткого описания (Summarization prompt): эти инструкции вместе с полной расшифровкой диалога отправляются поставщику ИИ для формирования краткого описания разговора.

Сформировать результаты (Generate Outcomes)
Кнопка «Сформировать результаты» (Generate Outcomes) использует выбранного поставщика ИИ для автоматического создания запрашиваемых результатов и связанных с ними выходных данных на основе параметра «Инструкции для ИИ». При нажатии кнопки инструкции отправляются выбранному поставщику ИИ, который анализирует их и возвращает структурированный список возможных результатов с необходимыми данными. Так можно проверить, насколько хорошо ИИ понимает инструкции. Ранее настроенные результаты, которые не вошли в новый набор, отключаются и отображаются серым цветом, но остаются доступны для просмотра и повторного использования.
Перед добавлением новых результатов система предупреждает, какие из существующих результатов будут отключены, и перечисляет переменные сценария, определенные отключаемыми результатами.
Запрашиваемые результаты
Определяет результаты, к которым ИИ должен стремиться в диалоге с клиентом. Каждый результат добавляет в блок «ИИ-агент» условный выход, позволяя задать отдельную ветвь сценария. Для каждого результата можно указать любое количество элементов данных, которые необходимо собрать для перехода по соответствующему выходу. Блок использует выход только тогда, когда ИИ выбрал этот результат и собраны все необходимые для него данные.
Каждый запрашиваемый результат имеет следующие свойства:
Название (Запрашиваемый результат)
Название результата и соответствующего условного выхода. При анализе ответа клиента ИИ учитывает название каждого запрашиваемого результата, поэтому оно должно точно описывать результат.
Выходные данные (Запрашиваемый результат)
Раздел выходных данных каждого запрашиваемого результата может содержать любое количество элементов. Для каждого элемента необходимо указать описание данных (Data description) и имя переменной (Variable name), а также при необходимости пример значения (Example Value).
- Описание данных: описание данных на естественном языке. Этот текст указывает ИИ, какие именно сведения нужно получить от клиента. Можно также задать формат данных, например: «Дата рождения клиента в формате MM/DD/YYYY».
- Имя переменной: имя переменной сценария, которую блок заполнит при переходе по соответствующему условному выходу.
- Пример значения: необязательный пример значения, который помогает ИИ лучше понять задачу.
Примеры запрашиваемых результатов
Предположим, вы хотите разрешить клиентам менять адрес с помощью блока «ИИ-агент». Для этого нужны старый и новый адреса клиента. Можно создать запрашиваемый результат со следующими свойствами:
- Название:
Change Address - Выходные данные:
- Элемент 1
- Описание данных:
Customer's previous address, formatted as <...> or <...> - Имя переменной:
old_address - Пример значения:
123 Berkshire Ln, Lafayette, CO, 80026, USA
- Описание данных:
- Элемент 2
- Описание данных:
Customer's new address, formatted as <...> or <...> - Имя переменной:
new_address - Пример значения:
456 Bogle Way, Houston, TX, 77002, USA
- Описание данных:
- Элемент 1
Будет создан условный выход с названием «Change Address». Если блок «ИИ-агент» использует этот выход, переменные сценария «old_address» и «new_address» будут заполнены данными, которые клиент сообщил во время диалога.
Включать контекст диалога
Каждый ответ ИИ формируется на основе расшифровки разговора из текущего блока «ИИ-агент», параметра «Инструкции для ИИ» (включая дополнительные инструкции) и списка «Запрашиваемые результаты».
Включите параметр «Включать контекст диалога», чтобы передавать ИИ сведения с предыдущих этапов сценария. В параметре «Контекст диалога» (см. ниже) укажите дополнительный контекст, который будет передаваться ИИ.
Если параметр выключен (по умолчанию), дополнительный контекст не передается.
| Контекст может повысить качество взаимодействия, однако обычно увеличивает стоимость и время ответа поставщика ИИ. | ||
Контекст диалога
Если параметр «Включать контекст диалога» включен, нажмите ссылку просмотра и редактирования контекста (view/edit Context), чтобы открыть диалоговое окно «Контекст диалога». Здесь можно указать дополнительные сведения, например краткое описание разговора или внешние данные, которые будут передаваться ИИ для сохранения связности диалога между несколькими блоками «ИИ-агент».
- Включать в контекст: раскрывающийся список, определяющий состав контекста диалога:
- Только краткое описание разговора (Conversation summary only): вариант по умолчанию. Включает только краткое описание, автоматически сформированное ИИ в последнем успешно выполненном блоке «ИИ-агент».
- Только дополнительный контекст: включает только заданный вами дополнительный контекст.
- Краткое описание разговора и дополнительный контекст (Conversation summary and additional context): включает дополнительный контекст и краткое описание, автоматически сформированное ИИ.
- Дополнительный контекст: текстовое поле для дополнительных сведений, передаваемых ИИ. Можно сочетать обычный текст, структурированные данные (например, JSON) и переменные сценария, чтобы предоставить ИИ больше информации о взаимодействии.
Обрезать заключительный ответ ИИ
Определяет, отправляется ли клиенту заключительное сообщение ИИ при завершении блока.
- Если параметр включен (по умолчанию), заключительный ответ ИИ удаляется из расшифровки и не отправляется клиенту.
- Если параметр выключен, заключительный ответ отправляется клиенту и включается в расшифровку.
Независимо от значения этого параметра заключительный ответ ИИ всегда сохраняется в $(aiAgentFinalReply) для дальнейшего использования.
Максимальное количество обменов репликами
Введите максимальное количество обменов репликами между ИИ и клиентом (не более 50), после которого блок завершится с ошибкой.
Тайм-аут ответа ИИ
Введите максимальное время в секундах, в течение которого блок ожидает ответа поставщика ИИ после получения реплики клиента. Если ответ за это время не получен, блок завершается с ошибкой.
Тайм-аут ответа клиента
Введите максимальное время в секундах, в течение которого блок ожидает ответа клиента после сообщения ИИ. Если клиент не отвечает, блок запрашивает новое сообщение у поставщика ИИ, сообщая, что на предыдущее сообщение ответа не было. Максимальное количество повторных попыток получить ответ клиента задается параметром Максимальное количество тайм-аутов ответа подряд (Max Consecutive Reply Timeouts). Максимальное значение — 180 секунд.
Максимальное количество повторных попыток подряд
Максимальное количество последовательных попыток, при которых блок ожидает в течение всего периода, заданного параметром «Тайм-аут ответа клиента», и пытается получить ответ клиента. После достижения этого количества блок переходит по ветви по умолчанию и сообщает об ошибке.
Температура модели
Определяет степень творческой вариативности ответов ИИ. Минимальное значение — 0.0 (по умолчанию), а максимальное зависит от модели ИИ. У типичных моделей максимальная температура равна 2.0. Низкие значения (например, 0.1) делают ответы более детерминированными и менее творческими, поэтому они обычно становятся предсказуемыми и повторяющимися. Высокие значения (например, от 0.8 до 1.2) дают более разнообразные и творческие ответы, благодаря чему диалог может больше напоминать общение с человеком. Однако высокая температура увеличивает риск бессмысленных ответов ИИ.
Это поле может переопределять температуру, заданную в дополнительных параметрах учетной записи ИИ (Advanced Options):
- Значение задано: введенное здесь значение температуры переопределяет настройку учетной записи ИИ.
- Поле пустое: используется температура из раздела Advanced Options учетной записи ИИ.
- По умолчанию: если поле пустое и дополнительные параметры не настроены, система использует
0.0.
Условные выходы
Блок «ИИ-агент» создает условные выходы на основе заданного вами списка «Запрашиваемые результаты». Когда ИИ определяет, что конкретный результат достигнут и все необходимые для него данные собраны, сценарий переходит по соответствующему выходу.
Выход по умолчанию
Выход по умолчанию используется, если блок «ИИ-агент» не может выполнить условия ни одного условного выхода, заданного списком «Запрашиваемые результаты». Например, клиент не предоставил нужные сведения до достижения максимального количества обменов репликами либо поставщик ИИ вернул ошибку.
Описанные ниже переменные сценария aiAgentErrorCode и aiAgentErrorBody содержат сведения, позволяющие определить, почему блок «ИИ-агент» использовал выход по умолчанию.
Переменные
Блок «ИИ-агент» заполняет несколько переменных сценария, которые помогают понять, как работает блок.
Переменные расхода токенов
Токены — единицы, которыми поставщики ИИ измеряют объем обрабатываемого текста. Обычно токен соответствует слову или части слова. Как правило, стоимость рассчитывается по количеству входных токенов (отправленных модели) и выходных токенов (сгенерированных моделью), обработанных за расчетный период. Следующие переменные сценария заполняются блоком «ИИ-агент» во время выполнения сценария:
- aiAgentTotalInTokens содержит суммарное количество токенов, отправленных поставщику ИИ за время выполнения сценария.
- aiAgentTotalOutTokens содержит суммарное количество токенов, полученных поставщиком ИИ за время выполнения сценария.
Значения этих переменных накапливаются в течение выполнения сценария: например, они не сбрасываются при повторном выполнении блока «ИИ-агент» в одном сценарии. Однако их можно обнулить с помощью блока Задать переменную (Set Variable).
Переменная с итоговым описанием от ИИ
После каждого выполнения блока «ИИ-агент» автоматически создается краткое описание разговора. Его можно передать в качестве контекста в следующий блок «ИИ-агент» или оператору, который продолжит взаимодействие после завершения сценария. Формат и содержание краткого описания задаются параметром «Дополнительно: системные инструкции».
- aiAgentSummary содержит краткое описание из последнего выполненного блока «ИИ-агент». Каждый новый выполненный блок «ИИ-агент» перезаписывает эту переменную.
Переменная с заключительным ответом
Отправка заключительного ответа ИИ клиенту зависит от параметра «Обрезать заключительный ответ ИИ». При этом, если заключительный ответ был сформирован, он в любом случае сохраняется в следующей переменной:
- aiAgentFinalReply содержит последний заключительный ответ поставщика ИИ.
Переменные ошибок
Если блок «ИИ-агент» не может использовать условный выход, следующие переменные заполняются сведениями, позволяющими определить причину:
- aiAgentErrorCode содержит целое число с указанием типа ошибки. В таблице ниже указаны возможные коды ошибок и их значение.
- aiAgentErrorBody содержит полный ответ API поставщика ИИ.
В следующей таблице приведены коды ошибок, которые может содержать aiAgentErrorCode (переменная сценария), и их значения.
| Код | Описание |
| 1000 | Учетная запись поставщика ИИ не указана либо удалена. |
| 1001 | Учетная запись Speech-to-Text не указана либо удалена. Применяется только к голосовым сценариям. |
| 1002 | Блок сценария «ИИ-агент» не включен поставщиком услуг. |
| 1003 | Ошибка аутентификации учетной записи поставщика ИИ: ключ API отсутствует, недействителен или просрочен. |
| 1004 | Не удалось выполнить запрос API через учетную запись поставщика ИИ. Это указывает на проблему подключения. |
| 1005 | Достигнуто максимальное количество обменов репликами (параметр «Максимальное количество обменов репликами»), но результат не выбран либо для выбранного результата получено недостаточно данных. |
| 1006 | Достигнуто максимальное количество последовательных обменов без ответа клиента (параметр «Максимальное количество повторных попыток подряд»). |
| 1007 | Поставщик ИИ не вернул ответ или результаты во время последнего обмена репликами. |
| 1008 | Сервис распознавания речи не смог распознать ответ клиента. Применяется только к голосовым сценариям. |
| 2000 | Другая ошибка поставщика ИИ. Полное содержимое ответа API доступно в aiAgentErrorBody и может помочь определить причину ошибки.
|
|
