🧰 Навыки агента
Что это. Навык — это обычный блок сценария, который автор разрешил конкретному агенту вызывать самостоятельно. Отдельного каталога инструментов в Fixorix нет: агенту выдаётся то же, из чего собираются сценарии.
Когда нужно. Когда агенту мало разговора: посмотреть данные, посчитать, поставить тег, сменить статус, сходить во внешнюю систему.
📷 Скриншот: вкладка «Навыки» в панели агента (будет добавлен).
Где находится
Вкладка «Навыки (N)» в панели блока «AI-агент». Кнопка «Добавить навык» открывает окно «Выберите блок» с полем «Поиск по навыкам» и разделами «Чтение», «Действие» и свёрнутым разделом «Утилиты». Если ничего не нашлось — «Ничего не найдено».
Даёт блок безопасный результат или меняет реальные данные — определяет сам блок, а не автор сценария. Часть блоков агенту не выдаётся вовсе.
Раздел «Чтение»
Безопасные навыки: они считают, разбирают и преобразуют данные, но ничего не меняют. Всего таких блоков 29.
| Группа | Навыки |
|---|---|
| ИИ | «ИИ — классификация», «ИИ — извлечение данных», «ИИ — выбор варианта», «ИИ — тональность», «ИИ — перевод», «ИИ — язык текста», «ИИ — классификация чата», «ИИ — сводка чата» |
| Списки | «Агрегация», «Фильтр списка», «Сортировка списка», «Длина списка», «Элемент списка», «Объединить список», «Список содержит?» |
| Объекты | «Поле объекта», «Ключи объекта» |
| Строки, даты, числа | «Склеить строки», «Разделить строку», «Заменить в строке», «Шаблон-строка», «Извлечение регуляркой», «Парсинг JSON», «Парсинг даты», «Формат даты», «Формула» |
| Прочее | «В JSON-строку», «Преобразование», «Получить шаблон» |
Раздел «Действие»
Эти навыки меняют реальные данные, поэтому в окне выбора они помечены предупреждением. Всего их 12, но три работают только со сценариями типа «Тикеты», а агент живёт только в «Поддержке» — поэтому реально доступны девять.
| Навык | Что делает | Доступен агенту |
|---|---|---|
| «HTTP запрос» | Вызывает внешний API | по умолчанию нет, см. ниже |
| «Изменить статус» | Меняет статус обращения | да |
| «Установить приоритет» | Меняет приоритет обращения | да |
| «Добавить тег» | Вешает тег проекта на обращение | да |
| «Назначить на группу» | Передаёт обращение группе | да |
| «Снять группу» | Снимает назначение на группу | да |
| «Отметить прочитанным» | Двигает отметку прочтения | да |
| «Завершить диалог» | Закрывает обращение | да |
| «Создать тикет» | Заводит тикет по обращению | да |
| «Завершить тикет» | Закрывает тикет; сейчас заглушка — тикет не закрывается | нет — только в сценариях «Тикеты» |
| «Назначить агента» | Назначает исполнителя тикета; сейчас заглушка — исполнитель не меняется | нет — только в сценариях «Тикеты» |
| «Сменить тип тикета» | Меняет тип тикета | нет — только в сценариях «Тикеты» |
Выдача «HTTP запроса» агенту закрыта отдельной настройкой сервиса, и по умолчанию она выключена. Настроить такой навык в панели можно, но публикация вернёт ошибку HTTP_REQUEST как навык выключен на сервисе. Проверьте это до того, как построите вокруг него сценарий.
У «Изменить статус» модели предлагаются не все значения: закрывающие статусы «Решён» и «Отменён» из списка убраны. Закрывать обращение — работа навыка «Завершить диалог» или исхода агента.
Некоторые блоки настраиваются, но ничего не делают — они перечислены на странице Блоки. Если такой блок выдан агенту, в описание навыка автоматически добавляется предупреждение «Навык ещё не подключён к реальной системе», а в трассе прогона у вызова появляется пометка «заглушка». Агент честно узнаёт, что действие не выполнилось по-настоящему, но само действие всё равно не произойдёт.
Чего агенту не выдают
Остальные блоки в окне выбора не появляются вовсе:
| Блок | Почему не выдаётся |
|---|---|
| «Сообщение», «Вопрос» | Дублируют действия самого агента. Подсказка в каталоге: «Ждёт ответа клиента. Агент делает это сам — навыком не нужен» |
| «ИИ — генерация», «ИИ — JSON по схеме», «ИИ — ответ по базе» | Дублируют самого агента. Подсказка: «Отвечает по базе знаний. Агенту не нужен: поиск подшит системным навыком» |
| «Удалить тикет», «Удалить сообщение» | Необратимые действия |
| «ИИ — модерация» | Вызывается самой платформой при проверке реплик агента, а не моделью |
| Блоки логики графа | Логику ветвления держит сценарий, а не агент |
Встроенный поиск по базе знаний
Поиск по базе знаний проекта — не обычный навык. За ним нет блока, в списке навыков он не появляется, отобрать его отдельно нельзя. Он включается тумблером «Искать в базе знаний» в секции «База знаний» на вкладке «Исходы» и настраивается там же — см. Агентский режим.
Единственный аргумент, который заполняет модель, — сам запрос, с подписью «Вопрос своими словами, а не дословная реплика клиента». Каждый поиск расходует лимит «Вызовов навыков».
Карточка навыка
📷 Скриншот: карточка навыка с аргументами (будет добавлен).
| Поле | Обязательно | Описание |
|---|---|---|
| «Название для модели» | нет | Техническое имя, которым модель зовёт навык. Если оставить пустым, подставится имя типа блока в нижнем регистре. Кириллица переводится в латиницу автоматически |
| «Когда применять» | да, по сути | Описание для модели. Плейсхолдер — «Делает X. НЕ делает Y», подсказка — «Единственное, по чему модель выбирает навык» |
| «Спрашивать подтверждение оператора» | нет | Вызов уйдёт в очередь подтверждений вместо немедленного выполнения |
| «Аргументы» | зависит от блока | Что именно передаётся блоку, см. ниже |
Кнопка «Убрать навык» удаляет навык из списка. Тумблера «выключить, но оставить» нет — отключение навыка означает удаление строки.
Поле «Когда применять» — единственное, по чему модель выбирает между навыками. Пишите не «что это за блок», а «в каком случае его звать и в каком не звать»: «Делает X. НЕ делает Y».
Аргументы навыка
У каждого аргумента есть селект «Заполнять» с четырьмя состояниями.
| Состояние | Что означает |
|---|---|
| «Фиксированное» | Значение задал автор. Модель его не видит и переопределить не может |
| «Моделью» | Модель заполняет аргумент сама при вызове |
| «Заполняется автоматически» | Подставляет сама платформа: идентификатор чата или тикета, имена выходных переменных |
| «Не задано» | Аргумент не заполняет никто |
Набор доступных состояний зависит от аргумента: у одного поля обязательно закрепить значение, у другого — либо закрепить, либо открыть модели, третье вообще не редактируется.
Идентификаторы сущностей (тикета, чата, контакта, исполнителя, типа, сообщения, участника, группы, шаблона), поля со справочником и имена переменных модели не передаются ни при каких настройках. Даже если открыть такое поле модели, оно молча выбрасывается из карточки.
Значения, которые прислала модель, обезвреживаются как шаблоны: {{…}} в них не подставляется. Всё, что модель прислала сверх открытых ей полей, отбрасывается, и в трассе появляется пометка «Не доехали (поле не открыто модели)».
Как выдать навык
- Выделите на холсте блок «AI-агент» и откройте вкладку «Навыки».
- Нажмите «Добавить навык» и выберите блок в окне «Выберите блок».
- Задайте «Название для модели» — или оставьте пустым, чтобы подставилось имя блока.
- Заполните «Когда применять»: в каком случае навык звать и в каком не звать.
- Разберите «Аргументы»: что закрепить, а что открыть модели.
- Для опасных действий включите «Спрашивать подтверждение оператора».
- Упомяните название навыка в инструкции агента — иначе редактор подскажет «Навык объявлен, но в инструкции не упомянут».
- Нажмите «Проверить черновик» и опубликуйте сценарий.
Ограничения
- Максимум 20 навыков на одного агента. Дальше панель предупреждает: «Больше 20 навыков — модель начинает выбирать неверный».
- Агент не может быть навыком другого агента.
- Навык, у которого обязательное поле не заполнено ни автором, ни платформой, не публикуется и в рантайме модели не предлагается.
- Блоки типов «Тикеты» агенту недоступны, потому что сам агент работает только в сценариях «Поддержка».
- Выдача «HTTP запроса» по умолчанию выключена на сервисе.
Публикация останавливается со следующими сообщениями:
| Сообщение | Что не так |
|---|---|
Псевдоним «{alias}» повторяется | Два навыка получили одно и то же «Название для модели» |
Поле «{field}» обязательно, а заполнить его некому — закрепите значение | Обязательный аргумент остался в состоянии «Не задано» |
Модели открыто поле «{field}», которого у блока нет | В карточке остался аргумент от другого блока или опечатка в имени |
| «Этот блок сейчас нельзя давать агенту» | Блок не выдаётся агенту в принципе или закрыт настройкой сервиса |
HTTP_REQUEST как навык выключен на сервисе | Выдача навыка «HTTP запрос» выключена |
Кто что может
| Действие | Минимальная роль |
|---|---|
| Смотреть список навыков и их настройки | По умолчанию |
| Добавлять, настраивать и убирать навыки | Редактор |
| Публиковать сценарий с агентом | Администратор |
→ Агентский режим · Подтверждения оператора · Блоки · База знаний