Разработка AI-системы мониторинга производительности AI-агентов

Агенты начинают ошибаться и тормозить незаметно — до первых жалоб заказчиков. Мы разрабатываем под ключ контур мониторинга AI-агентов: видно, где теряется качество ответа, где растёт отклик и почему случаются простои. Сбои ловим раньше, чем они дойдут до пользователя.

Разработка AI-системы мониторинга производительности AI-агентов

MLOps и инфраструктураСреднийот 1 недели до 3 месяцев
Часто задаваемые вопросы

Почему мониторинг AI-агентов ломается на масштабе

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

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

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

Сбои агентных сценариев чаще всего находят по жалобе пользователя, а не по метрике. Восстановление картины занимает часы: чтобы понять, где потерялся шаг, инженер вручную собирает цепочку из разных журналов и сверяет её с ожидаемой логикой сценария. Разбираем, как это закрывается.

Что даёт наблюдаемость: отклик, сбои, простои

Наблюдаемость строится на сигналах по каждому шагу цепочки агента: вызов модели, обращение к инструменту, формирование ответа. Метрики и трейсы собираем на OpenTelemetry — единый формат, который не привязывает к одному хранилищу и позволяет сравнивать поведение версий между собой. Пороговые правила ставятся на качество, а не только на доступность: доля успешных ответов, доля отказов инструментов, время ответа на каждом шаге.

Время реакции на отклонение сокращается с дней до минут. Раньше ухудшение находили по жалобам или ручному разбору выборки диалогов — за это время накапливались сотни испорченных обращений. Теперь контроль сравнивает текущее окно с эталонным профилем и поднимает оповещение, когда доля успешных ответов уходит ниже границы или растёт число обращений, где агент не смог вызвать инструмент.

Время восстановления зависит от того, насколько быстро локализуется шаг. Трейс с отклонением показывает конкретный вызов, вход, ответ и версию конфигурации — причина находится за минуты, а не перебором логов. Откат версии агента или набора инструкций выполняется одной операцией, поэтому возврат к рабочему состоянию укладывается в четверть часа.

Отдельно закрывается класс тихих отказов: агент отвечает, формально не падает, но качество просело после смены модели или правки инструкций. Такие регрессии видны уже на малой доле трафика — до того, как они дойдут до пользователей.

Режимы сбора данных: сравнение подходов

Прежде чем включать сбор, выбирают один из трёх режимов — от него зависят и накладные расходы на сбор, и то, какие сбои вообще удастся расследовать. Полный сбор телеметрии фиксирует каждый шаг агента, выборочный — только долю операций по заданному правилу, журналирование шагов сохраняет цепочку решений. Смешивать режимы в одном контуре без общей схемы полей нельзя: метрики перестают быть сопоставимыми между периодами.

Вариант Когда подходит Что ограничивает
Полный сбор телеметрии Разбор инцидентов, вывод нового агента в эксплуатацию Объём данных растёт вместе с нагрузкой; часть времени уходит на запись, что чувствительно для горячего пути
Выборочный сбор Постоянная работа под нагрузкой Правило отбора задаётся заранее — причина редкого сбоя может не попасть в собранное окно
Журналирование шагов Аудит цепочек вызовов, разбор решений агента Видно ход рассуждения, но не задержки и не состояние внешних сервисов

В рабочем контуре обычно держат журналирование шагов постоянно, а выборочный сбор настраивают по порогам: доля запросов, тип операции, превышение времени ответа. Полный сбор включают точечно — на время расследования и на ограниченном сегменте трафика, чтобы накладные расходы не задевали остальных пользователей.

Режим выбирают не по объёму данных, а по вопросу, на который нужно отвечать: отладка требует подробностей, постоянный контроль — предсказуемой цены сбора. При единой схеме полей переход между режимами не ломает историю, и сравнение периодов сохраняется.

Как мы строим контур наблюдения: этапы работ

Контур наблюдения не появляется вместе с агентом — его собирают по шагам, чтобы к запуску были метрики, пороги и понятный маршрут дежурства. Порядок работ одинаков и для одного агента, и для связки из нескольких: сначала описываем цепочку, потом измеряем, потом доверяем автоматике реагировать.

  1. Аудит схемы и точек отказа. Разбираем путь запроса по шагам: разбор задачи, вызов инструментов, обращение к базе знаний, финальный ответ. На каждом шаге ищем отказ, который маскируется под нормальный результат — превышение времени ожидания инструмента выглядит как «данных нет».
  2. Согласование метрик. Фиксируем то, что отражает поведение агента: время ответа по шагам, доля ответов без опоры на источник, повторы вызовов, обрыв сессии, число шагов на задачу. У каждой метрики появляется владелец и допустимый диапазон.
  3. Сбор трассировки. Каждый запуск получает идентификатор, сохраняются входы и выходы инструментов, версия инструкций агента и модели. Без привязки к версии невозможно понять, после какого изменения поехали показатели.
  4. Пороговые правила. Жёсткие границы для явных сбоев и отклонение от базовой линии за окно — для медленной деградации. Правило на скользящем окне гасит одиночные всплески, которые иначе будят дежурного ночью.
  5. Правила оповещения. Уровни важности, маршрут эскалации, подавление повторов одного и того же сигнала, запрет на срабатывание вне окна обслуживания. Сигнал должен приходить тому, кто может действовать.
  6. Проверка на реальном потоке. Прогон в теневом режиме: контур считает метрики, но не мешает работе агента. Сравниваем с размеченной выборкой, калибруем пороги, считаем долю ложных срабатываний.
  7. Передача в эксплуатацию. Регламент дежурства, инструкция с типовыми реакциями, проверенный порядок отката агента на предыдущую версию инструкций.

После передачи контур живёт своей жизнью: пороги уточняются по мере накопления данных, а список метрик сокращается до тех, по которым реально принимают решения.

Что остаётся у вас: схемы, правила, регламенты

Мониторинг AI-агентов живёт не в панели наблюдения, а в комплекте артефактов, которые остаются в вашем контуре. Панель можно пересобрать за вечер, а вот понять, откуда пришёл сигнал и почему правило сработало именно так, без схемы и регламента — уже нет. Поэтому каждый блок мы описываем так, чтобы его читал не автор, а дежурный инженер, который видит систему впервые.

  • Схема потоков данных — от точек сбора запросов и ответов агента до хранилища и агрегатов: где данные обогащаются, где обрезаются, в каких местах поток может потеряться и как это заметить.
  • Конфигурации сбора и правил — какие события считаются инцидентом, пороги и окна усреднения, состав полей, которые обязательно пишутся в журнал.
  • Политики доступа — кто и на каком основании читает журналы агентов, где применяется маскирование персональных данных, как выдаются и отзываются права на выгрузку.
  • Регламент реагирования — уровни срабатываний, порядок эскалации, границы дежурного и решение об откате версии агента или промпта с фиксацией причины.
  • Эксплуатационная документация — запуск и остановка сервисов, проверка живости контура, поведение при недоступности хранилища, типовые сбои и что делать в каждом случае.
  • Каталог метрик с определениями — что именно означает каждая цифра на панели, из какого события считается, какие пороги считаются нормой для вашего профиля нагрузки.
  • План отката и проверки изменений — как выкатывается новая версия правил, как сверяется результат на исторических данных и как возвращается предыдущая конфигурация.

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

Кейс: как убрали слепые зоны обработки запросов

Разбирали контур из нескольких десятков агентных сценариев: обработка обращений, извлечение данных из документов, подготовка черновиков ответов. Трассировка и логи у каждого шага писались раздельно, и чтобы понять, почему ответ ушёл не туда, инженер собирал цепочку вручную — сопоставлял вызовы модели, обращения к базе знаний и повторные попытки. Разбор одной причины занимал от четырёх до шести часов, а примерно половина инцидентов оставалась без установленной причины.

Что изменили

Свели стадии агента в общий контекст по идентификатору запроса: каждая получила длительность, вход и выход, признак успеха. Единой точкой входа сделали Grafana, а правила срабатывания описали на нашей стороне — они ловят деградацию раньше, чем её заметит пользователь. Типовые отказы получили детерминированную обработку: повторный вызов инструмента, сужение поиска по базе знаний, возврат к предыдущей ветке вместо обрыва сценария.

Что получилось

Время поиска причины сократилось с четырёх-шести часов до 20-30 минут — цепочка открывается одним запросом, без ручной сборки. Доля отказов, которые закрываются автоматически, выросла с 12% до 70%: остальные приходят к дежурному уже с контекстом и гипотезой. Регрессии стали видны на выкатке, а не по жалобам пользователей.

Чем отличается мониторинг качества ответов от разбора инцидентов?

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

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

Разбор идёт от факта к причине: инженер поднимает трассировку сессии, восстанавливает, какие данные попали в контекст и на каком шаге агент отклонился. На выходе — не метрика, а объяснение: конфликт инструкций в промпте, устаревший фрагмент в поиске, недоступность внешнего сервиса. Дальше решение проверяется, а случай попадает в эталонный набор, чтобы похожий сбой ловился автоматически.

Различаются и сроки. Мониторинг отвечает на вопрос «стало ли хуже в целом» и работает постоянно, по расписанию. Разбор инцидента — это часы на один случай, и его вопрос звучит иначе: «почему сломалось именно здесь». Подменять одно другим не получается — без наблюдения единичные отказы остаются незамеченными, а без разбора причин эталонный набор не растёт и метрики покрывают только знакомые сценарии.

Контуры связаны: каждый инцидент — сигнал, что в наблюдении не хватало проверки. Регулярный пересмотр эталонного набора и порогов как раз закрывает этот разрыв.

Сомнения перед стартом: данные, нагрузка, доступы

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

Не утонем ли мы в объёме данных?

Объём задаёт единица наблюдения: шаг агента, диалог или сутки. На старте включаем выборочный сбор — полные трассы по всем ошибочным прогонам и по доле успешных, дальше глубину регулируете вы. Телеметрия растёт вместе с трафиком, а не быстрее него.

Замедлит ли мониторинг сам сервис?

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

Какие доступы нужны к нашему контуру?

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

Сколько хранить историю?

Разделяем горячий и архивный слои: подробные трассы — недели, агрегаты и оценки качества — месяцы. Правило жизненного цикла держит последние срезы по каждому тегу, поэтому реестр перестаёт расти, а разбор инцидента за прошлый период остаётся возможным.

Что будет, если мы решим свернуть мониторинг?

Схему данных строим на открытом стандарте OpenTelemetry: метрики и трассы не запираются в закрытом формате. Отключаете сбор — приложение работает как раньше, а накопленная история остаётся читаемой.

Обсудим задачу и вернёмся с оценкой и планом

Разговор о мониторинге AI-агентов быстро становится обзорным, если на входе только идея. Чтобы вернуться с оценкой сроков и планом этапов, достаточно того, что уже есть в вашем контуре — специально готовить документы не нужно.

  • Описание агентов и сценариев: сколько их, какие задачи решают, кто и как их вызывает.
  • Схема текущего контура: где запускаются, какие внешние сервисы и модели задействованы, где хранятся данные.
  • Примеры журналов и трассировок за обычную смену — по ним видно, каких сигналов не хватает для разбора сбоев.
  • Перечень метрик, которые собираются сейчас, и мест, где отказы замечают позже, чем хотелось бы.
  • Разбор двух-трёх последних инцидентов: как обнаружили, сколько шло восстановление, что осталось непонятным.
  • Ограничения по доступам и обработке данных: что нельзя выносить за периметр, какие согласования нужны.
  • Точки интеграции: системы оповещений, дежурства, реестр моделей и версий их настроек.

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1374
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142