iTop AI Assistant: ИИ-помощник для приёма заявок в iTop
Всем привет!
Давно не писал сюда ничего большого, а повод накопился. Последнее время я делаю проект, о котором хочу наконец рассказать: iTop AI Assistant. Это ИИ-слой поверх iTop, который помогает с первым этапом работы с новой заявкой: понять, что вообще хочет пользователь, и собрать недостающие детали до того, как заявку откроет инженер.
Зачем это нужно?
Типичная заявка: «Не печатает принтер». Без модели, без текста ошибки, без понимания, что уже пробовали. Инженер пишет в ответ: какой принтер, что на экране, с какого компьютера печатаете, и ждёт ответа. Пользователь не знает, какие сведения нужны инженеру, а инженер без них не может начать работу. На эту переписку уходит время, в том числе время по SLA.
Идея в том, чтобы первый круг уточнений проходил ИИ, а инженер получал заявку, в которой нужные сведения уже есть.
Что он умеет сейчас
Пока реализован один модуль: приём новых заявок. Когда в iTop появляется заявка, ассистент:
- если у неё не выбраны услуга и подкатегория, подбирает их по каталогу услуг организации заявителя и записывает в заявку;
- если информации не хватает, задаёт в общем журнале один уточняющий вопрос и ждёт ответа;
- когда картина ясна, оставляет во внутреннем журнале короткую сводку для инженера и дальше в заявку не вмешивается.
Самое интересное, на мой взгляд, это откуда он знает, чего именно не хватает. Критерии полноты берутся из описания подкатегории услуги в iTop. Написано в описании подкатегории «Hardware incident», что нужны производитель и модель устройства, ОС и точный текст ошибки, значит ассистент будет спрашивать именно это, а не дежурное «опишите проблему подробнее». Получается, что настройка поведения в основном сводится к нормально заполненному каталогу услуг, а это полезно и само по себе.
Вот как это выглядит для пользователя в портале. Заявка «Не печатает принтер» без подробностей, ассистент спрашивает ровно то, что требует подкатегория, пользователь отвечает:
А вот что после ответа видит инженер во внутреннем журнале:
Если заявка с самого начала написана хорошо, вопросов не будет вовсе: ассистент сам подберёт услугу и подкатегорию и сразу оставит сводку. На тестовом стенде такая заявка обрабатывается секунд за десять.
Пара ограничений, которые я считаю принципиальными. Ассистент отступает, как только заявку взял инженер (статус ушёл из «Новый»). Задаёт не больше трёх вопросов на заявку, и это настраивается. А закрывать или переназначать заявки сам не умеет вовсе. Автоматически он делает только то, что безопасно и легко откатить.
Как это устроено
Ассистент работает рядом с iTop, отдельным сервисом. В сам iTop ничего не устанавливается: никаких расширений, только сервисная учётная запись, пара триггеров и вебхуков, которые мастер настройки ассистента может создать сам. iTop шлёт вебхук о новой заявке или новом комментарии, ассистент читает заявку через REST API, думает и пишет обратно от имени своей учётки. Поэтому все его действия видны в истории заявки и подписаны, как у обычного сотрудника.
iTop остаётся единственным источником правды. Ассистент не хранит у себя копий заявок и переписки, а каждый раз читает всё заново. У себя он держит только служебное состояние: сколько вопросов уже задано и закончил ли он с заявкой.
Внутри работает один ИИ-агент с небольшим набором инструментов: посмотреть каталог, записать классификацию, задать вопрос, передать инженеру. Важный момент: все правила (один вопрос за раз, лимит вопросов, остановка после назначения инженера, категория только из каталога) зашиты в код, а не в промпт. Если модель вдруг решит сделать что-то лишнее, её вызов просто отклонят, и заявка не пострадает. Модели бывают очень изобретательны, так что полагаться только на промпт я не стал.
Админка
Для настройки есть веб-интерфейс, в том числе на русском. Первая установка идёт через мастер из четырёх шагов: токены, подключение к iTop, вебхуки и подключение к модели. Каждый шаг проверяет соединение, прежде чем пустить дальше.
Отдельно хочу сказать про журнал запусков. Каждая обработка заявки записывается по шагам: какие инструменты вызвал агент, что получил в ответ, что решил, сколько ушло токенов и времени. Если ассистент сделал что-то странное, можно открыть запуск и посмотреть, почему так вышло.
Ещё есть холостой режим, с которого я советую начинать. Ассистент обрабатывает настоящие заявки как в бою, но ничего не пишет в iTop: вопросы и сводки, которые он отправил бы, видны только в журнале запусков. Можно спокойно посмотреть, как он работает на вашей очереди, поправить описания подкатегорий и промпты и только потом включать по-настоящему.
Промпты, кстати, тоже правятся прямо из админки, и исходный вариант всегда можно вернуть.
Какая нужна модель и сколько это стоит?
Подойдёт любая модель, которая нормально умеет вызывать инструменты (tool calling): OpenAI, Gemini, Ollama или любой OpenAI-совместимый endpoint, включая модель на своём железе. На облако в архитектуре ничего не завязано. При подключении мастер проверяет не только то, что модель отвечает, но и то, что она умеет вызывать инструменты.
Теперь про деньги за токены. Я посмотрел расход на тестовом стенде. Заявка с уже выбранной подкатегорией обходится примерно в 4 тыс. входящих и 1,5 тыс. исходящих токенов за весь диалог: вопрос, ответ, сводка. Заявка без классификации дороже, потому что агенту приходится листать каталог: до 10–12 тыс. входящих и 3–4 тыс. исходящих. Для оценки возьмём с запасом 20 тыс. входящих и 5 тыс. исходящих на заявку, ведь реальный каталог услуг обычно больше демонстрационного.
Цены на конец октября 2026 года через RouterAI (агрегатор с оплатой в рублях):
| Модель | Вход / выход за 1 млн токенов | Одна заявка | 1000 заявок |
|---|---|---|---|
| DeepSeek V4 Flash | 11 ₽ / 17 ₽ | ~0,3 ₽ | ~300 ₽ |
| Qwen3.8 27B | от 2 ₽ / 52 ₽ до 103 ₽ / 335 ₽, зависит от провайдера | 0,3–3,7 ₽ | 300–3700 ₽ |
Мой тестовый стенд работает как раз на Qwen3.8 27B, все скриншоты выше сделаны на нём. А 27B-модель при желании можно поднять и на своей видеокарте, тогда заявки вообще никуда наружу не уходят.
Что дальше?
В планах консоль для инженера прямо в интерфейсе iTop, поиск закономерностей по заявкам и помощь с базой знаний. Но сейчас мне важнее не добавлять новое, а обкатать то, что уже есть, на живых заявках.
Ссылки:
- GitHub: GitHub - knowitop/itop-ai-assistant: AI-powered middleware for Combodo iTop that reduces ticket back-and-forth and helps engineers start working faster. · GitHub
- Документация (на английском): https://itop-ai-assistant.readthedocs.io/
Буду рад вопросам и критике в комментариях.




