← Назад к блогу
Как сэкономить токены в LLM: практический гайд для Claude Code (Opus 4.7)

Как сэкономить токены в LLM: практический гайд для Claude Code (Opus 4.7)

Как сэкономить токены в LLM: практический гайд для Claude Code

Потратить 10 подписок по $200 — не проблема. Проблема — сделать это осмысленно. Ниже собраны рабочие подходы к экономии токенов, которые я использую в ежедневной работе с Claude Code.

1. Как мы вообще платим

Claude Code тарифицирует input и output токены. Input — всё, что попадает в контекст: системный промпт, история чата, файлы, скриншоты. Output — то, что модель генерирует.

Каждое сообщение в чате добавляет к input весь накопленный контекст. В Claude Code сейчас доступен 1M-контекст для Opus (см. официальный гайд по сессиям) — это значит, что каждое сообщение в большой сессии оплачивается так, будто вы заново отправляете весь миллион токенов. Output тоже участвует в забивании контекста — он наращивается с каждым ответом.

Итого: чем короче переписка — тем дешевле. Чем меньше контекст — тем дешевле. Чем меньше «думает» модель — тем дешевле.

⚠️ Сюрприз перехода на Opus 4.7. У 4.7 обновлённый токенизатор: тот же текст теперь маппится в ×1.0–1.35 токенов по сравнению с 4.6. Плюс на поздних ходах в агентских сессиях модель думает больше — output растёт. Если вы переехали на 4.7 и счёт «вдруг» подрос — это не баг, это новая тарификация. Перемерьте бюджеты на реальном трафике.

2. Субагенты — мастхэв

Главный процесс (лид) не должен ничего делать сам. Его задача — координировать и делегировать. Всю работу выполняют субагенты с маленькими контекстами.

Зачем:

  • Контекст лид-процесса держится в рамках 100–200K и не растёт
  • Субагент отработал — контекст очистился
  • Можно запускать параллельно десятки агентов

Как настраивать:

Главный процесс (Opus, 200K контекст)
├── Агент 1 (Haiku, короткий контекст) — обработка скриптов
├── Агент 2 (Sonnet, короткий контекст) — написание тестов
└── Агент 3 (Haiku, короткий контекст) — рефакторинг

Для массовых задач (например, обработать 8000 скриптов) — один скрипт, один субагент, модель Haiku. Это радикально дешевле, чем гонять всё через один чат.

🆕 Opus 4.7 спавнит меньше субагентов по дефолту. Anthropic в best practices пишут прямо: модель стала более «бережливой» и предпочитает делать сама. Если у вас сценарий, где fan-out по файлам реально экономит — пропишите явно: «Spawn multiple subagents in the same turn when fanning out across items or reading multiple files. Do not spawn a subagent for work you can complete directly in a single response.»

Ментальный тест Anthropic перед запуском субагента: «нужен ли мне будет промежуточный вывод инструмента ещё раз — или только финальный вывод?» Если только вывод — это идеальный кандидат на субагента: весь шум останется в детском контексте, в родительский вернётся только результат.

3. Context rot: контекст и галлюцинации — нелинейная зависимость

У этого явления есть официальный термин — context rot. Anthropic определяет его так: качество модели деградирует с ростом контекста, потому что внимание размазывается по большему числу токенов, а старый нерелевантный контент начинает мешать текущей задаче.

Opus с контекстом 100K работает точнее, чем Opus с контекстом 1M. То есть большой контекст — это и дороже, и хуже по качеству.

Особенно злая штука — autocompact в плохой момент: автоматическое сжатие контекста срабатывает, когда вы уже подобрались к лимиту, а это ровно тот момент, когда модель из-за context rot находится на минимуме своего интеллекта. Сводки получаются кривые, ключевые детали выпадают.

Вывод: держите контексты компактными. Лучше 5 чатов по 100K, чем 1 чат на 500K. И не ждите, пока сработает autocompact.

4. Управление сессией: rewind, compact, clear, /usage

С релизом 1M-контекста Anthropic подробно расписали, что каждый ход в Claude Code — это branching point. У вас не один путь («написать ещё сообщение»), а пять:

СитуацияЧто использоватьПочему
Та же задача, контекст ещё нуженContinueВсё в окне ещё работает, не платите за пересборку
Claude пошёл не туда/rewind (Esc Esc)Сохраняет полезные file reads, выкидывает провалившуюся попытку
Сессия раздулась устаревшим debug/exploration/compactДёшево; Claude сам решит что важно (можно подсказать)
Начинаете реально новую задачу/clearНоль rot; вы сами контролируете, что переносится
Следующий шаг даст много мусорного output, а нужен только итогSubagentШум остаётся в детском контексте, в родительский — только результат

Практические правила:

  • Новая задача = новая сессия. Это базовый rule of thumb от Anthropic.
  • /rewind лучше, чем «попробуй иначе». Если Claude прочитал 5 файлов и пошёл по неудачному пути — не пишите «не работает, попробуй X». Откатитесь к моменту после чтения файлов и переформулируйте: «не используй подход A, foo не экспортит это, иди сразу через B». Полезные file reads сохраняются, провал выпадает из контекста.
  • /compact vs /clear. /compact — автосводка, lossy, можно рулить инструкцией: /compact focus on the auth refactor, drop the test debugging. /clear — вы сами пишете бриф («рефакторим auth middleware, ограничение X, файлы A и B, подход Y отмели»). Дольше — но контекст ровно тот, что вы решили оставить.
  • Делайте /compact проактивно, пока модель ещё не упёрлась в стену. У вас 1M — времени хватает. Не ждите autocompact на минимуме интеллекта.
  • Слеш-команда /usage показывает фактический расход — пользуйтесь, чтобы калибровать поведение.

5. Скиллы решают

Навыки (skills) — преднастроенные промпты, которые загружаются по требованию и не сидят в контексте постоянно. Многие фреймворки первым делом подготавливают/скачивают скиллы для работы.

В отличие от MCP-серверов (которые постоянно загружают свои инструкции в контекст), скиллы активируются только когда нужны. До Opus 4.5 на MCP терялось много токенов — сейчас проблему решили, но подход «заменить MCP на скиллы и команды» всё ещё актуален для экономии.

Caveman

Caveman — открытый скилл и плагин для Claude Code (и других агентов): просит модель отвечать ультра-кратко в стиле речи пещерного человека, сохраняя техническую точность — наглядная реализация тезиса «чем короче переписка — тем дешевле» из §1. В бенчмарках репозитория в среднем около 65% экономии output-токенов; отдельно есть caveman-compress для сжатия прозы в memory-файлах и экономии input.

6. Китайские модели и дешёвые подписки

Alibaba Cloud, китайские подписки — по соотношению цена/токен они сильно выигрывают. Подписка за ~$30 даёт сопоставимое с Anthropic $200 количество токенов.

Практика:

  • Используются обёртки над Claude, позволяющие переключать провайдера моделей
  • Глобальные env-переменные не модифицируются — нужные передаются только при запуске обёртки
  • Gemini тоже имеет дешёвые подписки, которые можно использовать аналогично

Пока нет готового решения «зашить все модели от разных провайдеров прямо в Claude», но обёртки закрывают 80% потребностей. Одна из таких — Clother — позволяет запускать Claude Code с разными провайдерами моделей, не трогая глобальные настройки.

7. Графы знаний и RAG: сокращение токенов в 10 раз

LightRAG

LightRAG — подход, который связывает графы знаний и LLM. Позволяет сократить расход токенов до 10 раз за счёт структурированного извлечения релевантной информации вместо загрузки всего контекста.

a8e

Разработка ivansglazunov — автор работает в режиме отшельника и мало что публикует, поэтому толком увидеть проект пока сложно. Работает как библиотекарь-RAG: все поступающие данные закидывает в базу данных. Идея — связать графы и LLM для более точного и дешёвого извлечения контекста. Подход похож на технологии, описанные в этом видео.

cmdop-claude

cmdop-claude — подход от markolofsen. Из графов используются деревья Меркла. Основная идея: крутить фоном почти бесплатные китайские LLM, чтобы приводить .claude папку в порядок — подготавливать контекст для основной модели.

8. Фреймворки для управления агентами

Superpowers

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

AI Factory

ai-factory — интересный фреймворк для управления AI-агентами. В связке с aif-handoff даёт фронтенд с канбан-досками и фильтрами.

Ключевая идея: человек ставит изначальные задачи, AI их декомпозирует, но работа не начинается без одобрения человеком готового плана. Это и экономит токены (нет переделок), и даёт контроль.

9. Effort levels у Opus 4.7: xhigh дефолт, max — антипаттерн

С Opus 4.7 появился новый уровень xhigh между high и max. И в Claude Code теперь это дефолт для всех планов. Старая интуиция «выкручу max — будет умнее» больше не работает.

Anthropic рекомендует так:

УровеньКогда использовать
low / mediumCost-/latency-sensitive, узкие задачи. На том же уровне 4.7 уже сильнее 4.6 — и low-effort 4.7 ≈ medium-effort 4.6 по качеству. Прямая экономия.
highПараллельные сессии или хочется снизить расход без большой просадки качества.
xhigh (дефолт)Лучшее для большинства кодинга и агентских задач. Сильная автономия + интеллект, без runaway-токенов, которые даёт max на длинных прогонах.
maxНе используйте по умолчанию. Diminishing returns, склонен к overthinking. Anthropic пишут прямо: «use it deliberately for tasks like testing the model’s maximum ceiling in evals and for extremely intelligence-sensitive and non-cost-sensitive uses».

Ключевой тезис. Если вы апгрейдились с 4.6 — не переносите старый effort механически. Поэкспериментируйте: то, что вы крутили на high у 4.6, на 4.7 часто работает на medium за меньшие деньги.

Adaptive thinking: фиксированного бюджета больше нет

Extended Thinking с фиксированным thinking budget в 4.7 не поддерживается. Вместо него — adaptive thinking: модель сама решает на каждом шаге, нужно ли «думать», и сколько.

Управляется промптом:

  • Хотите больше размышления: «Think carefully and step-by-step before responding; this problem is harder than it looks.»
  • Хотите экономии: «Prioritize responding quickly rather than thinking deeply. When in doubt, respond directly.» — теряете часть точности на сложных шагах, но сохраняете токены.

10. Практические мелочи

Опишите задачу полностью на первом ходе. Anthropic пишут прямо: «треатьте Claude как способного инженера, которому делегируете, а не пар-программиста, которого ведёте по строчке». Хорошее ТЗ с intent, ограничениями, acceptance-критериями и путями к файлам — на первом сообщении. Размазанные по 10 ходам уточнения не только дороже (каждый ход добавляет reasoning overhead), но и снижают качество результата на 4.7.

Auto mode для доверенных длинных задач. В Claude Code Max появился auto-режим (Shift+Tab) — Claude принимает решения за вас, прерываясь реже. Меньше итераций согласования = меньше токенов.

Скиллы вместо MCP. До Opus 4.5 замена MCP на скиллы давала ощутимую экономию. Сейчас разница меньше, но для массовых задач подход всё ещё рабочий.

Управление моделью субагентов. Можно указывать, какую модель должен использовать субагент. Для рутинных задач — Haiku, для сложных — Sonnet или Opus.

Длина ответа теперь калибруется автоматически. Opus 4.7 короче на простых лукапах и длиннее на open-ended анализе — менее verbose по дефолту. Если жёстко нужна определённая длина или стиль — указывайте явно. Anthropic подсказывают: позитивные примеры стиля работают лучше, чем «не делай так».

Меньше инструментов, больше рассуждений. Opus 4.7 по дефолту реже ходит в инструменты. Если вашему сценарию нужен агрессивный поиск/чтение файлов — пропишите когда и зачем, иначе модель сэкономит ходы за счёт догадок.

Task budgets (API). В Claude Platform появились task budgets в public beta — можно ограничивать токеновый бюджет на длинный run целиком, а не молиться, чтобы модель сама не разогналась.

Режим --bare — чистый запуск. Флаг --bare запускает Claude Code без хуков, LSP, синхронизации плагинов, авто-памяти, фоновой предзагрузки и — главное — без авто-обнаружения CLAUDE.md. Всё это обычно подгружается в системный промпт и жжёт токены ещё до первого сообщения. В bare-режиме контекст стартует минимальным, а нужные данные можно передать точечно через --system-prompt, --append-system-prompt, --add-dir или --mcp-config. Идеально для массовых субагентов, где лишний препромпт — чистый расход.

11. Хуки — автоматическая экономия

Хуки (hooks) — это скрипты, которые срабатывают на события внутри Claude Code. Настраиваются в .claude/settings.json и позволяют автоматизировать рутину, экономящую токены.

Типы хуков

  • PreToolUse — срабатывает перед вызовом инструмента. Можно фильтровать или модифицировать входные данные.
  • PostToolUse — срабатывает после. Полезен для автоформатирования и постобработки.
  • PreCompact — срабатывает перед сжатием контекста. Позволяет сохранить важную информацию.
  • Stop — срабатывает, когда агент заканчивает работу. Можно проверить полноту выполнения.
  • SessionStart — срабатывает при старте сессии. Полезен для предзагрузки контекста.

Примеры полезных хуков

Фильтрация вывода тестов. Официальный пример от Anthropic — хук на PreToolUse для Bash, который обрезает длинный вывод тестов, оставляя только упавшие тесты и summary. Вместо 500 строк лога в контекст попадает 10 строк — прямая экономия токенов.

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "command": "ваш_скрипт_фильтрации.sh"
    }]
  }
}

Автоформатирование после записи. Хук на PostToolUse для Write/Edit — запуск prettier или black после каждого сохранения файла. Модели не нужно тратить токены на форматирование кода — она пишет логику, а форматирование делает хук.

Защита от деструктивных команд. Хук на PreToolUse для Bash, который блокирует rm -rf, DROP TABLE и подобные команды. Не экономит токены напрямую, но защищает от дорогих ошибок и переделок.

Сохранение контекста перед компактом. Хук на PreCompact — перед сжатием контекста можно сохранить ключевые решения и состояние в файл, чтобы не потерять их после компакта.

Что хуки НЕ могут

Автокомпакт каждое N-е сообщение нельзя настроить через хуки — это встроенная функция Claude Code. Но можно использовать хук PreCompact, чтобы управлять тем, что сохраняется при сжатии.

12. Скриншоты — скрытый пожиратель токенов

Claude по документации сжимает изображения по разрешению. На практике — сжатия не заметно. На 4K-мониторе один скриншот стоит дорого.

⚠️ С Opus 4.7 ситуация ещё хуже. Модель теперь принимает картинки до 2576px по длинной стороне (~3.75 МП) — это в три с лишним раза больше, чем у предыдущих моделей. Anthropic в сноске анонса пишут прямо: «higher-resolution images consume more tokens, users who don’t require the extra detail can downsample images before sending them to the model». То есть штатный апгрейд по vision одновременно стал и апгрейдом счёта.

Решение: урезать скриншоты до ~400px по ширине перед отправкой. Текст остаётся читаемым, а токенов тратится на порядок меньше.

Для macOS я сделал Open Screenshot — утилиту, которая делает скриншоты сразу в ужатом по разрешению формате. Ничего ресайзить вручную не нужно. Пользуйтесь!

Чеклист экономии

ПодходЭкономия
Субагенты с короткими контекстами2–5x на длинных сессиях
Китайские модели для рутины5–10x по цене ($30 vs $200)
Скиллы вместо постоянного MCP1.5–2x
Хуки для фильтрации вывода1.5–3x на задачах с тестами/логами
Компактные скриншоты (особенно с 4.7)2–3x на задачах с визуалом
Графы/RAG вместо полного контекстадо 3–5x
Снижение effort у Opus 4.7 (low/medium вместо high)1.5–3x при сопоставимом качестве
Отказ от max в пользу xhigh по дефолтудо 2x на длинных агентских прогонах
/rewind вместо «попробуй иначе»1.3–2x: выкидывает мусор, оставляет file reads
/compact проактивно (до autocompact)сохраняет качество, меньше повторных проходов
Полное ТЗ на первом ходе (Opus 4.7)1.3–1.7x: меньше ходов, меньше reasoning overhead
--bare режим для субагентов1.5–2x на каждом запуске
Adaptive thinking-промпт «отвечай быстро»1.2–1.5x на простых задачах
Task budgets (API)защита от runaway-токенов на длинных run
Фреймворки с одобрением планакосвенно, через меньшее число переделок

Слить можно сколько угодно — и 10 аккаунтов по $200 не предел. Но это не показатель эффективности. Цель — сократить расходы хотя бы в 10 раз, не потеряв в качестве.