Перейти к основному содержимому

🧰 Навыки агента

Что это. Навык — это обычный блок сценария, который автор разрешил конкретному агенту вызывать самостоятельно. Отдельного каталога инструментов в Fixorix нет: агенту выдаётся то же, из чего собираются сценарии.

Когда нужно. Когда агенту мало разговора: посмотреть данные, посчитать, поставить тег, сменить статус, сходить во внешнюю систему.

📷 Скриншот: вкладка «Навыки» в панели агента (будет добавлен).

Где находится

Вкладка «Навыки (N)» в панели блока «AI-агент». Кнопка «Добавить навык» открывает окно «Выберите блок» с полем «Поиск по навыкам» и разделами «Чтение», «Действие» и свёрнутым разделом «Утилиты». Если ничего не нашлось — «Ничего не найдено».

Даёт блок безопасный результат или меняет реальные данные — определяет сам блок, а не автор сценария. Часть блоков агенту не выдаётся вовсе.

Раздел «Чтение»

Безопасные навыки: они считают, разбирают и преобразуют данные, но ничего не меняют. Всего таких блоков 29.

ГруппаНавыки
ИИ«ИИ — классификация», «ИИ — извлечение данных», «ИИ — выбор варианта», «ИИ — тональность», «ИИ — перевод», «ИИ — язык текста», «ИИ — классификация чата», «ИИ — сводка чата»
Списки«Агрегация», «Фильтр списка», «Сортировка списка», «Длина списка», «Элемент списка», «Объединить список», «Список содержит?»
Объекты«Поле объекта», «Ключи объекта»
Строки, даты, числа«Склеить строки», «Разделить строку», «Заменить в строке», «Шаблон-строка», «Извлечение регуляркой», «Парсинг JSON», «Парсинг даты», «Формат даты», «Формула»
Прочее«В JSON-строку», «Преобразование», «Получить шаблон»

Раздел «Действие»

Эти навыки меняют реальные данные, поэтому в окне выбора они помечены предупреждением. Всего их 12, но три работают только со сценариями типа «Тикеты», а агент живёт только в «Поддержке» — поэтому реально доступны девять.

НавыкЧто делаетДоступен агенту
«HTTP запрос»Вызывает внешний APIпо умолчанию нет, см. ниже
«Изменить статус»Меняет статус обращенияда
«Установить приоритет»Меняет приоритет обращенияда
«Добавить тег»Вешает тег проекта на обращениеда
«Назначить на группу»Передаёт обращение группеда
«Снять группу»Снимает назначение на группуда
«Отметить прочитанным»Двигает отметку прочтенияда
«Завершить диалог»Закрывает обращениеда
«Создать тикет»Заводит тикет по обращениюда
«Завершить тикет»Закрывает тикет; сейчас заглушка — тикет не закрываетсянет — только в сценариях «Тикеты»
«Назначить агента»Назначает исполнителя тикета; сейчас заглушка — исполнитель не меняетсянет — только в сценариях «Тикеты»
«Сменить тип тикета»Меняет тип тикетанет — только в сценариях «Тикеты»
Навык «HTTP запрос» по умолчанию выключен

Выдача «HTTP запроса» агенту закрыта отдельной настройкой сервиса, и по умолчанию она выключена. Настроить такой навык в панели можно, но публикация вернёт ошибку HTTP_REQUEST как навык выключен на сервисе. Проверьте это до того, как построите вокруг него сценарий.

У «Изменить статус» модели предлагаются не все значения: закрывающие статусы «Решён» и «Отменён» из списка убраны. Закрывать обращение — работа навыка «Завершить диалог» или исхода агента.

Часть блоков — заглушки

Некоторые блоки настраиваются, но ничего не делают — они перечислены на странице Блоки. Если такой блок выдан агенту, в описание навыка автоматически добавляется предупреждение «Навык ещё не подключён к реальной системе», а в трассе прогона у вызова появляется пометка «заглушка». Агент честно узнаёт, что действие не выполнилось по-настоящему, но само действие всё равно не произойдёт.

Чего агенту не выдают

Остальные блоки в окне выбора не появляются вовсе:

БлокПочему не выдаётся
«Сообщение», «Вопрос»Дублируют действия самого агента. Подсказка в каталоге: «Ждёт ответа клиента. Агент делает это сам — навыком не нужен»
«ИИ — генерация», «ИИ — JSON по схеме», «ИИ — ответ по базе»Дублируют самого агента. Подсказка: «Отвечает по базе знаний. Агенту не нужен: поиск подшит системным навыком»
«Удалить тикет», «Удалить сообщение»Необратимые действия
«ИИ — модерация»Вызывается самой платформой при проверке реплик агента, а не моделью
Блоки логики графаЛогику ветвления держит сценарий, а не агент

Встроенный поиск по базе знаний

Поиск по базе знаний проекта — не обычный навык. За ним нет блока, в списке навыков он не появляется, отобрать его отдельно нельзя. Он включается тумблером «Искать в базе знаний» в секции «База знаний» на вкладке «Исходы» и настраивается там же — см. Агентский режим.

Единственный аргумент, который заполняет модель, — сам запрос, с подписью «Вопрос своими словами, а не дословная реплика клиента». Каждый поиск расходует лимит «Вызовов навыков».

Карточка навыка

📷 Скриншот: карточка навыка с аргументами (будет добавлен).

ПолеОбязательноОписание
«Название для модели»нетТехническое имя, которым модель зовёт навык. Если оставить пустым, подставится имя типа блока в нижнем регистре. Кириллица переводится в латиницу автоматически
«Когда применять»да, по сутиОписание для модели. Плейсхолдер — «Делает X. НЕ делает Y», подсказка — «Единственное, по чему модель выбирает навык»
«Спрашивать подтверждение оператора»нетВызов уйдёт в очередь подтверждений вместо немедленного выполнения
«Аргументы»зависит от блокаЧто именно передаётся блоку, см. ниже

Кнопка «Убрать навык» удаляет навык из списка. Тумблера «выключить, но оставить» нет — отключение навыка означает удаление строки.

Коротко

Поле «Когда применять» — единственное, по чему модель выбирает между навыками. Пишите не «что это за блок», а «в каком случае его звать и в каком не звать»: «Делает X. НЕ делает Y».

Аргументы навыка

У каждого аргумента есть селект «Заполнять» с четырьмя состояниями.

СостояниеЧто означает
«Фиксированное»Значение задал автор. Модель его не видит и переопределить не может
«Моделью»Модель заполняет аргумент сама при вызове
«Заполняется автоматически»Подставляет сама платформа: идентификатор чата или тикета, имена выходных переменных
«Не задано»Аргумент не заполняет никто

Набор доступных состояний зависит от аргумента: у одного поля обязательно закрепить значение, у другого — либо закрепить, либо открыть модели, третье вообще не редактируется.

Идентификаторы и имена переменных модели не отдают никогда

Идентификаторы сущностей (тикета, чата, контакта, исполнителя, типа, сообщения, участника, группы, шаблона), поля со справочником и имена переменных модели не передаются ни при каких настройках. Даже если открыть такое поле модели, оно молча выбрасывается из карточки.

Значения, которые прислала модель, обезвреживаются как шаблоны: {{…}} в них не подставляется. Всё, что модель прислала сверх открытых ей полей, отбрасывается, и в трассе появляется пометка «Не доехали (поле не открыто модели)».

Как выдать навык

  1. Выделите на холсте блок «AI-агент» и откройте вкладку «Навыки».
  2. Нажмите «Добавить навык» и выберите блок в окне «Выберите блок».
  3. Задайте «Название для модели» — или оставьте пустым, чтобы подставилось имя блока.
  4. Заполните «Когда применять»: в каком случае навык звать и в каком не звать.
  5. Разберите «Аргументы»: что закрепить, а что открыть модели.
  6. Для опасных действий включите «Спрашивать подтверждение оператора».
  7. Упомяните название навыка в инструкции агента — иначе редактор подскажет «Навык объявлен, но в инструкции не упомянут».
  8. Нажмите «Проверить черновик» и опубликуйте сценарий.

Ограничения

  • Максимум 20 навыков на одного агента. Дальше панель предупреждает: «Больше 20 навыков — модель начинает выбирать неверный».
  • Агент не может быть навыком другого агента.
  • Навык, у которого обязательное поле не заполнено ни автором, ни платформой, не публикуется и в рантайме модели не предлагается.
  • Блоки типов «Тикеты» агенту недоступны, потому что сам агент работает только в сценариях «Поддержка».
  • Выдача «HTTP запроса» по умолчанию выключена на сервисе.

Публикация останавливается со следующими сообщениями:

СообщениеЧто не так
Псевдоним «{alias}» повторяетсяДва навыка получили одно и то же «Название для модели»
Поле «{field}» обязательно, а заполнить его некому — закрепите значениеОбязательный аргумент остался в состоянии «Не задано»
Модели открыто поле «{field}», которого у блока нетВ карточке остался аргумент от другого блока или опечатка в имени
«Этот блок сейчас нельзя давать агенту»Блок не выдаётся агенту в принципе или закрыт настройкой сервиса
HTTP_REQUEST как навык выключен на сервисеВыдача навыка «HTTP запрос» выключена

Кто что может

ДействиеМинимальная роль
Смотреть список навыков и их настройкиПо умолчанию
Добавлять, настраивать и убирать навыкиРедактор
Публиковать сценарий с агентомАдминистратор

Агентский режим · Подтверждения оператора · Блоки · База знаний