Перейти к основному содержанию

Claude Code cache miss и стоимость токенов: почему один turn внезапно дорогой

A
10 мин чтенияClaude Code

Cache miss в Claude Code не является отдельной строкой штрафа. Сначала проверьте маршрут, cache creation, cache read, недавние изменения контекста и биллинговую поверхность.

Claude Code cache miss и стоимость токенов: почему один turn внезапно дорогой

Cache miss в Claude Code обычно означает, что дешевое чтение из кеша не сработало для повторно используемого префикса. Дорогим становится не слово "miss", а то, что входной контекст был снова обработан, снова записан в prompt cache или совпал только частично. Выходные токены при этом остаются обычной отдельной частью стоимости.

На 24 мая 2026 года формула Anthropic объясняет популярное "12.5x" без мистики: 5-минутная cache write стоит 1.25x базового input, а cache read стоит 0.1x для тех же токенов. 1.25 / 0.1 = 12.5. Это сравнение записи и чтения, а не официальная отдельная доплата за cache miss.

Перед тем как менять процесс, назовите маршрут, который породил число: подписка Claude, API key, оценка Agent SDK, Bedrock, Vertex, Foundry или gateway. Затем сравните cache_creation_input_tokens, cache_read_input_tokens, модель, список MCP, команды вроде /compact, версию Claude Code и биллинговую поверхность именно этого маршрута. Без такого набора данных легко перепутать нормальную инвалидацию кеша с багом.

Быстрый разбор: сначала маршрут, потом кеш

ВопросКороткий ответКакие доказательства нужны
Cache miss - это отдельная плата?Нет. Это означает, что префикс не был дешево прочитан из кеша и был обработан или записан снова.Поля cache creation и cache read в одном маршруте.
Почему говорят о 12.5x?5-minute write стоит 1.25x, read стоит 0.1x, поэтому для того же объема 1.25 / 0.1 = 12.5.Актуальная страница цен Anthropic и usage-поля.
Что проверить первым?Владельца маршрута: подписка, API key, SDK, облачный провайдер или gateway./status, /cost, Claude Console, Usage and Cost API, invoice провайдера.
Когда spike выглядит подозрительно?Когда похожие turn подряд создают много кеша и почти не читают его при стабильной модели, MCP и маршруте.Временные метки, модель, версия, MCP-список, поля usage.
Что не делать первым?Не запускать /compact вслепую и не менять provider до диагностики.Сначала назвать действие, которое изменило префикс.

Если главный вопрос - какой счетчик вообще активен, используйте карту Claude Code API key против подписочного биллинга. Если проблема шире и связана с тяжелыми MCP definitions или раздуванием контекста, полезнее путь Claude Code MCP context overload. Cache miss объясняет входную экономику одного turn, но не заменяет расследование лимитов, подписки или provider-инвойса.

12.5x - это математика write/read

Страница цен Claude API разделяет обычные input-токены, cache write, cache read и output. Текущая публичная логика такова: 5-минутная запись в кеш стоит 1.25x от базового input, 1-часовая запись стоит 2x, чтение из кеша стоит 0.1x.

text
5-minute cache write / cache read = 1.25 / 0.1 = 12.5 1-hour cache write / cache read = 2.0 / 0.1 = 20

Эта формула полезна только при одном условии: сравнивается один и тот же объем префикса, но в одном случае он записывается, а в другом читается. Она не доказывает, что в Claude Code есть отдельная строка "cache miss fee". Она также не доказывает баг. Новая сессия, смена модели, подключение MCP, долгое ожидание, upgrade Claude Code или компактирование разговора могут привести к ожидаемой новой записи.

Практический риск растет вместе с размером префикса. Большая история разговора, project context, результаты инструментов, MCP server definitions, subagent context, большие file packs или длинный system prompt превращают один промах в заметную сумму. Малый miss может быть шумом; повторная высокая cache creation на похожих turn - уже диагностический сигнал.

Реестр токенов: общий total не отвечает на вопрос

Реестр cache creation и cache read токенов Claude Code

Не анализируйте дорогой turn только по total tokens. Total показывает масштаб, но не объясняет причину. Нужно разложить запись по классам.

СчетчикЧто означаетКак использовать
Обычные input tokensВход, который был обработан моделью без дешевого read.Базовая стоимость при отсутствии кеша или частичном совпадении.
cache_creation_input_tokensТокены, записанные или подготовленные для prompt cache.Один высокий write может быть нормальным; повторный высокий write - сигнал.
cache_read_input_tokensТокены, прочитанные из существующего cache entry.Высокий read относительно creation обычно означает, что кеш работает.
Output tokensСгенерированный ответ модели.Экономия на входе не делает output бесплатным.
Subscription usageОкна плана, seat usage, reset и лимиты подписки.Нельзя напрямую сравнивать с API invoice.
/cost и поля SDKЛокальные или клиентские оценки.Хороши для трендов, слабее официального биллинга.
Console, Usage and Cost API, invoice провайдераАвторитетная поверхность для своего маршрута.Используется для итогового spend proof и support packet.

Документация Agent SDK cost tracking описывает total_cost_usd и costUSD как оценки. Это не делает их бесполезными: они помогают ловить runaway-сессии и сравнивать похожие turn. Но если нужен финансовый вывод, сверяйтесь с Claude Console, Usage and Cost API или провайдерским invoice.

Когда маршрут неясен, сначала выполните минимальную проверку:

bash
claude /status /cost

/status помогает понять активный аккаунт или route. /cost может помочь при API-style monitoring, но окончательное доказательство принадлежит тому маршруту, где выполнялся запрос.

Что ломает совпадение кеша в Claude Code

Матрица invalidators для модели MCP compact и смены маршрута

Документация Claude Code prompt caching опирается на prefix matching. Если ранняя часть запроса изменилась, все последующее может перестать совпадать, даже если пользовательский текст выглядит похожим. Поэтому важен не только размер контекста, но и последнее действие перед дорогим turn.

Недавнее действиеРискСледующая проверка
Смена моделиВысокийСравните model и timestamp до и после spike.
Подключение или отключение MCP serverВысокийTool definitions могут менять ранний префикс.
Deny целого инструментаВысокийWhole-tool denial меняет доступный tool context.
/compactВысокийCompact переписывает conversation context и может разорвать reuse.
Upgrade Claude CodeВысокийВерсия может изменить prompt shape или cache scope.
Смена API route, provider или gatewayВысокийМеняется и cache scope, и владелец биллинга.
Долгий idle gapСреднийTTL мог истечь до следующего read.
Subagents, forks, worktrees, directory changesСреднийКонтекст может разделиться по пути, процессу или agent scope.
Изменение файловНижеДобавляет контекст, но не всегда меняет ранний prefix.
Output style или permission modeНижеВсе равно стоит записать, если совпадает по времени.
/recap или rewindНижеПолезно для навигации, но поля usage нужно проверить.

Консервативная интерпретация лучше поспешного вывода. Cache write после осмысленного изменения может быть ожидаемым. Повторный write при том же route, той же модели, том же MCP setup, коротком интервале и похожем контексте - более сильный признак проблемы.

Маршруты и доказательства: один workflow, разные контракты

Число на экране может относиться к разным поверхностям. Подписка, API key, SDK estimate, cloud provider и gateway могут показывать usage или cost, но это разные юридические и технические контракты.

МаршрутЧто может означать числоБолее сильное доказательство
Claude subscription loginUsage плана, seat limits, reset timing, included usage.Help Center usage language, account status, /status, plan messages.
Claude API keyPay-as-you-go API token billing.Claude Console, Usage and Cost API, project billing settings.
Agent SDKUsage и cost estimate из SDK messages.SDK fields плюс Console или Usage and Cost API.
Bedrock, Vertex, FoundryProvider-routed model use, provider billing, cache-support boundary.Cloud invoice и request logs этого provider.
GatewayGateway usage и pass-through поведение к upstream provider.Gateway logs плюс upstream billing, если доступен.

Claude Code costs и Help Center usage article важны именно потому, что отделяют subscription usage от API billing. Не используйте subscription limit message как доказательство API spend. Не используйте SDK estimate как доказательство списания по подписке.

Если реальный симптом - окно лимита, переходите к Claude Code rate limit или Claude Code rate limit reached. Cache math объясняет входную часть потребления, но не является полным playbook для восстановления quota.

Порядок исправлений: минимальное изменение и следующий замер

Лестница исправлений Claude Code cache miss и пакет доказательств

Дорогой turn не требует сразу менять весь workflow. Работайте с одним фактором за раз.

  1. Назовите маршрут. Подписка, API key, SDK estimate, provider route или gateway.
  2. Сравните поля кеша. Несколько похожих turn должны показать отношение cache_creation_input_tokens к cache_read_input_tokens.
  3. Найдите invalidator. Модель, MCP, whole-tool denial, /compact, upgrade, provider, TTL, subagent, fork, worktree или directory scope.
  4. Стабилизируйте ранний prefix. Не меняйте модель и MCP setup посреди одной задачи без причины.
  5. Разделяйте несвязанные задачи через /clear. Смешанный контекст делает prefix большим и нестабильным.
  6. Используйте /compact на естественных границах. Это инструмент для слишком большого разговора, а не первая реакция на один spike.
  7. Оценивайте 1-hour TTL по cadence. Более длинный TTL дороже при записи и окупается только будущими read.
  8. Проверьте следующий похожий turn. После удачного исправления repeated creation падает, а cache read растет при той же модели и route.

Если одновременно сменить модель, отключить MCP, выполнить compact и перейти на другой gateway, результат невозможно интерпретировать. Снижение cost будет реальным, но вы не узнаете, какой фактор сработал.

Пакет для подозрительного spike

Фраза "у меня cache bug" слабее набора данных. Для коллеги, FinOps или support engineer важна возможность сравнить один маршрут, одну временную линию и похожую форму контекста.

ДоказательствоЗачем нужно
Timestamp и timezoneСводит usage records и invoices.
Версия Claude CodeUpgrade может менять prompt shape.
ModelСмена модели - известный invalidator.
Active routeПодписка, API key, SDK, provider и gateway не смешиваются.
MCP server list до и послеConnect/disconnect меняет ранний prefix.
Tool permission changesWhole-tool denial меняет tool context.
/compact, /clear, /recap, rewind historyConversation-shape actions влияют на интерпретацию.
cache_creation_input_tokens и cache_read_input_tokensГлавное доказательство write/read.
Пара похожих hit/miss turnСравнение сильнее одиночного скриншота.
Billing surfaceConsole, Usage and Cost API, provider invoice или subscription usage.

Один cache write после изменения контекста - не повод для эскалации. Повторная высокая creation при стабильном route, model, MCP setup, коротком интервале и похожем контексте - уже повод собрать support packet.

Часто задаваемые вопросы

Cache miss в Claude Code - это отдельная плата?

Нет. Это лучше описывать как дорогую сторону prompt caching: повторно используемый префикс не был дешево прочитан, а был обработан или записан снова. Ищите token class, а не отдельную строку штрафа.

Откуда берется 12.5x?

Из текущих множителей Anthropic: 5-minute cache write стоит 1.25x базового input, а cache read стоит 0.1x. Для того же объема токенов 1.25 / 0.1 = 12.5.

Какие поля доказывают cache miss?

Начинайте с cache_creation_input_tokens и cache_read_input_tokens. Высокая creation и низкий read означают, что префикс не был переиспользован дешево. Повторение на похожих turn гораздо важнее одной записи.

Поможет ли /compact снизить расходы?

Иногда да, но не как универсальный cache fix. /compact может уменьшить слишком большой conversation, но он также переписывает контекст и способен сломать существующий reuse.

Когда нужен 1-hour TTL?

Только если маршрут поддерживает его и последующие read действительно окупят более дорогую запись. Более длинный TTL помогает при подходящем cadence, а не сам по себе.

/cost - это мой счет Claude?

Нет. /cost и SDK cost fields полезны для monitoring, но финальное доказательство - Claude Console, Usage and Cost API, cloud invoice, gateway records или subscription usage surface активного маршрута.

Когда можно подозревать баг кеша?

После same-route evidence: timestamp, version, model, route, MCP setup, permission changes, cache fields, похожие hit/miss turn и billing surface. До этого вероятнее обычная инвалидация или TTL expiry.

Поделиться:

laozhang.ai

Один API, все модели ИИ

AI Изображения

Gemini 3 Pro Image

$0.05/изобр.
-80%
AI Видео

Sora 2 · Veo 3.1

$0.15/видео
Async API
AI Чат

GPT · Claude · Gemini

200+ моделей
Офиц. цена
Обслужено 100K+ разработчиков
|@laozhang_cn|$0.1 бонус