Парень случайно сжёг 6000 долларов в Claude за одну ночь одной командой
История, которая уже месяц гуляет по всем чатам разработчиков. Один пользователь Claude Code поставил себе на ночь автоматическую команду /loop, которая раз в 30 минут проверяла его открытые пулл реквесты. Утром он проснулся и обнаружил счёт на 6000 долларов.
Причина оказалась не в самой команде, а в том, как устроена тарификация Claude. Каждый запрос к API отправляет всю историю диалога целиком, а не только последнее сообщение. На первой итерации это пара сотен токенов, а на сорок шестой уже 800 тысяч токенов в одном запросе.
Anthropic использует prompt caching, чтобы такие сценарии не разоряли пользователей. Если разговор отправлялся недавно, он подтягивается из кеша со скидкой в 12,5 раз. Но кеш живёт всего 5 минут после последней активности, а потом сгорает.
В этой истории интервал /loop был выставлен на 30 минут. То есть каждая итерация выглядела так: команда срабатывает, история уходит в кеш, проходит полчаса, кеш истекает, команда снова срабатывает, кеша уже нет, и вся переписка перекешируется заново по полной цене записи. Каждая новая итерация ещё и добавляла свой ответ к контексту, поэтому следующая запись в кеш была ещё дороже.
К двадцатому часу диалог разросся до 800 тысяч токенов, и каждая итерация платила за повторное кеширование всех 800 тысяч токенов по самому дорогому тарифу. Сами ответы про статус пулл реквестов на этом фоне стоили буквально копейки.
Дополнительно подвела панель Anthropic. У неё есть задержка в отчётности на несколько дней, поэтому пользователь даже не видел, что что то идёт не так. Он узнал о проблеме только когда пришло письмо о превышении лимита.
Практический вывод для всех, кто пользуется /loop в Claude Code. Интервал нужно держать меньше 5 минут, чтобы кеш оставался горячим и не пересоздавался каждый раз. Либо запускать каждую итерацию в свежей сессии, чтобы контекст не разрастался. Иначе можно получить такой же сюрприз на утро.