Розробка AI-системи моніторингу продуктивності AI-агентів

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

Чому моніторинг AI-агентів ламається на масштабі

Поки агентний сценарій вкладається у два-три кроки, його поведінку видно неозброєним оком: запит надійшов, інструмент викликано, відповідь зібрано.

На масштабі ланцюжок зростає до десятка переходів — розбір задачі, пошук у базі знань, звернення до зовнішнього сервісу, перевірка результату — і кожен перехід додає точку, де крок може не виконатися або повернути порожнечу.

Саме тут з’являються сліпі зони обробки запиту. Журнали пишуться за сервісами, а не за сценарієм: один діалог розкладено по різних сховищах, і пов’язати початок із кінцем можна лише вручну.

Непомітна відмова кроку при цьому не обвалює систему — агент отримує порожню відповідь інструмента й продовжує міркувати, видаючи правдоподібний, але неправильний результат.

Далі спрацьовує накопичення. Деградація якості відповідей проявляється не відразу, а як повільний зсув: зростає частка сценаріїв, де крок завершується повтором, і разом із нею зростає навантаження на сервіс — зайві виклики, повторні звернення до моделі, завислі очікування. Зовні система виглядає здоровою: час відповіді в нормі, оповіщення мовчать.

Збої агентних сценаріїв найчастіше знаходять за скаргою користувача, а не за метрикою. Відновлення картини займає години: щоб зрозуміти, де загубився крок, інженер вручну збирає ланцюжок із різних журналів і звіряє його з очікуваною логікою сценарію. Розбираємо, як це закривається.

Що дає спостережуваність: відгук, збої, простої

Спостережуваність будується на сигналах за кожним кроком ланцюжка агента: виклик моделі, звернення до інструменту, формування відповіді.

Метрики й трейси збираємо на OpenTelemetry — єдиний формат, який не прив’язує до одного сховища й дозволяє порівнювати поведінку версій між собою.

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

Час реакції на відхилення скорочується з днів до хвилин. Раніше погіршення знаходили за скаргами або ручним розбором вибірки діалогів — за цей час накопичувалися сотні зіпсованих звернень.

Тепер контроль порівнює поточне вікно з еталонним профілем і піднімає оповіщення, коли частка успішних відповідей падає нижче межі або зростає число звернень, де агент не зміг викликати інструмент.

Час відновлення залежить від того, наскільки швидко локалізується крок. Трейс із відхиленням показує конкретний виклик, вхід, відповідь і версію конфігурації — причина знаходиться за хвилини, а не перебором логів.

Відкат версії агента або набору інструкцій виконується однією операцією, тому повернення до робочого стану укладається в чверть години.

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

Режими збору даних: порівняння підходів

Перш ніж вмикати збір, обирають один із трьох режимів — від нього залежать і накладні витрати на збір, і те, які збої взагалі вдасться розслідувати.

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

Варіант Коли підходить Що обмежує
Повний збір телеметрії Розбір інцидентів, введення нового агента в експлуатацію Обсяг даних зростає разом із навантаженням; частина часу йде на запис, що чутливо для гарячого шляху
Вибірковий збір Постійна робота під навантаженням Правило відбору задається заздалегідь — причина рідкісного збою може не потрапити до зібраного вікна
Журналювання кроків Аудит ланцюжків викликів, розбір рішень агента Видно хід міркування, але не затримки й не стан зовнішніх сервісів

У робочому контурі зазвичай тримають журналювання кроків постійно, а вибірковий збір налаштовують за порогами: частка запитів, тип операції, перевищення часу відповіді.

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

Режим обирають не за обсягом даних, а за питанням, на яке потрібно відповідати: налагодження вимагає подробиць, постійний контроль — передбачуваної ціни збору. За єдиної схеми полів перехід між режимами не ламає історію, і порівняння періодів зберігається.

Як ми будуємо контур спостереження: етапи робіт

Контур спостереження не з’являється разом з агентом — його збирають покроково, щоб до запуску були метрики, пороги й зрозумілий маршрут чергування.

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

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

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

Що залишається у вас: схеми, правила, регламенти

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

Тому кожен блок ми описуємо так, щоб його читав не автор, а черговий інженер, який бачить систему вперше.

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

Усе це віддаємо у вашому репозиторії та вікі, у форматі, який підтримує ваша команда, а не ми. Через місяць після запуску ви зможете змінювати правила й пороги самі — разом із нами або без нас. Опишіть задачу: повернемося з оцінкою, планом робіт і переліком артефактів під ваш контур.

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

Розбирали контур із кількох десятків агентних сценаріїв: обробка звернень, витяг даних із документів, підготовка чернеток відповідей.

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

Розбір однієї причини займав від чотирьох до шести годин, а приблизно половина інцидентів залишалася без встановленої причини.

Що змінили

Звели стадії агента в спільний контекст за ідентифікатором запиту: кожна отримала тривалість, вхід і вихід, ознаку успіху. Єдиною точкою входу зробили 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