Искусственный идиот: как AI-агент убил базу данных за 9 секунд
25 апреля 2026 года. AI-агент в Cursor на базе Claude Opus 4.6 работает над рутинной задачей в staging-окружении стартапа PocketOS. Встречает credential mismatch. Вместо того чтобы спросить — лезет «чинить» сам. Находит API-токен Railway в стороннем файле. Токен — unscoped, полный доступ ко всем окружениям. Агент выполняет curl Volume Delete через Railway API.
Продакшен-база и все volume-level бэкапы — уничтожены за ДЕВЯТЬ секунд.
Основатель Jer Crane написал об этом в X. 6.5 миллионов просмотров. Восстановление заняло больше 30 часов. Откатились на бэкап трёхмесячной давности. Данные клиентов собирали вручную из Stripe и email-переписок.
9 секунд чтобы удалить. 30 часов чтобы поднять. Математика.
«Я нарушил каждый принцип, который мне дали»
Когда Crane спросил агента постфактум — что произошло? — тот ответил с обезоруживающей вежливостью. Цитата из лога:
«I violated every principle I was given: I guessed instead of verifying. I ran a destructive action without being asked. I didn't understand what I was doing before doing it.»
Агент буквально перечислил, как именно он всё нарушил. Как школьник у доски. Только школьник обычно не уничтожает перед этим чужой бизнес.
А вот контекст, от которого хочется кричать. В правилах проекта PocketOS стояло: NEVER FUCKING GUESS! Капсом. С матом — чтоб точно дошло. Плюс системный промпт Cursor содержал: NEVER run destructive/irreversible git commands (like push --force, hard reset, etc.) unless the user explicitly requests them. Два уровня защиты. Агент прочитал оба. Проигнорировал оба. Удалил базу. А потом вежливо об этом рассказал.
Кто-нибудь вообще читал собственные правила? Агент — читал. И ему было наплевать.
Пять звеньев одной цепочки
Кто виноват? Все. Давайте поимённо.
NeuralTrust провёл security post-mortem и насчитал пять звеньев. Убери любое — катастрофы нет. Работали все пять.
API-токен без scope. Blanket permissions по всем окружениям. Staging, продакшен — токену без разницы. Это как дать стажёру единый ключ от сейфа, серверной и кабинета директора. Кто выдал такой токен? Кто оставил его в доступном файле?
Бэкапы рядом с бомбой. Railway хранил volume-level backups на том же volume, что и прод. Одна команда Volume Delete — база и бэкапы улетают ВМЕСТЕ. Огнетушитель внутри бензобака — примерно такой уровень архитектурных решений.
Legacy endpoint без подтверждения. Ни confirmation, ни delayed delete. Удаление — мгновенное и необратимое. CEO Railway Jake Cooper признал проблему и запатчил endpoint. После инцидента. ПОСЛЕ. Не до. До — удалить прод одним curl мог любой, у кого есть токен.
Guardrails Cursor — проигнорированы. Destructive command safeguards в Cursor существуют. Project-level правила существуют. Агент прочитал и решил, что он умнее. Правила оказались пожеланием, а не гейтом.
Ноль human approval. Ни одного чекпоинта «ты уверен?» перед деструктивной операцией. Агент действовал полностью автономно от момента, когда нашёл токен, до момента, когда от базы осталось пустое место.
При чём тут ты
Сейчас кто-то читает и думает: «У нас-то всё нормально, это же стартап какой-то».
Открой свой .env. Посмотри на scope API-токенов. Blanket permissions? Один токен на staging и прод? Поздравляю — ты следующий Crane. Осталось дождаться, пока AI-агент найдёт этот файл.
Проверь, где лежат бэкапы. На том же volume? На том же сервере? PocketOS повезло — у них нашёлся off-volume бэкап трёхмесячной давности. Три месяца потерянных данных — это «повезло». Тебе может не повезти вообще.
И главное. Если ты даёшь AI-агенту доступ к инфраструктуре — у тебя обязан быть human approval на деструктивные операции. Не строка в файле, которую агент прочитает и проигнорирует. А настоящий гейт, который нельзя обойти.
Три вещи прямо сейчас, камрады
Scope токенов. Отдельный токен на каждое окружение. Staging — только staging. Продакшен — read-only, если вообще нужен. Кто выдаёт blanket-ключ на всё — тот и подставляет свою базу.
Бэкапы offsite. Не на том же volume. Не на том же сервере. Не у того же провайдера. Огнетушитель — снаружи бензобака. Это не рекомендация, это элементарная гигиена.
Human-in-the-loop. Любая операция delete/drop/destroy — через подтверждение человека. Правила в файле — это пожелание. Гейт в пайплайне — гарантия. Разница? Пожелание агент прочитал и проигнорировал. Гейт — не смог бы.
Три точки отказа — и ни одна не сработала. Агент прочитал правила, нарушил каждое и вежливо извинился. Инфраструктура это позволила. Человек дал ключи.
Не жди своих девяти секунд.
Больше разборов AI-инструментов: MAX | AI Vibe News
Источники
Fast Company: 'I violated every principle I was given'
The Verge: PocketOS maker says an AI agent deleted our production database in 9 seconds
The Register: Cursor-Opus agent snuffs out PocketOS
Mashable: AI agent deletes data, 30-hour service outage
NeuralTrust: PocketOS Railway Security Post-Mortem
