
ИИ-агент 4 месяца дежурил на прод-логах: 113 алертов, 2 галлюцинации и фикс за 3,5 часа
Разработчик посадил ИИ-агента на прод-логи своей платформы. За 84 дня — 113 алертов, 2 ложных срабатывания. Один алерт привёл к смерженному фиксу за 3,5 часа. Вот архитектура, которая собралась за день и стоит $10 в месяц.
Зачем понадобился агент
Платформа Creatority — AI-генерация музыки, фото и видео. Под капотом 18 сервисов: Cloudflare Workers, Vercel, пара VPS. Около 300 тысяч строк логов в сутки, из них ~12 500 — error и warn. Команда небольшая.
Пороговые алерты на каждый штатный ретрай превращаются в белый шум через неделю. Читать логи глазами — узнавать о проблемах после пользователей. А пользователи молчали: пишет хорошо если 1 из 20, остальные просто уходят.
Решение: пусть LLM раз в полчаса читает логи и решает — будить людей или нет. Отличить всплеск реальных ошибок от штатного ретрая порогом в YAML не опишешь.
Как устроен агент
Рантайм — self-hosted OpenClaw на VPS. Cron раз в 30 минут дёргает изолированную сессию с промптом по шагам. Интеграция с Loki — 20 строк bash. Стоимость: модель за $10 в месяц.
Цикл проходит три фильтра. Известный шум? Цикл заканчивается молча — так заканчивается ~9 из 10 прогонов. Есть кандидат — расширяется окно (час, шесть часов) и сверяется с базлайном. Алерт уходит только при критических условиях: user-facing 5xx, деньги, потеря данных, массовые падения или рост ≥ 2× к базлайну при минимум 5 событиях за 5 минут.
Когда агент врал
Первый случай — апрель: агент нашёл два реальных бага, но доставка не сработала. Модель встретила отсутствующий инструмент и выдумала токен бота — формат правильный, цифры нет. Решение: токен стал детерминированным, достаётся python-однострочником из конфига. Модели нечего «вспоминать».
Второй случай — 4 мая: агент прислал «84 ошибки в час». Реальная частота — 2,5 в час. Три дефекта LLM-агентов сработали одновременно: self-grading bias (модель проверила свою же находку своим же контекстом), экстраполяция (7 × 12 = 84) и семантическая ошибка (canceled-ивента попали в счётчик как ошибки).
Лечение: детектор и верификатор разделены. Верификатор получает только кандидата и конфиг — ни рассуждений детектора, ни его логики. Согласиться со своей же аргументацией невозможно, если ты её не видел. Порог железный: ratio = max / min больше 2,0 — REJECT. На истории 4 мая верификатор правильно ответил «0».
Что дальше
Автор планирует перейти на полноценный контур с изолированным верификатором, как только ограничение рантайма будет снято.
Полный контур «детектор → изолированный верификатор» в получасовом прод-цикле пока не работает — изолированным cron-сессиям нельзя спавнить сабагентов. Вместо этого — статистический фильтр плюс железные правила в промпте. Для команды из трёх человек этого хватает: цена ложного алерта — минуты внимания, а не разбуженная on-call смена.
Главный вывод: автономный агент не должен иметь места, где ему выгодно импровизировать. Там, где агент может дорисовать реальность, — закрыть детерминированным путём.
Подробнее о том, как собрать AI-агента для мониторинга, мы разбирали в отдельном руководстве. А о выборе AI coding agent — отдельный материал с рейтингом.
Подберите сервис под задачу и начните работать сегодня
ChatGPT, Claude, Gemini, MiniMax и другие инструменты для текстов, кода, изображений и автоматизации — без долгого поиска вариантов.