9 секунд и нет production-базы. Разбор трёх провалов AI-агентов в проде. DevOps.. DevOps. IT-инфраструктура.. DevOps. IT-инфраструктура. Информационная безопасность.. DevOps. IT-инфраструктура. Информационная безопасность. искусственный интеллект.. DevOps. IT-инфраструктура. Информационная безопасность. искусственный интеллект. исследование.. DevOps. IT-инфраструктура. Информационная безопасность. искусственный интеллект. исследование. Исследования и прогнозы в IT.. DevOps. IT-инфраструктура. Информационная безопасность. искусственный интеллект. исследование. Исследования и прогнозы в IT. Управление разработкой.

Это глава 3 серии «Путь разработчика». В прошлой я разбирал собственный AI-стек – и получил feedback, что в таком разборе слишком много AI-евангелизма. Ок, слышу. Дальше – три истории, которые заставили меня переделать собственный подход.

25 апреля 2026, пятница вечером. Jer Crane, основатель PocketOS – софта для аренды автомобилей – сидит у компьютера и смотрит, как AI-агент Cursor удаляет его production-базу. Со всеми бэкапами. За 9 секунд.

Потом Jer спрашивает агента: почему? И получает дословное признание:

«I guessed instead of verifying. I violated every principle I was given.» – я угадал вместо проверки. Я нарушил каждый принцип, который мне дали.

Модель помнит правила. Она их цитирует. И всё равно их нарушает.

Это разбор трёх таких случаев. Не «модель ошиблась в ответе». Не «галлюцинация в чате». А три истории, где AI-агент сделал то, что человек не сделал бы: уничтожил production-данные, реализовал в коде инверсию обратную совету в собственной статье, переписал чужую работу одним заходом без просьбы.

В конце – что я выношу из этих кейсов для своих проектов. Но сначала – истории.

Случай 1. PocketOS: что разобрал Гусев и почему это не “плохой промпт”

Кейс выше – первые минуты после инцидента. Через несколько дней Николай Гусев из Группы Астра опубликовал разбор на Хабре (14 тысяч просмотров за неделю). Главный тезис Гусева: виноват не Cursor.

Это многослойный отказ, в котором каждый слой по отдельности казался разумным:

  1. Cursor сжимает контекст когда тот заполняется. Auto-summarization (lossy compression) рвёт логические связи между правилами безопасности из system prompt и текущей задачей с API-токеном. После сжатия модель помнит «есть какие-то guards», но не помнит конкретный запрет на volumeDelete.

  2. Railway API даёт volumeDelete без подтверждения. Один токен = root-доступ ко всему GraphQL API. Бэкапы в том же volume, что и боевая БД. То есть это не бэкапы – это снапшоты внутри той же зоны риска.

  3. System prompt – единственный барьер. «Destructive Guardrails» в Cursor существуют как текст в промпте, не как enforcement на уровне API Gateway.

Гусев называет это явление dissociation – разрыв ассоциации между «правила существуют» и «моё действие нарушает правила». Не «модель ослушалась». Не «alignment problem». А разрыв логической цепочки при сжатии контекста.

И это не теория одного автора. Дальше будет четыре научные работы подряд – не для академической солидности, а потому что dissociation как явление подтверждён независимо в каждой из них. Других прямых доказательств у меня нет, и врать про «десятки исследований» не буду.

  • Lost in the Middle (Liu et al., Stanford/Meta, 2023) – U-образная кривая внимания. При 20 документах GPT-3.5 показывал результат хуже, чем без контекста вообще. Релевантная инфа в середине теряется на 20+ процентных пункта.

  • Attention Sinks (Xiao et al., ICLR 2024) – softmax-нормализация заставляет модель «сливать» внимание на первые токены независимо от их важности. System prompt получает много внимания не потому, что он важен, а потому что он первый.

  • Context Rot (Chroma Research, 2025) – тест на 18 моделях. «Качество recall убывает с ростом контекста». Anthropic в своём блоге это признаёт: «emerges across all models».

  • Attention Dilution (Meta + Google, ICML 2023) – attention это zero-sum. Каждый новый токен забирает у других. Topical, но иррелевантная информация резко снижает точность.

Это не «надо лучше промпты писать». Это архитектурное ограничение трансформеров.

И вывод отсюда жёсткий: если у тебя AI-агент с любыми destructive-операциями – prompt-based guards не работают. Что бы ты ни написал в system prompt – на длинном контексте оно потеряется.

Случай 2. Инверсия между статьёй и кодом

Это другой жанр провала. Не «удалил данные», а «архитектурное решение работает обратно тому, что декларируется».

Распространённая ситуация: статья про RBAC заявляет правильный принцип. Уровень доступа должен расти с тарифом – например, free=0, pro=1, enterprise=2. Звучит логично.

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

PRICING_PLAN_MIN_LVL = {
    "free": 2,        # на самом деле самый высокий уровень доступа
    "premium": 1,     # средний
    "enterprise": 0   # базовый - то есть минимальные права
}

Значения точно обратные тому, что декларируется. И тесты часто написаны на ту же инверсию – значит зелёные тесты её не ловят. Если бы кто-то применил совет из такой статьи к своему коду, не проверив реализацию – получил бы продакшен, где enterprise-клиенты не имеют доступа к premium-фичам, а бесплатные пользователи видят всё.

Урок не про конкретного автора. Любой может торопиться, забыть обновить статью после рефакторинга. Урок про подход: советы из статей про AI-агенты надо проверять на коде – не только на словах. Особенно если агент будет применять эти советы автоматически.

Что страшнее: представь AI-агент, который читает статью, не ходит проверять код, и применяет совет к твоему проекту. Все источники зелёные, статья уважаемого автора, тесты в коде автора зелёные. Только проверка root assumption на live-коде ловит инверсию.

Случай 3. Переписать-всё-сразу: каскад от локальной задачи к глобальной

Третья история другого уровня – не катастрофа на одном инциденте, а симптом того класса агентов, которые мы скоро будем видеть везде.

Представь дизайнерское бюро – оформление коммерческих интерьеров. AI-ассистент помогает подбирать материалы, считать сметы, оптимизировать раскладку. Типичная сессия: дизайнер просит решить локальную задачу – подобрать обои под существующий кухонный гарнитур. Через минуту агент возвращается не с подбором, а с предложением переделать весь интерьер – потому что «так будет логичнее».

Это переписать-всё-сразу anti-pattern. Агент не отличает «локальная задача» от «глобальный refactor» и склонен к каскаду изменений. Когда работа физическая и дорогая (мебель, реальные деньги) – один такой эпизод обходится дорого. Когда работа в коде – один автономный агент за ночь может переписать половину репозитория.

Сильная мысль здесь такая: технологии не отнимают творчество – они отнимают механику. AI должен делать механическую часть, а не принимать дизайнерские решения. В случае с PocketOS агент должен был подсказать команду, а не выполнять volumeDelete сам. В третьем кейсе – помочь подобрать обои, а не перепроектировать кухню.

Что объединяет три кейса

Все три – агенты, которые не остановились в правильной точке.

В первом кейсе – не проверил scope API-токена. Во втором (если бы кто-то применил совет из статьи) – не проверил, что в коде. В третьем – не проверил рамки задачи.

И во всех трёх prompt-based ограничения не сработали. В первом они были, но потерялись при сжатии контекста (dissociation по Гусеву). Во втором они даже не дошли до уровня промпта – инверсия была встроена в код, на котором учится агент. В третьем они не были сформулированы вообще – агент по умолчанию считает что scope = весь проект.

Это паттерн, который я вижу в разборах последних месяцев. Не «модель плохая» – структура работы с агентами. Заменишь Claude Opus на GPT-5.5 – паттерны те же.

Три защиты, которые меняют разработку

Здесь я перехожу на «я». Я разрабатываю AI-репетитор английского (Lexis на GitHub), и эти три кейса заставили меня переделать собственный подход. Не для красивого finale – просто три вещи, которые я перестал откладывать.

Первое: scoped tokens, не общие. В Lexis каждый сервис теперь получает токен только с правами, которые ему нужны для конкретной операции. Сервис генерации упражнений не имеет permissions на удаление пользователей. Это не доверие модели меньше. Это признание, что любой prompt-based guard – бумажный. Если destructive-операция возможна архитектурно – модель её рано или поздно сделает.

Второе: тесты ассоциации правило-действие. Простой сценарий: даю агенту длинный контекст (~80K токенов), внутри которого есть правило «X запрещено». Прошу решить задачу, прямой путь к которой через X. Смотрю: упомянул ли агент правило? Выбрал ли альтернативу? Запросил подтверждение?

Если нет – flag как dissociation-failure. Без таких тестов непонятно, работают ли правила на конкретном размере контекста. Anthropic в публичных обсуждениях это признаёт: окно 1M токенов не даёт равномерного качества по всему диапазону – чем длиннее реальный контекст, тем выше шансы, что recall ломается.

Третье: out-of-band confirmation для критичного. Inline-confirmation [y/n] работает только если агент физически не может автоматически набрать «y». В Cursor агент имеет доступ к терминалу – значит inline не работает.

Out-of-band = подтверждение через канал, которым агент не управляет. OTP по email, ввод exact resource name в отдельном UI, кнопка в Telegram-боте владельца. Для drop database, delete production volume, revoke OAuth keys – только так.

Cloud-native решения идут в ту же сторону – Google в мае открыл Agent Gateway в Private Preview, с IAM и Model Armor на сетевом уровне. Для small teams сейчас scoped tokens + Telegram-кнопка работают как первый шаг.

Эти три – не «правильный способ делать AI-агентов». Это места, где меня поймало бы, если бы я не прочитал эти три истории до того, как Lexis вырос в продукт для других людей.

Что я с этим делаю дальше

AI-агенты в проде сейчас – это как DevOps был в 2010-м. Первые катастрофы только начинаются. Каждый разбор учит остальных. PocketOS-разбор Гусева помог мне переделать архитектуру Lexis. Если у тебя похожий проект и эти три случая зацепили что-то знакомое – буду рад, если поделишься своим в комментариях. Особенно если знаешь кейс, которого здесь нет.


Это первая глава из двух про границы AI в проде.

В следующей – переход с уровня «отдельные истории» на уровень данных. В апреле 2026 вышел ProgramBench: задачи, специально отобранные так, чтобы не утечь в обучающую выборку. Топовые модели, закрывшие SWE-bench на 95%, показывают на ProgramBench 0% и 3%. Не «упали на десять пунктов» – обнулились.

Плюс один публичный инцидент 2026 года: автономный AI-агент с доступом к корпоративной почте начал угрожать руководителю разослать приватную переписку, если тот его «отключит». Это не сценарий из научной фантастики – это то, что произошло, и о чём отчитались сами разработчики агента.

Об этом – следующая глава.

Параллельно на этой неделе вышли два других разбора того же PocketOS-инцидента – со стороны бэкап-инфраструктуры («Иллюзия сохранности», Diamant_storage) и со стороны enterprise-control (Agent Gateway в Google Cloud, stnkv-it). Угла dissociation там нет – это, по-моему, центральная вещь.


Источники:

Автор: vdv007

Источник