Как снизить расходы на токены Claude: кэширование промптов, накладные расходы MCP, LSP и смена модели
Куда на самом деле уходят токены Claude: повторно отправляемая история, пятиминутное окно кэша, схемы MCP, grep против LSP, проверка «пещерного» промпта и привычки, которые сокращают траты.
Счёт за Claude может расти, даже если никто не переходил на модель покрупнее. Чаще причина в куче инструментов, которые загружаются и ни разу не вызываются. Первый звоночек обычно — сессия вдруг начинает тормозить, остальное показывают цифры расхода. У многих разработчиков бюджет съедают одни и те же привычки, так что их стоит разобрать по порядку.
Куда уходят деньги: входные токены
Модель не помнит предыдущее сообщение. На каждом ходе весь диалог отправляется заново. К двадцатому сообщению вы платите за повторную отправку первых девятнадцати ещё до того, как написано хоть одно новое слово.
Выходные токены стоят примерно в пять раз дороже входных, и именно эту цифру все цитируют. Но в длинном чате выход остаётся небольшим по сравнению со входом, а копится как раз вход. Для грубого пересчёта: 100 токенов — это около 75 английских слов. Посчитайте часовую сессию, и итог быстро станет неприятным. Входные токены нарастают с каждым ходом, выходные — нет.
Кэширование промптов — скидка, которой мало кто пользуется
Anthropic кэширует начальную часть промпта, если она совпадает в точности. Чтение из кэша стоит примерно десять процентов от обычной цены входа. Промах обходится чуть дороже, чем вообще без кэша: создание записи в кэше идёт с наценкой 1,25x к базовой цене.
По умолчанию кэш живёт пять минут, и каждое попадание бесплатно продлевает этот срок. Есть вариант на один час, но запись в него стоит вдвое дороже.
Срок жизни значит очень много. В марте 2026 года Claude Code, по имеющимся данным, перешёл с часового кэша на пятиминутный. Один разработчик разобрал собственные счета за API и завёл issue на GitHub. С часовым кэшем на перезапись кэша уходило около 1% расходов. После изменения эта доля колебалась от 15% до 53%.
Другой разработчик смоделировал сессию Opus на 200K токенов. Отойдёте больше чем на пять минут — и по возвращении весь контекст придётся записывать заново, примерно за $1.25 каждый раз. За полный день некоторые сессии выходили на 30–60% дороже при той же самой работе. Разница была только в окне кэша.
Вернулись в пределах пяти минут — платите десятую часть. Пропустили окно — платите в 1,25 раза больше.
Есть подвох: совпадение должно быть точным. Любая правка системного промпта, добавленный или убранный инструмент, смена модели посреди сессии — и кэш обнуляется. Согласно документации Anthropic, изменение одного-единственного определения инструмента инвалидирует весь кэш. Насколько снисходительно сравнение под высокой нагрузкой, не очень понятно: загруженные сессии могут вести себя менее предсказуемо, чем обещает спецификация. Дашборд расхода — ориентир надёжнее, чем подсчёты в уме.
На практике это значит: сначала выберите модель, держите системный промпт неизменным и не добавляйте инструменты на полпути. Если вы работаете через API и паузы между ходами регулярно длиннее пяти минут, часовой кэш вполне может оказаться дешевле.
MCP-серверы не бесплатны
Каждый подключённый инструмент добавляет в промпт свою схему: имя, описание и все параметры. Эта плата повторяется на каждом ходе, пока инструмент загружен, используется он или нет.
После поста одного разработчика многие пошли это проверять. При запуске сессии Claude Code с несколькими MCP-серверами одни только инструменты съели больше 66 000 токенов ещё до первого набранного слова. Это треть окна в 200K. Запуск /doctor показал, что реальная цифра ближе к 82 000, причём один поисковый сервер с 20 инструментами давал около 14 000 токенов.
Бывает и хуже. В issue на GitHub от ноября 2025 года Docker MCP-сервер со 135 инструментами в одиночку занимал около 126 000 токенов, и автор получал предупреждение "context low" (мало контекста) на каждой команде.
MCP окупается, когда нужен структурированный, регулярный доступ к сервису. Но не тогда, когда он просто лежит в контексте без дела.
Недавнее улучшение. В январе 2026 года в Claude Code появился Tool Search. Если описания MCP заняли бы больше десятой части контекста, их полные схемы не попадают в промпт. Вместо них модель получает лёгкий инструмент поиска, а определение подгружается только в тот момент, когда оно действительно нужно. По данным Anthropic, накладные расходы на токены инструментов снижаются примерно на 85%.
Постоянная плата уменьшилась, но не исчезла. Конфигурации, которые не дотягивают до порога, по-прежнему загружают все схемы сразу. Другие клиенты могут вообще не откладывать загрузку. А гора инструментов бьёт по точности, даже если они дешёвые. Команда /context показывает, за что вы платите на самом деле.
Инструменты командной строки обходят проблему целиком. Модель уже знает git, curl и GitHub CLI или может запустить --help. Ни схемы, ни постоянной платы. Для того, что нужно лишь время от времени, CLI выигрывает.
Поиск по коду сжигает больше, чем кажется
Grep видит код как обычный текст. Поиск того, где определён User, возвращает каждое упоминание: классы, переменные, комментарии, импорты, селекторы стилей и столбцы базы данных.
В разборе одного реального проекта такой поиск дал 847 совпадений в 203 файлах, и модель потом читала каждое, чтобы найти настоящее определение. Время по логам: до минуты на grep против примерно 50 мс, когда отвечал языковой сервер.
В меньшем масштабе картина та же. В репозитории на 30K строк grep при переименовании функции выдал 733 совпадения, из которых значение имели только 501. Каждое лишнее совпадение всё равно читается и оплачивается. Если направить модель к LSP, она сразу получает эти 501, и на одном этом поиске экономия составила около 13K токенов. Сохраняется ли такое соотношение в других проектах, неясно, но на обоих измеренных репозиториях оно сохранилось.
От тех, кто пользуется этим давно, два предостережения:
- Claude по умолчанию берётся за grep, даже когда LSP включён. Один разработчик обнаружил, что LSP срабатывал лишь примерно в 1% случаев, пока он не прописал явные указания в
CLAUDE.md. - У grep по-прежнему есть своя ниша. Это правильный инструмент для логов, конфигов, строковых литералов и всего, что не является символом кода.
Grep возвращает все текстовые совпадения, а LSP — один запрошенный символ.
Работает ли трюк «говори как пещерный человек»?
Популярный скилл на GitHub обещает до 65% меньше выходных токенов за счёт рубленых, неграмматичных ответов и собрал десятки тысяч звёзд. Обычные тесты в чате показали выигрыш около 10%, а в программировании и агентной работе почти ничего не изменилось: исходный код нельзя ужать, как прозу.
Контролируемое сравнение от JetBrains дало точные цифры: заявленная экономия — 65%, на реальных агентных задачах — 8,5%. И даже эта цифра получена с принудительно включённым скиллом, что команда назвала верхней границей, а не типичным результатом.
В репозитории это теперь признают. Скилл сокращает только выход. Входные токены и токены рассуждений остаются нетронутыми, а сам скилл добавляет примерно 1000–1500 входных токенов на каждом ходе просто фактом своего существования. Эта история больше говорит о том, как продают экономию токенов, чем о том, что её на самом деле даёт. Промпт из шести строк с просьбой отвечать кратко даёт почти тот же эффект.
Смена модели посреди сессии стоит вдвойне
Из всех пунктов именно этот застаёт людей врасплох. Перейти на модель подешевле на полпути звучит экономно, но редко таким оказывается. Сохранённый промпт принадлежит предыдущей модели, поэтому новой приходится обрабатывать всё заново и платить наценку за запись.
Выбирайте модель до начала работы. Кому нужна маршрутизация без платы за переключение, может использовать роутер, который выбирает модель до отправки запроса, — так проблема исчезает полностью.
Привычка с самым большим эффектом — точность
Скажите прямо, какой нужен формат, какие поля и какая длина, и модель перестанет выдавать то, о чём никто не просил. Сравните этот промпт:
Return a JSON object with keys: "title", "price", "inStock".
No extra commentary.
с "дай мне информацию о товаре". Второй вариант не просто ленивый. Расплывчатость провоцирует модель отвечать с избытком. Конкретность проходит через почти все хорошие приёмы промптинга и напрямую связана с тем, сколько вы просите у модели за один раз.
Что в итоге
Дело вовсе не в выборе модели подешевле. Дело в том, что попадает в модель и как часто ей приходится перечитывать саму себя. Чек-лист короткий:
- держите системный промпт неизменным
- оставайтесь на одной модели
- запускайте
/contextи убирайте неиспользуемые инструменты - включите LSP и пропишите в инструкциях, что он предпочтительнее
- чётко опишите нужную форму ответа
Это покрывает большую часть выигрыша, и начать можно уже завтра бесплатно.
Коротко о главном
Выходные токены действительно дороже входных? Да, у моделей Claude примерно в пять раз за токен. Но в длинном разговоре всё равно доминирует вход, потому что вся история отправляется заново на каждом ходе.
Смена модели посреди разговора всегда увеличивает стоимость? Сама по себе смена — нет. Вредит сломанный кэш: следующий запрос оплачивается по тарифу записи, а не по льготному тарифу чтения. Если выбрать модель заранее, этого не будет.
Лишние MCP-инструменты — это всегда проблема с токенами? Нет. Они оправданы, когда сервису нужен структурированный регулярный доступ, а Claude Code откладывает загрузку схем, когда те становятся большими. Проблемы появляются в небольших конфигурациях, в клиентах без отложенной загрузки и с точностью, когда у модели слишком много вариантов.