Перейти к содержимому
Александр Медведев
Назад

Cache-стратегия Claude Pro: как я сэкономил 85% стоимости запросов

За 6 месяцев активной работы с Claude Code на Pro-подписке я научился осмысленно работать с моделью кэширования Claude. Цифры моих реальных сессий: 94% попаданий в кэш, экономия 85% стоимости запросов. Это не теория и не маркетинг — это данные, выгруженные из Anthropic Console.

На Pro-подписке вы не платите за каждый токен — у вас квота. Но эффективное использование кэша = квота растягивается в разы. Те же сессии при работе через API дали бы прямой эффект в счёте за месяц.

Этот пост — про то, что я понял про кэш Claude, какие ошибки сделал на старте, и как теперь выбираю модель и структурирую сессии.

Table of contents

Open Table of contents

Как работает кэш Claude (за одну минуту)

Anthropic предоставляет prompt caching: повторно используемые куски запроса (system prompt, ранние сообщения диалога, большие документы в контексте) помечаются как кэшируемые. Тогда:

Это API-уровень. В Claude Code и Claude.ai кэш применяется автоматически — вам не нужно расставлять cache_control руками. Но поведение пользователя влияет на то, какая доля запросов реально попадает в кэш.

Что я наблюдаю на реальных сессиях

Мои сессии в Claude Code — длинные. От 30 минут до нескольких часов работы с одним проектом. Когда я выгрузил данные из Anthropic Console (там есть раздельная статистика cached input vs uncached input), получилось так:

Это работает потому что:

Anti-pattern №1: model ping-pong

Самая дорогая ошибка из тех что я сделал на старте — переключение моделей в одной сессии.

Сценарий: пишу архитектурное решение на Opus, по ходу переключаюсь на Sonnet чтобы “быстро мелкие правки внести”, потом обратно на Opus.

Что происходит на уровне кэша:

  1. Кэш Opus — отдельный, кэш Sonnet — отдельный
  2. При переключении на Sonnet первый запрос требует прогрева кэша Sonnet с нуля — это cache write на весь system prompt и накопленный контекст
  3. При возврате к Opus — если уложился в 5-минутный TTL, кэш Opus ещё живой; если нет — снова cache write на весь контекст

Цена одного такого переключения — примерно 50–100 тысяч токенов на cache write (зависит от размера контекста). Если ping-понг между моделями 5 раз за сессию — счёт легко уходит за 500к токенов только на повторные cache writes. На квоте Pro-подписки это превращается в “почему я так быстро упёрся в лимит сегодня”.

Правило: выбирайте модель один раз на сессию. Если осознанно нужна другая модель — открывайте новую сессию.

Anti-pattern №2: правки system prompt mid-session

Менее очевидная ловушка. Если в середине длинной сессии я редактирую CLAUDE.md, SOUL.md или другие identity-файлы, которые попадают в system prompt — следующий запрос обнаружит, что префикс изменился, и инвалидирует весь кэш ниже.

Эффект: на следующем сообщении — full cache write на новый system prompt + весь накопленный диалог. Снова 50–100к токенов в трубу.

Правило: правки в identity-файлы (CLAUDE.md и подобные) делайте между сессиями, не во время. Если правишь в процессе — будь готов к тому, что эта сессия только что стала дороже.

Decision matrix: какую модель в какой момент

Из своего опыта я вывел простое правило выбора модели — по downstream impact задачи, то есть насколько решение повлияет на дальнейшую работу.

Тип задачиМодельПочему
Архитектурные решения, дизайн систем, всё с долгоиграющими последствиямиOpusСтоит дорого, но ошибка здесь дороже
Код, рефакторинг, анализ с ясными границами — “пройти за 1–2 итерации”SonnetБаланс качества и стоимости
Чистая механика: переименовать, форматировать, найти, парсить, browser-операцииHaikuБыстро и дёшево, без избыточного “размышления”

Простой эвристический критерий: “Если задача — это if-условие или прямое сопоставление, это скрипт, а не промпт”. AI остаётся для задач, где нужно суждение или творчество.

Правильный вопрос — не “какая модель моя default”, а “имеет ли эта задача downstream impact”. Если да — Opus как инвестиция, не как трата. Если нет — Sonnet или Haiku, сохраняем квоту.

Subagents — отдельная кэш-территория

В Claude Code есть subagents (через Task tool) — возможность запустить параллельную сессию для конкретной задачи. Это полезно для:

Что важно про кэш и subagents:

Ещё одна ловушка наследования: если main session работает на Opus, и вы не указали модель явно для subagent — он унаследует Opus. Так все subagents окажутся на самой дорогой модели. На квоте Pro это квота-leak ×15.

Правила для subagents:

  1. Всегда явно указывайте модель subagent, не полагайтесь на наследование
  2. Кластеризуйте subagent-ы одного типа во времени (одна “пачка”)
  3. Параллельный запуск через одно сообщение лучше последовательного (потенциальная дедупликация cache write на стороне Anthropic)
  4. Используйте subagent только когда задача требует больше 2 итераций — иначе overhead на cache write не окупится

Практический чек-лист

Перед началом сессии:

Во время сессии:

С subagents:

С API напрямую:

Заключение

Кэш-aware подход — это не “оптимизация ради оптимизации”. Это про то, что вы получаете в разы больше работы за ту же квоту или те же деньги. На Pro-подписке это означает что реже упираетесь в лимит. На API — десятки тысяч рублей экономии каждый месяц при активной работе.

Главное — это не “техника”, а дисциплина:

Кэш — это архитектурная фича, а не магия. Она работает на вас, если вы строите рабочий процесс осознанно. И против вас — если работаете “как привыкли”.


Если ваш Cache hit rate в Anthropic Console меньше 80% — есть что улучшить. Начните с двух правил выше (не переключать модели, не править identity-файлы) и проверьте метрики через неделю.


Поделиться постом:

Предыдущий пост
Skills как готовые сценарии работы AI-агента: как я перенёс паттерн Anthropic в свой workflow