Prompt Caching в 2026: как реально экономить на повторяющемся контексте
Prompt caching в 2026: OpenAI in-memory/24h retention, Anthropic 5m/1h cache writes, Gemini implicit/explicit context caching, hit rate, TTL и economics.
Prompt caching в 2026 уже нельзя описывать одной фразой вроде “API сам всё закэширует и счёт упадёт на 90%”. Реальная картина сложнее: у OpenAI кэширование автоматическое и живёт в режиме in_memory или 24h, у Anthropic есть явные и автоматические cache breakpoints с 5m и 1h, а у Gemini нужно различать implicit и explicit context caching.
Практическая ценность у всех одна и та же: не платить заново за длинный стабильный префикс:
system / policy prompt;
tool definitions;
few-shot examples;
длинные документы;
стабильный conversation prefix.
Prompt caching не кэширует готовый ответ модели. Он кэширует уже обработанный префикс промпта, чтобы на следующем запросе не пересчитывать те же токены заново. Это ближе к “повторно использовать уже прочитанные инструкции”, а не к обычному HTTP cache.
Не смешивайте три разные вещи:
prompt/context caching у провайдера;
response cache на вашей стороне;
semantic cache, который отвечает похожие вопросы без вызова модели.
Это разные уровни архитектуры. Prompt caching ускоряет и удешевляет повторяющийся вход, но не заменяет response caching и не убирает сам вызов LLM.
exact prefix, prompt_cache_key, in_memory или 24h, cached tokens считаются в rate limits
Anthropic
top-level auto или block-level explicit
5m / 1h, up to 4 breakpoints, cache hits не тратят rate limits
Gemini
implicit auto + explicit cache objects
explicit TTL, отдельная storage fee, хорошо для длинных документов и media-context
Без техники
Каждый запрос заново шлёт 8K policy/tool/doc prefix. Модель каждый раз пересчитывает одно и то же, latency плавает, input bill растёт линейно.
С техникой
Стабильный префикс вынесен в cacheable слой. Повторные запросы платят только за новый хвост, TTFT падает, а input economics резко улучшается.
ПромптCacheability check
У нас support-agent. В каждый запрос летят policy, definitions tools, два long examples и свежий вопрос пользователя. Что кэшировать?
Ответ модели
Кэшировать нужно policy, tool definitions и long examples как стабильный prefix. Вопрос пользователя и свежие tool results должны оставаться в динамическом хвосте.
Во всех трёх экосистемах ключевая идея одна: кэшируется не “готовый ответ”, а уже обработанный prefix state модели. Поэтому prompt caching работает только когда запросы имеют одинаковое начало.
Из этого следуют два production-правила:
всё стабильное должно стоять в начале;
всё динамическое должно быть в конце.
Если вы вставляете в system prompt текущую дату, random ID или user-specific block выше стабильного контекста, вы почти наверняка убиваете hit rate.
У OpenAI prompt caching работает автоматически на recent models, gpt-4o и новее. Официальный guide прямо говорит:
кэш активируется на промптах 1024+ токенов;
hit возможен только для exact prefix matches;
можно передавать prompt_cache_key, чтобы улучшать routing;
default retention policy — in_memory;
для части моделей доступен 24h extended retention;
usage возвращает cached_tokens.
Практически это означает:
если у вас длинный стабильный developer/system prefix, код можно вообще не менять и всё равно получить cached input economics;
если у вас high-volume endpoint с несколькими крупными prefix families, prompt_cache_key помогает не смешивать их;
cached tokens не освобождают вас от rate limits: docs OpenAI отдельно пишут, что caching rate limits не меняет.
OpenAI разделяет in_memory и 24h retention. in_memory обычно живёт 5-10 минут без активности, иногда до часа. 24h доступен не на всех моделях, но для supported GPT-5 / GPT-4.1 workflows это уже важный operational knob, особенно если повторяющийся prefix живёт дольше короткой интерактивной сессии.
У Anthropic картина теперь более богатая, чем в старых гайдах:
есть automatic caching на top-level cache_control;
есть explicit breakpoints на отдельных блоках;
default TTL — 5 minutes;
можно выбрать 1 hour;
поддерживается до 4 breakpoints;
cache hit стоит 0.1x base input price;
5m cache write стоит 1.25x;
1h cache write стоит 2x.
Особенно важны нюансы, которые легко упустить:
кэшируется полный prefix в порядке tools -> system -> messages;
lookback window ограничен 20 блоками;
cache hit становится возможен только после того, как первый запрос начал возвращать ответ;
cache hits не вычитаются из rate limits.
Именно поэтому Anthropic удобно использовать там, где:
длинный policy / tool layer живёт долго;
growing conversation требует контролировать breakpoint position;
нужна предсказуемая cache economics, а не “может сработать, а может нет”.
Без техники
{
"title": "Плохо",
"content": "Breakpoint стоит на блоке с timestamp и user message. Каждый запрос пишет новый cache entry, но почти никогда не читает старый."
}
С техникой
{
"title": "Лучше",
"content": "Breakpoint стоит на последнем стабильном system/tool/example block. Новый user-specific suffix идёт после него, и повторные запросы получают реальный cache read."
}
Если вы не видите usage-поля, prompt caching у вас пока не production feature, а надежда.
Минимальный набор метрик:
cache hit rate;
cached input tokens;
cache writes vs cache reads;
TTFT / latency при hit и miss;
hit rate по endpoint / workflow;
net savings after write/storage costs.
Особенно важно смотреть метрики по отдельным prompt families. Средний hit rate по всей системе почти всегда скрывает проблему: один endpoint работает отлично, другой никогда не попадает в cache.
У нас quality нормальный, но support endpoint дорогой. В каждый запрос уходят long policy, 12 tool definitions и одна и та же product doc. Что проверить сначала?
Ответ модели
Есть ли стабильный prefix длиннее provider threshold.
Не попадают ли дата, user profile или retrieval выше стабильного префикса.
Какой фактический hit rate по endpoint.
Не выгоднее ли Anthropic explicit breakpoints или Gemini explicit cache object.
Не нужен ли для OpenAI prompt_cache_key и другая retention policy.