Ошибка 6 — сжигают лимиты Claude и OpenRouter

Тема 5/5: День 5. Главные ошибки новичков и следующий шаг Урок 6/9

У тарифов Claude Pro и Max есть лимиты на сообщения и на токены старшей модели. Каждый запрос с большим контекстом — это десятки тысяч токенов, и без контроля месячный лимит легко исчерпать раньше срока. В этом уроке — как считать траты, когда выбирать Pro, а когда Max, и как экономить.

Лимиты Claude

Anthropic регулярно меняет конкретные цифры, поэтому точные значения всегда стоит смотреть в настройках на claude.ai. Но общая схема устойчива. Бесплатный тариф даёт небольшое число сообщений в пятичасовом окне и не открывает доступ к старшей модели. Тариф Pro заметно поднимает лимит сообщений и добавляет ограниченный доступ к старшей модели. Тарифы Max расширяют лимиты Pro в несколько раз и дают самый большой объём токенов старшей модели. Главное, что нужно держать в голове, — лимиты считаются в двух окнах сразу: пятичасовом и недельном.

Что съедает токены

Каждый запрос несёт в себе сразу несколько слоёв контекста. Это файл CLAUDE.md, история переписки, которая растёт с каждым сообщением, файлы проекта, которые читал агент (а это потенциально тысячи токенов на файл), и вывод команд — логи, stdout и сообщения об ошибках, которых становится особенно много, если сборка пошла криво. Когда контекст разрастается до сотен тысяч токенов, каждое новое сообщение начинает обходиться дорого, и за долгую сессию можно исчерпать лимит просто за счёт накопленного «балласта».

Тактики экономии

Первое и самое простое — команда /clear после завершения задачи. Закончили и сделали коммит — почистите контекст, потому что история прошлой задачи следующей не нужна. Когда сессия длинная, но прерывать её нельзя, помогает /compact: она делает краткую сводку всего, что было, и продолжает работу уже с компактным контекстом.

Сильно экономит и переключение моделей командой /model. Старшую модель (Opus) есть смысл держать для сложной архитектуры, рефакторинга и тяжёлых ошибок; средняя (Sonnet) хороша для повседневной работы и стоит по умолчанию; а для рутины — переименовать переменную, добавить простой компонент, прочитать файл — более чем достаточно младшей модели (Haiku), которая обходится в разы дешевле.

Помогают и точные ссылки на файлы. Вместо «найди в проекте функцию платежа» лучше писать «посмотри src/lib/payment.ts:42-80 — обработка webhook»: тогда агент прочитает несколько десятков строк, а не весь файл и половину проекта вокруг него.

Отдельная статья экономии — большие выводы команд. Если запустить npm install, он может напечатать сотни строк, и весь этот вывод осядет в контексте. Поэтому стоит использовать тихий режим и обрезку вывода:

npm install --silent
npm run build 2>&1 | tail -50  # только последние 50 строк

Сюда же относится и привычка не вставлять в чат большие тексты руками. Файл на тысячу строк лучше дать агенту прочитать командой с указанием диапазона, а не копировать в окно сообщения куском «вот код, проверь» — иначе он дважды займёт контекст.

Когда апгрейдиться

Логика выбора тарифа сводится к одному правилу: лимит должен заканчиваться не раньше, чем ваш рабочий день. Бесплатный тариф годится, чтобы просто попробовать, что такое Claude. Pro покрывает личную работу в умеренном режиме, и на старте его хватает большинству. Max в варианте 5x рассчитан на полноценную ежедневную разработку, когда лимиты не должны мешать вообще, а вариант 20x — на параллельные сессии сразу по нескольким проектам или на командную работу. Проще говоря, если вы упираетесь в лимит в пределах одной рабочей сессии — апгрейд оправдан; если только за неделю — нет.

OpenRouter — отдельная статья расходов

Запросы ваших собственных пользователей идут уже не через ваш тариф Claude, а через OpenRouter, и это отдельная статья расходов. Цена зависит от модели и считается за миллион токенов отдельно на вход и на выход: старшие модели вроде Claude Sonnet дороже, более лёгкие вроде Haiku, GPT и Gemini — дешевле, а российский GigaChat тарифицируется в рублях. Один запрос пользователя в вашем сервисе обычно стоит небольшие центы, но при сотнях активных подписчиков счёт OpenRouter за месяц становится заметным, и эту себестоимость обязательно нужно закладывать в юнит-экономику.

Защита от «дорогих» пользователей

Один недобросовестный пользователь способен сжечь ваши деньги за короткое время, поэтому сервис нужно защищать сразу несколькими ограничениями. Стоит задать лимит токенов на один запрос (параметр max_tokens в вызове OpenRouter), ограничить частоту запросов от одного пользователя, ввести дневной лимит, который не сможет превысить даже платный пользователь, и настроить уведомление в Telegram на случай, если суточный расход OpenRouter выходит за разумный порог. Вместе эти меры превращают потенциальную дыру в бюджете в управляемую величину.

Что в следующем уроке

Лимиты и экономика — это материальная сторона. Но есть и ошибка иного рода — пренебрегать основами и полностью полагаться на агента, не понимая, что он делает. На следующем уроке разберём, почему «не учить основы» — это путь в тупик.