Лимит Claude Max закончился за 4 часа. Виноват я, не тариф

Лимит Claude Max закончился за 4 часа. Виноват я, не тариф

Я платил Anthropic $200 в месяц за тариф Max 20x. И всё равно упирался в лимит к обеду. Сначала думал, что тариф жидкий и надо переходить на API с pay-as-you-go. Месяц считал каждый токен. Оказалось, я сам жёг подписку в 4 раза быстрее необходимого - и 5 одинаковых ошибок повторял каждый день.

Я не инженер Anthropic и не имею доступа к их телеметрии. Я предприниматель, который кодит вайб-методом и держит на Claude Code три продакшен-проекта: посадочную страницу, личный кабинет с программой, телеграм-бот с оплатами. Программистов в команде у меня нет. Когда лимит кончается к 13:00, это не «потерпеть, дальше будет лучше». Это «остановись на 4 часа и плати из кармана». Поэтому я разобрался.

Это не статья «8 способов оптимизации». Это разбор того, как я СЕБЯ ловил - и что переделал. Артефакты внутри готовы к копированию.

Ошибка 1. Жал /compact когда контекст разрастался. Кэш умирал каждый час

Я думал: «контекст забит, /compact его сожмёт - и поехали дальше». На деле /compact ломает conversation cache и тратит токены на саму суммаризацию. Кэш на подписке держится 1 час и даёт 90% скидку на input. Когда я жал /compact четыре раза за рабочий день, я четыре раза платил по полной за заново загруженный CLAUDE.md и project context. На моём CLAUDE.md в 500 строк это было около 15K input-токенов на каждый сброс кэша.

Теперь я не жму /compact почти никогда. Вместо этого делаю передачу промта в соседний чат. Это сжимает 50K токенов истории чата в 500-800 токенов промта-инструкции - и новый чат стартует с прогретой CLAUDE.md, но с чистой памятью разговора.

Вот промт, которым я это делаю - копируй и адаптируй:

Напиши мне промт для нового чата, в котором другой Claude продолжит мою задачу без потери смысла. Включи в промт: 1. Что мы решали - одна фраза. 2. Что уже сделано - максимум 5 буллетов. 3. Что осталось - максимум 5 буллетов. 4. Ключевые файлы и пути - с пояснением «зачем». 5. Ключевые константы и решения - которые мне важно не потерять. 6. Что НЕ нужно делать снова - чтобы новый Claude не переоткрывал то, что мы уже отбросили. Без воды и без объяснения "зачем" - только инструкция следующему чату. 500-800 токенов максимум.

Я просто копирую этот результат в новый чат и говорю «начни отсюда». Контекст сжимается, я открываю новое окно с прогретой CLAUDE.md и без 50К токенов «истории как мы пришли». Это работает потому, что мне как человеку проще держать в голове 500 токенов структуры задачи, чем Claude - 50К токенов разговора.

Когда /compact всё ещё имеет смысл: ты в Plan Mode и не хочешь потерять текущий план. В остальных случаях передача промта сильнее по двум причинам: я могу руками отредактировать промт перед стартом нового чата (выбросить лишнее), а сам промт можно сохранить в plans/ и завтра вернуться без рестартов.

Ошибка 2. Держал CLAUDE.md на 500 строк. Каждая сессия платила за всё

У меня в CLAUDE.md лежало 500 строк: канон написания инструкций, регламент рассылок, правила проверки кода, FAQ для саппорта, описание архитектуры папок, список запрещённых слов. Я думал, что «вдруг пригодится» - и Claude знает всё про мой проект.

В реальности CLAUDE.md загружается на каждый старт сессии и сидит в контексте до её конца. Если в нём 500 строк - на каждой сессии ты платишь за эти 500 строк токенами. У меня это было примерно 12-15K input-токенов на каждом старте, и они тут же кэшировались. Пока сессия не закрылась, ты их видишь как 10% от полной цены. Когда сессия умирает (через час бездействия или после /clear) - кэш протухает, и следующее открытие платит полную цену.

Я узнал две вещи, которые меня переучили.

Первое - Andrej Karpathy выложил свой CLAUDE.md, в нём 65 строк (источник: github.com/forrestchang/andrej-karpathy-skills). Четыре правила: Think Before Coding, Simplicity First, Surgical Changes, Goal-Driven Execution. Репо собрало 130 000 звёзд и 28 дней подряд держалось в weekly trending GitHub. Если у одного из крёстных отцов современного ML на CLAUDE.md уходит 65 строк - моя пятьсот-строчная простыня была не сила, а слабость.

Второе - исследование AGENTbench на 138 реальных задачах из 12 Python-репозиториев показало: CLAUDE.md, сгенерированный командой /init, ухудшает success rate. Не нейтрально влияет - именно роняет качество. Объяснение простое: /init описывает репо «обратно модели» - добавляет в контекст то, что модель и так может узнать за один взгляд на структуру. Дублирование съедает токены и размывает фокус.

Что я сделал:

  1. Открыл CLAUDE.md и прошёлся по каждому абзацу с одним вопросом: «если я это удалю - Claude начнёт ошибаться?»
  2. Если ответ «нет» - удалял или выносил в .claude/skills/<имя>/SKILL.md.
  3. В скилы ушли регламент рассылок, канон написания инструкций, проверка перед публикацией - всё, что нужно только в определённых ситуациях.
  4. В CLAUDE.md осталось около 200 строк: навигация по проекту, базовые принципы, ссылки на скилы и папки.

Экономия: примерно 9K input-токенов на каждом старте сессии. У меня бывает 8-12 новых сессий за день - это десятки тысяч токенов в день, которые я платил за «вдруг пригодится». Полную инструкцию по плотному CLAUDE.md я разбирал в отдельном гайде - там готовый скелет с 6 правилами живого файла, по которому я переписал свой.

Ошибка 3. Дёргал /model opus в середине задачи. Кэш ломался каждый раз

Это самая обидная ошибка, потому что я делал её осознанно. Когда чувствовал, что Claude «тупит» на сложной задаче, я переключался на Opus командой /model opus прямо посреди диалога. Логика была: «Sonnet не справляется, дам мозгов».

Что я не понимал: каждая модель в Claude Code имеет свой отдельный кэш. После /model opus следующий запрос пересчитывает весь префикс на Opus с нуля, по полной input-цене. То есть я не «давал мозгов» - я обнулял прогретую сессию и платил $0.50 за каждый миллион cached-токенов как $5 (Opus полная цена).

Дополнительный нюанс с Opus 4.7: у него новый токенизатор по сравнению с Opus 4.6. На том же тексте может тратиться до 35% больше токенов. Цена за токен та же - но эффективная стоимость запроса выше.

Я переучился так:

  1. Модель выбирается на старте задачи, не дёргается в середине.
  2. Для простых правок, опечаток, переименований - Sonnet 4.6 (дефолт).
  3. Для архитектурных решений и сложного debug - Opus 4.7, но открываю новый чат под него, не переключаю в существующем.
  4. Для file routing, поиска, summarization - Haiku 4.5, тоже отдельный чат.
  5. Внутри одной модели использую /effort для глубины reasoning: для классификации - low, для архитектуры - xhigh. /effort модель не меняет, кэш не ломает.

В апреле 2026 Anthropic добавил /effort именно для этого - менее агрессивный регулятор «насколько глубоко думать», без удара по кэшу. Если ты раньше переключался на Opus только за глубиной - попробуй /effort xhigh на Sonnet, в большинстве задач хватит.

Сравнение моделей под задачи я разбирал детально в гайде Sonnet или Opus в Claude Code: выбор модели и /effort в 2026 - там матрица «задача → модель → effort», по которой я сейчас работаю.

Ошибка 4. Заталкивал три задачи дня в один чат

Утром я открывал чат и правил email-шаблон. Через час в этом же чате просил написать инструкцию для практикума. В обед в том же чате начинал debug продакшена. К 14:00 чат был на 60% контекста, Claude путался, переоткрывал файлы, которые уже знал, и начинал галлюцинировать.

Я думал: «контекст - это память, чем больше Claude помнит, тем лучше». На деле Claude на каждом сообщении читает весь предыдущий разговор. На третьей задаче в контекст попадает вся история первых двух - даже если они между собой никак не связаны. Токены тратятся на «помнить email-шаблон», когда я давно перешёл на debug.

Хуже того, auto-compact в Claude Code срабатывает примерно на 83.5% заполнения контекста. К этому моменту качество ответов давно деградировало. Реальная деградация начинается с 50-60% - и я её каждый раз ловил «странными» поведениями Claude, не понимая причины.

Правило, к которому я пришёл: один чат - одна задача. Конкретно:

  1. Новая задача = новый чат. Без вариантов.
  2. Если задача длится больше 30-40 минут и контекст забивается - передача промта в соседний чат (см. Ошибку 1).
  3. Если задача правда требует двух дней - закрываю чат с инструкцией для завтрашнего нового, не оставляю чат «зависшим на ночь».
  4. 5 параллельных чатов на разные задачи - норма, не аномалия. У меня обычно 3-5 открыто одновременно: посадочная страница в одном, рассылка в другом, debug в третьем.

Закрытие чата у меня работает и психологически. Когда я закрываю окно после законченной задачи, я освобождаю и оперативку Claude, и свою. Не держу 12 открытых вкладок «вдруг вернусь». Если задача правда вернётся - открою новую через claude --resume по имени ветки или ID PR.

База контекст-инжиниринга у меня держится в файлах проекта, не в живом чате. Подробно про эту связку - контекст-инжиниринг в 2026: что это и как применять в Claude Code. Это база, из которой выросло всё остальное.

Ошибка 5. Включил 8 MCP-серверов «вдруг пригодится»

Когда вышли MCP-серверы (Model Context Protocol), я ринулся подключать всё подряд: filesystem, GitHub, PostgreSQL, Slack, Linear, Playwright, Yandex Object Storage, Sentry. «Пусть будет, мало ли пригодится». Восемь штук висели в конфиге.

Что я не знал: каждый подключённый MCP-сервер добавляет свой блок в system prompt сессии. Это значит, что 8 серверов = 8 блоков описания инструментов = условные 8K дополнительных токенов на каждом старте, которые я плачу даже когда они не нужны. Хуже того, любой transient failure MCP-сервера и его auto-reconnect ломает кэш. Если у тебя нестабильный MCP - ты платишь дважды за каждый его перепук.

Я провёл аудит: за последние 30 дней реально использовал только 2 из 8 серверов (filesystem и GitHub). Остальные 6 висели в system prompt и жгли токены, не работая ни разу.

Что переделал:

  1. Отключил всё, кроме filesystem и GitHub.
  2. Договорился с собой: новые MCP подключаю только под конкретную задачу. Решил задачу - отключил.
  3. На больших задачах включаю Playwright или Yandex Object Storage точечно, через настройки сессии, а не в global config.

Экономия не самая большая в абсолютных цифрах - 5-7K input-токенов на старте сессии - но кэш стал жить намного дольше. Когда у меня не было reconnect-каскада от трёх кривых серверов, прогретый кэш доживал положенный час - и обращения внутри этого часа стоили мне 10% от полной цены.

Прежде чем подключать MCP «вдруг пригодится» - открой страницу сервера, посмотри что он реально даёт, и подключай только если используешь хотя бы раз в неделю. У меня сейчас работают filesystem (читает/пишет файлы в проекте) и GitHub (PR, issues, ветки) - этого достаточно для 90% задач. PostgreSQL и Playwright я подключаю точечно под конкретную задачу и сразу отключаю.

Что я делаю сейчас. Один день в Claude Code за $5-7

Через месяц считания токенов я перешёл с Max 20x на Max 5x за $100. Прежний тариф был нужен мне не из-за реального объёма работы, а из-за моих ошибок: они жгли лимит в 4 раза быстрее. Когда ошибки ушли, оказалось что $100 более чем хватает: лимит за день уходит на 40-60%. То есть подписки хватало бы на полтора-два полных рабочих дня подряд, если бы не сбрасывались счётчики каждые 5 часов и каждую неделю. Эквивалентно $5-7 в день на API - подписка экономит примерно в 4 раза.

Типичный мой день после переучивания:

  1. 9:00. Задача 1 - правка email-шаблона. Новый чат, Plan Mode, обсуждение 3 минуты, переключение в auto-accept, правка 10 минут. Закрываю.
  2. 9:30. Задача 2 - инструкция для участников практикума. Новый чат, срабатывает мой скилл для написания инструкций (4K токенов методологии подгружаются один раз). Через 40 минут готово. Закрываю.
  3. 11:00. Задача 3 - архитектура нового раздела. Новый чат, /model opus, Plan Mode. Через час обсуждения прошу сохранить план в plans/2026-MM-DD-...md. Закрываю чат.
  4. 12:00. Новый чат: «прочитай plans/...md и реализуй фазу 1». 4 sub-agent'а параллельно по одному на файл. Через 45 минут готово.
  5. 14:00. Задача 4 - правка посадочной. /model sonnet, новый чат. План + реализация - 30 минут.
  6. 15:00. Задача 5 - debug продакшена. /model opus, новый чат, Plan Mode. После часа разбора прошу написать промт для соседнего чата с найденной причиной и предлагаемым фиксом. Копирую в новый чат, реализую за 20 минут.

К концу дня: 6 задач, 8-10 закрытых чатов, ни одного /compact. Лимит съеден на 40-60%. Между задачами я не дёргаю /model и не открываю «на всякий случай» MCP-серверы. Кэш дышит, токены не утекают.

Главный сдвиг у меня был в подходе, не в технике. Я перестал думать о Claude как о «помощнике, который всё помнит». Claude - инженер в команде на короткой задаче. Дал чёткое задание, получил результат, закрыл диалог. Завтра новый диалог с тем же или с другим Claude. Но опираясь на фиксированный артефакт в plans/, не на «он же помнит, мы вчера договаривались».

Контр-интуитивный вывод. Дело не в подписке, дело в архитектуре сессии

Самое неприятное открытие за этот месяц считания токенов: Anthropic не разводит. Тариф Max 20x за $200 - это примерно $2000 эквивалентных токенов на API. Подписка реально окупается в десять раз. Если ты упираешься в лимит на Max - проблема почти всегда в архитектуре сессии, а не в количестве токенов. Слишком много контекста на каждый запрос, слишком много истории. Чинится переучиванием, не доплатой за следующий тариф.

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

А ты сейчас читаешь это в каком чате? В том же, где утром правил рассылку? Или ты закрыл предыдущий и открыл новый?

3 комментария