Модели Claude поддерживают кэширование промптов в двух режимах: автоматическое (одна строка конфигурации) и явное (точечная разметка кэшируемых блоков). В обоих случаях чтение из кэша обходится в 10 раз дешевле обычных входных токенов.
Добавьте cache_control на верхнем уровне запроса — система автоматически закэширует всё содержимое до последнего кэшируемого блока:
{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "cache_control": {"type": "ephemeral"}, "system": "Длинный системный промпт...", "messages": [...] }
При последующих запросах с тем же началом кэшированная часть будет прочитана из кэша.
Для точного контроля разместите cache_control на конкретных блоках содержимого:
{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "system": [ { "type": "text", "text": "Длинный системный промпт...", "cache_control": {"type": "ephemeral"} } ], "messages": [...] }
Этот режим полезен, когда нужно закэшировать определённые части запроса — например, системный промпт, но не историю диалога.
В отличие от OpenAI и Google, у Anthropic запись в кэш платная:
| Операция | Множитель от базовой цены ввода |
|---|---|
| Запись в кэш | 1.25× |
| Чтение из кэша | 0.1× |
Кэширование окупается уже после одного повторного запроса.
Минимальная длина кэшируемого содержимого зависит от модели:
| Модели | Мин. длина |
|---|---|
| Claude Opus 4.5, Opus 4.6 | 4 096 токенов |
| Claude Sonnet 4, Sonnet 4.1, Sonnet 4.5, Sonnet 4.6 | 1 024 токена |
| Claude Haiku 4.5 | 1 024 токена |
По умолчанию — 5 минут. Каждое попадание в кэш продлевает таймер без дополнительной оплаты.
В ответе API возвращаются два поля:
{ "usage": { "input_tokens": 50, "cache_creation_input_tokens": 5000, "cache_read_input_tokens": 0 } }
cache_creation_input_tokens— токены, записанные в кэш (оплачиваются по повышенной ставке)cache_read_input_tokens— токены, прочитанные из кэша (скидка 90%)
При повторном запросе cache_creation_input_tokens станет 0, а cache_read_input_tokens покажет количество кэшированных токенов.
curl "https://api.proxyapi.ru/anthropic/v1/messages" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <КЛЮЧ>" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "claude-sonnet-4-6", "max_tokens": 1024, "cache_control": {"type": "ephemeral"}, "system": "Длинный системный промпт (более 1024 токенов)...", "messages": [ { "role": "user", "content": "Вопрос пользователя" } ] }'
Anthropic кэширует содержимое запроса в определённом порядке: tools → system → messages. Изменение на любом уровне инвалидирует кэш этого уровня и всех последующих. Например, изменение описания инструментов сбросит кэш инструментов, системного промпта и сообщений.