Почему ИИ-агент «то работает, то нет»: что такое дрейф агента
ИИ-агент вчера работал, а сегодня тихо делает не то — и не падает с ошибкой. Это называется дрейф агента. Разбираем, почему он возникает и почему лечится не «промптом получше», а харнессом — обвязкой, которая ловит ошибку до клиента.
Знакомо? Настроили ИИ-агента, проверили — работает. Через неделю он делает что-то странное. Не упал с ошибкой, не написал «не могу» — а уверенно делает не то. И это не «день на день не приходится». У этого есть имя — дрейф агента. И ровно он лежит под народным «ИИ то работает, то нет».
Что это такое
Дрейф — это когда со временем расходятся то, что от агента ждут, и то, что он реально делает. Самое коварное: он не сигналит, что сломался. Снаружи всё выглядит как «агент поглупел».
Инструкция стоит на месте, а мир вокруг агента движется.
Агент тот же. Меняется почва под ним.
Почему так происходит
- Мир меняется, инструкция — нет. Сайт переверстали, у сервиса сменился формат ответа, отвалился внешний сервис. Агент настроен под вчерашний мир.
- Среда падает молча. Сломался внешний инструмент — а агент не останавливается, а начинает крутиться вхолостую или импровизировать.
- Теряется рабочая память. Агент перезапустился, забыл, на чём остановился, и продолжил так, будто ничего не было.
- Память распухает. Чем дольше работает, тем больше в ней копится — и старое начинает мешать новому.
- Нет встроенной самопроверки. Агент рапортует «готово», а результата нет. Не потому что «врёт» — просто проверять собственную работу его не научили. Верить его самоотчёту нельзя.
Как это выглядит на практике
У нас есть рабочий агент, который ведёт продвижение и контент для заказчика. На нём дрейф ловился во всех видах.
16 минут вхолостую. Однажды агент закрутился вхолостую на 16 минут. Причина — не «поглупел»: он потерял рабочую память и отвалился браузер, через который он действовал. Среда сломалась — агент этого «не заметил» и продолжал дёргаться. Сам агент не менялся. Изменилось то, что под ним.
Отчёт ≠ реальность. Программа сообщила «не успела, прервано» — а на деле всё было сделано. Поверишь отчёту — решишь «не сработало» и переделаешь зря. Вывод: проверять по факту, а не по тому, что отрапортовал процесс.
Внутри зелёно — снаружи мёртво. Сервер работал правильно, но то, что видел человек, зависло на вечной загрузке. По всем внутренним признакам «всё ок» — а продукт для пользователя не работает. Проверять надо глазами на стороне клиента, а не только «у нас-то всё в порядке».
Агент начал путать проекты. Он ведёт не одну тему, а несколько параллельно. Задач стало больше — память распухла, и контексты потекли друг в друга: факт из одного проекта он подтягивал в другой. Со стороны — «агент поглупел». На деле у него просто свалено в одну кучу всё сразу.
Заметьте: ни в одном случае дело не сводилось к тому, чтобы «получше сформулировать промпт». Лечило не слово — лечила обвязка вокруг агента.
Где настоящая граница
Инстинкт при дрейфе — «давай подкрутим промпт». Это игра в «заткни дырку»: заткнул в одном месте, через неделю течёт в другом. Промпт настраивает агента под один момент времени, а дрейф — это про изменение во времени.
Дрейф — структурная проблема. И лечится структурно — харнессом: обвязкой вокруг агента, которая ловит расхождение до того, как оно дойдёт до клиента.
- Проверки на выходе — агент не объявляет «готово», пока результат не подтверждён независимой проверкой.
- Стоп-условия — упал инструмент или кончились попытки → остановись, не импровизируй. Именно это мы прописали агенту после той холостой петли.
- Проверка по факту, а не по самоотчёту — любой сценарий закрывается проверкой реального результата на стороне клиента.
- Структура памяти — разделение по контекстам, индекс, протокол записи и чистки. Память без структуры сама становится источником дрейфа. Так мы вылечили «путаницу между проектами» — там, где переписыванием промпта её не вылечить.
Честно про сам харнесс: это не «поставил и забыл». Он тоже требует ухода — мир меняется и для него. Но он делает главное: переводит проблему из невидимой («агент тихо едет не туда») в видимую («система сама сообщила о сбое»). Это и есть разница между «иногда подводит без предупреждения» и «подводит редко и громко».
Промпт — это как агент думает. Харнесс — это что не даст ему тихо съехать.
Надёжность живёт во втором, не в первом.
Как проверить это у себя
Если вам делают ИИ-решение — задайте подрядчику один вопрос: «Что происходит, когда агент ошибается или отваливается внешний сервис?» Если в ответ — про то, как «хорошо настроен промпт», а про проверки, стоп-условия и контроль результата ничего нет, — система сломается в первый же месяц, просто вы об этом узнаете не сразу.
Вывод
Если ваш ИИ-ассистент «то работает, то нет» — проблема почти никогда не в том, что «надо найти промпт получше». Проблема в том, что вокруг него нет обвязки, которая ловит дрейф.
Правильный вопрос не «как заставить агента не ошибаться» — это невозможно. Правильный вопрос:
Как сделать так, чтобы его ошибка не доехала до клиента незамеченной?
Это и есть инженерия харнесса — слой, который превращает «иногда работает» в «подводит редко и заметно».