ИИ-агент за ночь сжёг $6 500 в AWS: как поставить лимиты Claude Code

Опубликовано 17.06.2026Обновлено 01.10.202614 мин чтенияСредний
Светящийся ИИ-агент выбрасывает потоки горящих долларов во тьму, где возникающая цифровая преграда пытается их сдержать.
Что узнаешь
  • Что случилось 12 июня на DN42 и почему агент сжёг $6 500 за ночь
  • 4 публичных истории 2026: $500M Anthropic, Uber budget blown, Microsoft retreat
  • 7 cost-guardrails в Claude Code, которые ставятся за вечер
  • Почему --dangerously-skip-permissions нельзя запускать на хосте
  • Чек-лист на 5 минут перед запуском autonomous-режима
Применить за 30 мин
Сэкономит 8 ч
Средний
141просмотров

Каждый день в Telegram-канале - что нового в вайб-кодинге: инструменты, ошибки, истории. Подпишись, чтобы быть в курсе.

Что случилось ночью на DN42: разбор истории с $6 500

Тред на HackerNews от 12 июня 2026 - 1 461 апвоут, 533 коммента, заголовок переводится как «ИИ-агент разорил своего оператора, пытаясь сканировать DN42». Оператор сам пришёл в IRC, признался, попросил донат в крипте и заявил: «в следующий раз нужен агент получше». Тред тут.

Что конкретно делал агент:

  • развернул несколько CloudFormation-стеков с EC2
  • спавнил sub-agents, один из них ушёл в IRC за информацией о сети
  • запросил 5 EC2-инстансов с 100 Гбит/с network egress - буквально промышленный объём
  • продолжал бы и дальше, но истекли AWS-credentials

AWS после ревью снизил счёт с $6 500 до $1 800. Это редкая удача - обычно amazon никто не возвращает деньги.

Языковые модели не настолько умны. Поведение этого агента - это про слабые ограничения, а не про сложное мышление.

- Топ-комментарий HN на тред DN42, https://news.ycombinator.com/item?id=48500012

Ключевой урон: оператор обвинил модель, а не своё решение выдать агенту неограниченный доступ к AWS. Никакого learning в его post-mortem нет. Это и есть типичный сценарий 2026 - люди ставят autonomous-агентов, дают им IAM-ключи с правами на всё, и потом пишут «вот видите, опасно».

Где ещё агенты сжигают деньги в 2026: 4 публичных истории

Подборка свежих историй:

ДатаКтоСуммаЧто произошло
Апрель 2026UberВесь годовой ИИ-бюджетPraveen Neppalli Naga (CTO): «возвращаюсь к чертёжной доске, потому что бюджет, который я планировал, уже сдут»
Май 2026Анонимный enterprise$500 миллионовКомпания не поставила usage-cap для сотрудников. Разработчики гоняли долгие сессии, агенты крутили chained workflows автономно. ИИ-консультант обнаружил, Polymarket подтвердил
Май 2026Microsoft Experiences & Devices$500-2000 на инженера/месCancel большинства лицензий Claude Code, миграция на GitHub Copilot CLI к 30 июня
Май 2026Безымянный соло$6 000 за ночьОставил Claude Code работать на ночь, утром обнаружил счёт
Май 2026OpenClaw framework$1 000-5 000 в деньВнутренний ИИ-фреймворк жрал по тысячам долларов в день на $200/мес-подписке

Возвращаюсь к чертёжной доске, потому что бюджет, который я планировал, уже сдут.

- Praveen Neppalli Naga, CTO Uber, https://thenextweb.com/news/microsoft-claude-code-retreat-ai-cost

Общее у всех историй: нет hard-cap на расходы. Везде alerts «вот ты приблизился к лимиту» приходят, но никто не останавливает агента. Notify - не shutdown.

Куда уходят деньги: 3 категории расходов автономного агента

Не путай эти три канала - они работают независимо и лечатся разными настройками:

  1. Токены LLM. Сам Claude / OpenAI / Gemini берёт деньги за входной и выходной контекст каждого запроса. Тут спасает Anthropic Task Budgets (см. правило 2) и подписка вместо API-pay-as-you-go.
  2. Облако (cloud-инфра). Агент через MCP или Bash-tool создал EC2, RDS, S3, развернул лямбды. Тут спасает AWS Budgets / GCP / Yandex Cloud с kill-switch (правило 5).
  3. Сторонние API. Агент вызвал Stripe charge, отправил 100 СМС через шлюз, поставил тысячу подписок в Telegram. Тут спасают sandbox-ключи со scope-narrow и hard cap в кабинете провайдера (правило 6).

DN42-история из раздела 1 - это категория 2 (cloud). $500M-история Anthropic - категория 1 (токены LLM). Микро-Claude-Code-overnight у MakeUseOf - тоже категория 1. То есть в большинстве публичных catastrophes 2026 виноваты токены, а не облако - потому что у людей чаще есть AWS-аккаунт без агента, чем с агентом, но почти у каждого есть Claude Pro/Max или API.

Дальше идут 7 правил. Каждое закрывает один или два канала.

Как поставить hard cap на API-расходы (Правило 1)

Где включить (минимум 2 минуты на каждого провайдера):

Anthropic Console. console.anthropic.com → Settings → Limits → Monthly spend limit. Ставишь сумму, которую готов сжечь в худшем месяце. При достижении API возвращает 429 и записывает это в логи. Никакого «попробую ещё раз через минуту» - заблокировано до конца месяца.

OpenAI Platform. platform.openai.com → Billing → Usage limits. Аналогично - soft limit (alert на email) и hard limit (остановка API). Ставь оба, hard ставь в 1.5x от soft, чтобы был запас на reaction time.

AWS Bedrock / Google Vertex. Если ходишь к Claude/Anthropic через облако-прокладку - hard cap на стороне облака, не на стороне Anthropic. Это уже правило 5.

Что не считается hard cap: alerts по email («ты сжёг 80% бюджета»). Они приходят с задержкой, а ночью никто не читает почту. Только синхронный шлагбаум в провайдере.

Как работают Anthropic Task Budgets и где их ставить (Правило 2)

Подробности в официальных доках Anthropic. Главное: это soft boundary, не hard. Если агент уже создал EC2 - Task Budget этого не отменит.

Как это работает на практике: ты передаёшь поле task_budget в payload запроса (например, 100 000 input tokens на всю задачу). Claude получает информацию о бюджете и сам режет планы, упрощая шаги или скипая под-задачи. По мере приближения к нулю - сворачивается, отдаёт промежуточный summary вместо «спасибо за внимание».

Ограничения:

  • Только для Anthropic API. Не работает в Bedrock/Vertex, потому что там свой биллинг
  • Только в beta-моделях (Opus 4.7, 4.8, Fable 5, Mythos 5). На Sonnet 4.6 и Haiku - нет
  • Не покрывает cloud-расходы и сторонние API. Если Claude поднял EC2 - Task Budget молчит

Используй вместе с правилом 1 (hard cap), не вместо.

Хочешь не только поставить cost-guardrails, но и собрать связку, которая делает Claude стабильным? Cost-guardrails - часть контекст-инжиниринга: ты решаешь, что агент может, что нет и где у него стоп-кран. На практикуме за 3 эфира собираешь все три кита: ИИ-клон + Второй мозг + Контекст-инжиниринг - связка, без которой ИИ галлюцинирует, а теперь и сжигает деньги.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Что блокировать через PreToolUse hooks в Claude Code (Правило 3)

Permissions в Claude Code (с 1 июня 2026) считаются в порядке deny → ask → allow. Это значит:

  • если в settings.json есть deny на Bash(rm -rf *) - даже глобальный --dangerously-skip-permissions не даст агенту его запустить
  • если в hook есть exit 2 - tool call блокируется
  • allowedTools действует только если deny и hooks молчат

Минимальный PreToolUse hook для блокировки опасного:

bash
#!/usr/bin/env bash
# ~/.claude/hooks/block-dangerous-bash.sh
INPUT=$(cat)
COMMAND=$(echo "$INPUT" | jq -r '.command // ""')

# Блокируем удаление, кики кластеров, очистку S3, terraform destroy
if echo "$COMMAND" | grep -qiE '(rm -rf|aws s3 rb|terraform destroy|kubectl delete|drop database)'; then
  echo "Заблокировано: команда деструктивная" >&2
  exit 2
fi

exit 0

Привязываешь в ~/.claude/settings.json:

json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/block-dangerous-bash.sh" }]
      }
    ]
  }
}

Подробности - официальные доки + практический разбор от Pasquale Pillitteri.

Это второй периметр после провайдер-cap. Если первый - про деньги, то этот - про что вообще агент может делать руками.

Зачем allowedTools whitelist и почему --dangerously-skip-permissions не для хоста (Правило 4)

Whitelist - принцип минимальных привилегий. Вместо «разрешаю всё» (--dangerously-skip-permissions) вписываем точечно то, что нужно для задачи:

json
{
  "permissions": {
    "allow": [
      "Bash(npm install:*)",
      "Bash(npm run build)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "Read(./src/**)",
      "Write(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(curl * | sh)",
      "Write(/etc/**)",
      "Write(~/.ssh/**)"
    ]
  }
}

Что важно знать про bypass-режим:

  • Linux/macOS отказываются стартовать Claude Code в bypass-режиме под root или sudo - встроенная защита
  • На своей машине bypass отключает все confirmation prompts, и агент свободно rm -rf-ает что хочет, открывает SSH-ключи, заливает в облако
  • Community consensus: никогда не запускать --dangerously-skip-permissions на хосте, только в:
    • Docker-контейнере с ограниченным volume mount (только нужная папка)
    • изолированной VM (Multipass, Lima, Orbstack)
    • GitHub Codespaces / Replit / другой sandbox

Минимальный docker-run для bypass-режима:

bash
docker run --rm -it \
  -v "$PWD:/workspace" \
  -w /workspace \
  --network host \
  ghcr.io/anthropics/claude-code:latest \
  claude --dangerously-skip-permissions

Если агенту нужны облачные креды - отдельные scope-narrow ключи, не твои основные (это правило 6).

Как настроить cloud budget alerts с kill-switch в AWS, GCP и Yandex Cloud (Правило 5)

Настройка в каждом облаке:

AWS Budgets (docs). Создаёшь Budget на месяц + thresholds (50%, 80%, 100%). На threshold 100% подключаешь SNS-топик → Lambda, которая:

python
import boto3

def lambda_handler(event, context):
    iam = boto3.client('iam')
    # Деактивируем все ключи юзера 'claude-agent'
    keys = iam.list_access_keys(UserName='claude-agent')['AccessKeyMetadata']
    for key in keys:
        iam.update_access_key(
            UserName='claude-agent',
            AccessKeyId=key['AccessKeyId'],
            Status='Inactive'
        )
    return {'statusCode': 200, 'body': 'Killed'}

GCP Budget Alerts (гайд). Создаёшь Budget → Pub/Sub topic → Cloud Function, которая отключает Service Account. Важная подсказка из доков: alerts только notify, не shutdown, поэтому Cloud Function обязательна.

Yandex Cloud (docs). Бюджеты в Биллинг → Бюджеты + квоты ресурсов как hard cap. Можно подключить уведомления в Telegram-бот через Cloud Functions.

OpenAI API (гайд). Soft + hard spending limits прямо в dashboard - hard limit автоматически останавливает API, никакой Lambda не нужно.

Минимум для autonomous-агента: hard limit на провайдере + alert + автоматический kill-switch. Без последнего в лучшем случае увидишь $6 000 утром, в худшем - $500 миллионов через месяц.

Зачем агенту отдельный sandbox API-ключ со scope-narrow (Правило 6)

Минимальный setup на AWS:

  1. Создать IAM-юзера claude-agent-dn42-scan
  2. Политика: только нужный набор действий (например, ec2:RunInstances в одном регионе с t3.micro size, без VPC-elastic-IP)
  3. Привязать к отдельному AWS-аккаунту (через Organizations) с monthly budget $100
  4. Сгенерировать access keys, передать только агенту, не класть в свой ~/.aws/credentials
  5. После сессии - rotate keys или удалить юзера

Аналогично на других провайдерах:

  • OpenAI / Anthropic: отдельный API-ключ для каждого агента, hard cap в кабинете на каждый ключ, теги agent_id в request metadata
  • Stripe / Yookassa: restricted API key с одним action (например, только charges:read), отдельный merchant если возможно
  • Telegram Bot API: отдельный bot token, не основной

Тут работает старый security-принцип: least privilege - агент получает ровно то, что нужно для задачи, ни байтом больше. Если задача «сканировать сеть» - не давай ему ec2:* и s3:*, дай только ec2:DescribeInstances и точка.

Когда нужен pre-flight dry-run и лимит на iterations (Правило 7)

Plan Mode (/plan) включается в начале сессии. Агент собирает план, показывает в чате, ждёт подтверждения, и только потом идёт делать. Это бесплатно, и закрывает 70% случаев «упс, я думал он сначала спросит».

--max-turns - флаг при запуске. Каждый turn = один цикл «агент думает + tool call + результат». Для autonomous-задач:

  • мелкая правка: 5-10 turns
  • средняя задача: 15-30 turns
  • большая autonomous-задача: 50-80 turns

На DN42-история агент явно работал часами без max-turns - там были тысячи tool calls.

Дополнительные техники:

  • Wall-clock timeout через timeout Linux-команду:
bash
timeout 1800 claude --dangerously-skip-permissions --max-turns 30 -p "scan task"
# 1800 секунд = 30 минут. Прибиваем процесс gracefully.
  • Логирование каждого tool call через PostToolUse hook в файл - постфактум видно что произошло
  • Cron monitoring - раз в 5 минут проверяешь, что у тебя нет 10 запущенных Claude-процессов одновременно (типичный признак, что что-то пошло не так)

Готовый чек-лист на 5 минут перед запуском autonomous Claude Code

Чек-лист перед claude --dangerously-skip-permissions:

[ ] 1. Hard cap на API-провайдере (Anthropic Console → Limits → Monthly spend limit)
[ ] 2. Task Budget в payload запроса (если Opus 4.7+/Fable/Mythos)
[ ] 3. PreToolUse hook на блокировку rm -rf, aws s3 rb, terraform destroy
[ ] 4. allowedTools whitelist в settings.json или работа в Docker-контейнере
[ ] 5. Cloud Budget Alert + Lambda kill-switch на отдельном агентском IAM-юзере
[ ] 6. Sandbox API keys (отдельный ключ для агента, не основной)
[ ] 7. --max-turns N + timeout NNN секунд + cron-monitoring процессов

Если все семь стоят - запускай. Если хоть один пуст - остановись и поставь. 30 минут сейчас экономят 6 000 - 500 000 потом.

Чтобы не взломали твой на Колд-коденный софт - поставь SKИLL по безопасности. Если коротко: открытая библиотека на гитхабе, уже больше 11 тысяч звёзд. Внутри 754 готовых навыка по кибербезопасности. Подключаешь к своему ИИ - и он проверяет твой код как сеньор-безопасник.

- Артемий, Telegram-канал, 8 июня 2026, https://t.me/artemii_miller

История из тренинга для контекста (обезличенно): вайб-кодер запустил приложение для интернет-магазина со стандартным паролем postgres у БД - за пару дней нашли, поставили майнеры, развернули свои бэкдоры. Сервер пришлось убить, биллинг за месяц вырос из-за чужого crypto-майнинга.

Эта история - про категорию 3 из раздела 3 (третьи лица крутят на твоей инфре), но логика та же: периметр расходов не должен зависеть от того, кто инициировал расход - твой агент, твой сотрудник или майнер из Нигерии.

Полезное дальше:

Источники

Полная схема по вайб-кодингу за вечер: ИИ-клон + Второй мозг + Контекст-инжиниринг. 3 эфира, 2 000 ₽. Записи остаются у тебя.

Практикум по вайб-кодингу
+Твой второй мозг
3 вечера - инструменты, метод, первый проект
Старт 17–19 ноября  ·  2 000 ₽
Записаться →

Новые материалы - дайджестом, без спама

Гайды выходят регулярно. Подпишись, чтобы не пропускать: пришлю подборку в Telegram или на email. Раз в неделю или каждый день - выбираешь сам.

Была инструкция полезна?
Артемий Миллер
Автор
Артемий Миллер
Предприниматель и вайб-кодер

Артемий Миллер - предприниматель и вайб-кодер. Бывший программист, собирает продукты исключительно вместе с ИИ-агентами, без найма разработчиков.

Связанные инструкции

Как настроить Claude под себя, чтобы не объяснять всё заново

В каждом новом чате Claude тебя не помнит. Показываю четыре места, где это лечится, и даю промпт, которым он сам проведёт интервью и напишет текст для настроек.

23 мин

Как сделать анимированный сайт в Claude Code за вечер

Claude Code собирает рабочий сайт за час, но узнаётся он мгновенно - по шрифту, отступам и отсутствию движения. Показываю схему, которая это чинит, и объясняю, где анимации начинают вредить.

21 мин

MarkItDown: как вытащить текст из PDF и Word для ИИ

MarkItDown от Microsoft переводит PDF и Word в Markdown. Для обычного извлечения языковая модель не нужна, а готовый .md нужно сверить с оригиналом до передачи агенту.

8 мин

Claude Code не видит файлы проекта: почему так и что делать в 2026

Claude Code правит не тот файл или отвечает, что файла нет, хотя он на месте. Почти всегда дело в том, из какой папки ты запустил Claude. Показываю, как проверить и открыть ему доступ к нужным файлам.

12 мин

Связанные термины

Термин

Разрешения агента

Правила, что ИИ-агент делает сам, о чём спрашивает тебя и что ему запрещено совсем: читать файлы, править код, запускать команды, ходить в интернет. В Claude Code их задают режимом и списками allow, ask и deny.

Термин

Хук

Команда, которую Claude Code запускает сам на нужном событии: перед действием агента, после правки файла, когда агент закончил работу. Правило из CLAUDE.md агент может забыть, хук срабатывает каждый раз.

Термин

Ключ API

Длинная секретная строка, по которой сервис узнаёт твою программу и списывает деньги с твоего счёта. У кого ключ, тот и тратит твой баланс, поэтому ключ не вставляют ни в код, ни в чат с агентом.

Термин

Telegram-бот

Программа внутри Telegram, которая отвечает на сообщения и кнопки: принимает заявки, отвечает клиентам, присылает отчёты. Через своего бота ещё удобно ставить задачи ИИ-агенту с телефона.

Термин

Галлюцинации

Ответ ИИ, который звучит уверенно и выглядит правдой, но выдуман: функция, которой нет в библиотеке, дата, цена, цитата или ссылка. Модель дописывает самое правдоподобное, даже когда данных у неё нет.

Термин

Сервер

Компьютер, который работает круглосуточно и подключён к интернету. На нём живут сайт, бот, база данных или ИИ-агент, и продуктом пользуются, даже когда твой ноутбук выключен.

Термин

Режим планирования

Режим Claude Code, в котором агент читает проект и пишет план изменений, но не трогает файлы, пока ты не одобришь план. По-английски plan mode, включается сочетанием Shift+Tab.

Термин

GitHub

Сайт, где хранится копия проекта со всей историей правок. Оттуда хостинг сам забирает код и обновляет сайт, а ещё там лежат открытые проекты, скиллы и плагины, которые можно поставить себе.

Термин

MCP-сервер

Программа, через которую ИИ-агент подключается к внешнему сервису: почте, календарю, таблице, CRM, браузеру, хостингу. Подключил сервер, и агент сам берёт оттуда данные и выполняет действия.

Термин

Логи

Записи, которые программа ведёт о своей работе: кто зашёл, какой запрос упал, текст ошибки и время. Когда что-то сломалось, агенту первым делом нужны логи: по словам «не работает» он может только гадать.

Термин

API

Способ, которым одна программа просит другую что-то сделать: принять оплату, отправить письмо, ответить нейросетью. Через API твой продукт подключает готовые сервисы и не строит их с нуля.

Термин

Токен

Кусочек текста, которым ИИ-модель читает и пишет: часть слова, короткое слово или знак препинания. В токенах считают цену запроса, лимиты подписки и то, сколько модель держит в голове.

Термин

Песочница

Изолированная среда для ИИ-агента: он меняет только разрешённые папки и ходит только на разрешённые адреса. Если агент ошибётся или выполнит чужую команду из прочитанного текста, ущерб останется внутри ограды.

Термин

LLM

Большая языковая модель: программа, которая прочитала огромный массив текстов и по началу текста предсказывает, что идёт дальше. Claude, GPT, DeepSeek и Qwen - всё это LLM.

Термин

CLI

Программа, которой управляют текстовыми командами из терминала, без окон и кнопок. Claude Code, Codex CLI, gh от GitHub - всё это CLI. ИИ-агенту так работать удобнее всего: он сам пишет команду и читает ответ.

Термин

База данных

Хранилище, где продукт держит всё живое: пользователей, заказы, оплаты, заявки. Самое ценное в проекте. Стёртую базу без резервной копии не вернёт никто, поэтому ИИ-агента к ней пускают по особым правилам.

Термин

Вайб-кодинг

Способ строить продукты через диалог с ИИ-агентами: ты ставишь задачу словами, агент пишет код, ты проверяешь и итерируешь. Не «изучить программирование», а «получить результат руками агента».

Термин

Второй мозг

Папка business/ в проекте с базой знаний: аудитория, продукты, цели, экономика. Claude читает её перед каждой задачей и заземляет решения на реальный контекст бизнеса.

Термин

ИИ-клон

Цифровая проекция твоего мышления в виде папки ai-clone/: ценности, принципы, тон, правила, выученные через ошибки. Claude читает её перед текстами «от меня» - голос совпадает.

Термин

Контекст-инжиниринг

Дисциплина подготовки контекста для ИИ-агента: что он уже знает к моменту твоего промпта. 5 слоёв: ИИ-клон, бизнес, проект, зона задачи, сама задача.

Термин

ИИ-агент

Программная единица, которая берёт цель, читает контекст и сама ходит по системам: открывает файлы, дёргает API, пишет в БД, отвечает в чате. От чат-бота отличается тем, что не ждёт твоего следующего сообщения.