Лимиты Claude Code: что реально экономит токены

Лимиты Claude Code: что реально экономит токены

Знакомая ситуация: садишься поработать с Claude Code, и через десять минут пятичасовой лимит почти исчерпан. Автор под ником Kensei сжёг 90% лимита за 11 минут на простой задаче и решил проверить популярные советы по экономии на цифрах. Он сделал 945 прогонов Claude Code, оценил каждый ответ и выложил всё в открытый доступ. Из 12 советов пять действительно экономят токены, пять ничего заметного не дают, а два тратят больше, но окупаются по-другому. Пересказываем результаты и готовые настройки.

Как проводили тест

Чтобы модель не отвечала по памяти, автор взял Flask, который Claude видел в обучении много раз, и переименовал классы и функции. Получился «незнакомый» репозиторий Tessel: например, handle_user_exception стал route_user_fault. Вопросы были вида «как в этом репозитории устроено X», и ответ засчитывался, только если в нём названы точные функции из эталона.

Каждый прогон запускался чистым процессом claude -p с явными --model и --effort в свежей копии папки. Каждый совет сравнивался с базовой настройкой на тех же вопросах в перемешанном порядке. Базой служили Sonnet 5.5 с effort medium и обычная установка автора со списком скиллов и подключёнными коннекторами claude.ai. Токены считались по полю modelUsage вместе с субагентами и кэшем. Всего ушло 118 млн токенов, примерно $72 по прайсу API. Если 95%-ный доверительный интервал пересекал ноль, эффект считался неясным, даже если среднее выглядело красиво.

Куда на самом деле уходят токены

Голое «ok» в Claude Code обошлось автору в 19 100 токенов ещё до того, как модель открыла хоть один файл. Это системный промпт, описания инструментов, список скиллов, подключённые MCP-инструменты и CLAUDE.md. Обычный вопрос занимал около шести шагов, и на каждом шаге заново отправлялась вся эта база плюс всё прочитанное ранее. В итоге средний вопрос стоил 110 тысяч токенов, хотя контекст на последнем вызове был всего около 24 тысяч.

Поэтому 87% всех токенов пришлось на чтение из кэша, а сам ответ занимал лишь около 1%. Экономить можно только двумя способами: уменьшать базу или тащить меньше истории от вызова к вызову. Все советы, которые сработали, делают одно из двух. Советы, которые сокращают ответы модели, работают с тем самым одним процентом.

1. /clear при переходе к другой задаче

Самый сильный эффект во всём тесте. Автор строил диалоги на 5, 15 и 30 ходов, а потом задавал три новых вопроса в трёх вариантах: продолжить, сделать /clear или /compact. После 5 ходов /clear сократил расход на 47%, после 15 на 76%, после 30 на 79%: с 1,37 млн токенов до 285 тысяч. Один и тот же вопрос после 30 ходов стоил 544 тысячи токенов без очистки и 99 тысяч после неё. Разница в 445 тысяч это старая переписка, которая ехала в каждом вызове. При этом все 81 ответ были верными, потому что новым вопросам старый контекст не был нужен.

Делайте /clear в момент смены темы, а не после каждого вопроса: внутри одной задачи история помогает Claude не перечитывать файлы. Полезный трюк из документации Anthropic: перед очисткой выполните /rename, чтобы потом вернуться к сессии через /resume.

2. /compact, когда нить нужно сохранить

/compact сам по себе недешёвый: чтобы написать сводку, модель перечитывает весь диалог. Вызов стоил 55, 113 и 162 тысячи токенов, зато история сжималась с 51 тысячи до 3, со 107 до 9 и со 155 до 13 тысяч. Даже с учётом стоимости сжатия следующие три вопроса обошлись на 39%, 58% и 60% дешевле, чем без него. Правило простое: /clear, если следующая задача не связана с предыдущей, и /compact, если продолжает её. Дороже всего в тесте было продолжать диалог с историей больше 100 тысяч токенов на несвязанном вопросе.

3. Длинные правила из CLAUDE.md в скилл

CLAUDE.md загружается в каждый вызов каждой задачи, а скилл подтягивает только однострочное описание, пока Claude не решит, что он нужен. Автор положил одни и те же 16 КБ правил в два места. В CLAUDE.md они добавили 46% токенов на вопрос, в скилле с однострочной ссылкой из CLAUDE.md всего 1%, то есть в пределах шума. Напрямую вариант со скиллом оказался на 31% экономнее. 8 КБ лишних правил добавляли 21%, а на голом «ok» файл на 16 КБ прибавлял к каждому вызову 6466 токенов. Заодно с большими файлами модель дважды ошиблась из 40 ответов, а без файла ни разу из 20.

Скилл кладётся в .claude/skills/<имя>/SKILL.md с полями name и description во фронтматтере, а в CLAUDE.md остаётся одна строка о том, когда его загружать. Готовый шаблон есть в полной версии статьи.

Rules for the separate project live in the project-rules skill. Load them only for that project.

Размер своего файла проверьте командой wc -c CLAUDE.md. Грубо четыре символа это один токен, и платите вы за них в каждом вызове. Anthropic советует держать CLAUDE.md короче 200 строк. Короткая шпаргалка по репозиторию на 0,9 КБ (где что лежит и как запускать тесты) в среднем даже экономила 17%, хотя доверительный интервал не позволяет утверждать это уверенно.

4. Низкий effort, но только на Opus

Совет «понизь effort» зависит от модели. На Opus 5.5 режим low вместо medium сэкономил 17% токенов, и все 20 ответов остались верными. На Sonnet 5.5 low дал лишь 4% с интервалом от минус 18% до плюс 9%, то есть ничего. А high на Sonnet стоил на 20% больше при тех же 20 верных ответах. Автор держит medium по умолчанию, low для поиска информации на Opus и high только для действительно сложных задач.

claude --effort low

Или задайте effortLevel по умолчанию для конкретной модели в разделе modelSettings файла ~/.claude/settings.json.

Менять effort посреди сессии можно бесплатно: на моделях 5.5 смена уровня сохраняет кэш. Со сменой модели всё наоборот, об этом ниже.

5. Плоская карта заметок о проекте

Автор дал Claude папку коротких заметок о кодовой базе (архитектура, поток запроса, сессии, конфиг, CLI) и CLAUDE.md с индексом и правилом: сначала отвечать по заметке, а код открывать, только если в заметке ответа нет. Расход упал на 32%, но 2 ответа из 20 оказались ошибочными. Обе ошибки на одном вопросе: заметка называла класс сериализатора, но не упоминала базовый класс, и Claude не стал открывать код. Работает, если заметки поддерживаются в актуальном состоянии, а там, где точность критична, модели стоит разрешить заглянуть в исходники.

Два вывода из отдельного, меньшего теста. Читать заметки как обычные файлы выгоднее, чем через MCP-плагин Obsidian: через MCP выходило на 34-42% дороже. И индекс должен быть плоским: цепочка README, затем индекс разделов, затем заметка ничего не экономила.

6. Называйте файл и функцию

Этот совет не экономит токены, но автор всё равно применяет его всегда. Десять вопросов по отладке задавались в двух вариантах: размытом («пользователи жалуются, что изменения во вложенном словаре сессии теряются, где искать?») и конкретном, с указанием класса, метода и файла. Конкретный вариант дал 20 верных ответов из 20 и тратил на 13% больше, потому что модель внимательнее читала нужный код. Размытый дал только 8 верных из 20. Дешёвый неверный ответ, после которого приходится спрашивать заново, в итоге обходится дороже.

7. Подходящая модель: Haiku тратит больше токенов, но стоит гораздо меньше

Haiku 5.5 на вопросах по коду израсходовала на 33% больше токенов, чем Sonnet: ей нужно больше шагов, чтобы найти тот же ответ. Но по прайсу вопрос стоил примерно в 12 раз дешевле: $0,007 против $0,081. Точность совпала: 19 из 20 у Haiku и Sonnet, 20 из 20 у Opus. Как это скажется на лимите подписки, зависит от того, как Anthropic пересчитывает использование, а точная формула не опубликована. Если по цене, Haiku даёт самую большую экономию в тесте, если по токенам, наоборот.

Выбирайте модель в начале сессии, например claude --model haiku для серии простых вопросов. У каждой модели свой кэш, поэтому переключение через /model посреди длинного диалога заставит перечитать всю историю без кэша. Тарик Шихипар из команды Claude Code приводит крайний случай: если вы уже на 100 тысячах токенов в диалоге с Opus, переключиться на Haiku ради простого вопроса выйдет дороже, чем дать ответить Opus.

Что не сработало

Субагенты. Задача «прогони тесты и разберись с падениями» плюс три уточняющих вопроса стоила с субагентом на 3% меньше в одном варианте и на 6% больше в другом, оба результата в пределах шума. Субагент начинает с нуля и заново читает всё, а экономия на последующих вопросах примерно это компенсирует. Зато основной диалог остаётся компактнее: 22 тысячи токенов против 32, и в долгой сессии это полезно.

Отключение неиспользуемых MCP-серверов. Голое «ok» стало легче на 1691 токен, а реальные вопросы подешевели на 8% с широким интервалом. Сделать стоит, это бесплатно, но рычаг маленький: описания MCP-инструментов и так подгружаются отложенно.

Запрет на чтение папки vendor. Правило Read(./vendor/**) в списке deny убрало лишние пути из результатов поиска, но итоговый расход изменился на 0,1%. Полезно, чтобы не пускать Claude туда, куда не нужно, но не для экономии.

Скилл caveman для коротких ответов. Выходные токены упали на 9%, но общий расход вырос на 6%: скилл добавляет свой текст в контекст, а ответы и так составляют около 1% трат. К третьему ходу диалога короткий стиль вообще пропадал.

Низкий effort на Sonnet. Как уже говорилось, заметной экономии нет.

Как проверить советы на своём проекте

Цифры автора получены на его кодовой базе, у вас они могут отличаться. Проверка занимает минут десять: задайте один вопрос пять раз в текущей конфигурации, поменяйте одну настройку и повторите. Готовый скрипт на bash и jq для подсчёта токенов есть в полной версии статьи.

Перед любыми скриптами загляните в /usage: на планах Pro, Max, Team и Enterprise команда показывает, сколько съели скиллы, субагенты, плагины и отдельные MCP-серверы. И три урока от автора. Меняйте одну вещь за раз и сравнивайте медианы, а не единичные прогоны. Считайте modelUsage, а не верхнеуровневое поле usage, которое не учитывает субагентов. Не сравнивайте вызовы с --resume напрямую, у них расход накопительный.

Ограничения теста

Почти все прогоны сделаны на Sonnet 5.5, Opus проверяли только на effort и размере CLAUDE.md. Кодовая база одна, на Python, и вопросы только на чтение кода: написание и рефакторинг не тестировались, Plan Mode тоже. Измерялись токены, а не счётчик подписки, где чтение кэша учитывается по сниженному тарифу. Версии Claude Code с 2.1.296 по 2.1.301, тесты прошли 14-16 октября 2026 года.

Короткая версия

Лимит съедает базовый контекст, умноженный на число вызовов и на историю, которую вы тащите за собой. Делайте /clear при смене задачи и /compact, когда нужно сохранить нить. Выносите длинные правила из CLAUDE.md в скиллы, держите effort на medium, называйте файл и функцию, если знаете их, и отключайте MCP-серверы, которыми не пользуетесь.

22