Как проверить prompt cache в Claude API
Создайте стабильный длинный prefix, сравните cache_creation_input_tokens и cache_read_input_tokens и найдите потерю cache evidence в Claude API-реле.
Краткий ответ
Отправьте два запроса с полностью одинаковым кешируемым длинным prefix. Первый должен показать cache_creation_input_tokens, второй — cache_read_input_tokens. Более быстрый ответ сам по себе не доказывает hit: сохраняйте usage fields.
Основные выводы
- В первом запросе проверяйте создание кеша, во втором — чтение.
- Кешируемый prefix должен быть идентичен до байта.
- Главное доказательство — usage fields, а не только latency.
- Реле может удалить или переписать нативные Anthropic fields.
Что повторно использует Claude prompt cache
Prompt cache повторно использует стабильный prefix: system prompt, tool definitions, длинные документы или историю диалога. Hit может снизить стоимость повторной обработки контекста и улучшить TTFT.
Цель теста — увидеть прямое usage evidence. Сеть, очередь и длина output также меняют latency, поэтому одного ускорения недостаточно.
Какие поля проверять
SDK могут менять naming, поэтому сохраняйте исходный Anthropic usage object.
| Поле | Значение | Ожидаемое изменение |
|---|---|---|
| input_tokens | Обычный input вне cache read | Обычно уменьшается после hit |
| cache_creation_input_tokens | Tokens, записанные в cache | Больше нуля в первом запросе |
| cache_read_input_tokens | Tokens, прочитанные из cache | Больше нуля во втором запросе |
| output_tokens | Сгенерированный output | Не является прямым cache evidence |
Как построить пару запросов
Подготовьте prefix достаточной длины и примените поддерживаемый cache_control к нужному content block. Не меняйте model, system, tools и document prefix; измените только короткий финальный вопрос.
- Request A создает cache; сохраните usage и TTFT.
- Быстро отправьте request B с тем же prefix.
- Убедитесь, что cache_read_input_tokens в B больше нуля.
- Сравните creation tokens A и read tokens B.
- Измените один символ prefix в request C и проверьте miss.
Почему второй запрос не попал в кеш
Причины: неподдерживаемая модель, слишком короткий prefix, неправильный cache_control, разница в пробелах или JSON order, expiration, смена аккаунта или региона.
В реле проверьте, не переводит ли оно Anthropic protocol в OpenAI format и не удаляет ли cache fields.
Как трактовать latency и стоимость
Разделяйте TTFT, end-to-end latency и usage. Даже при hit output generation и upstream queue могут определять общее время.
Считайте ordinary input, cache write, cache read и output по официальной цене на дату теста.
Повторная проверка перед production
Используйте реальные system prompts, tools и document templates. Измеряйте hit rate в разные периоды. Для реле проверьте поведение после смены account pool и восстановления от 429.
Частые вопросы
cache_read_input_tokens = 0 означает, что Claude не поддерживает кеш?
Не обязательно. Prefix может быть коротким, cache_control — неверным, cache — истекшим, а реле могло удалить поле.
Более быстрый второй запрос доказывает cache hit?
Нет. Сеть и очередь тоже меняют latency. Основное доказательство — cache_read_input_tokens и другие usage fields.
Можно ли проверить prompt cache через Claude-реле?
Да, если реле сохраняет cache_control и usage fields Anthropic. Отсутствие полей — риск protocol compatibility.
Читайте также
Запустите проверку реального API
Используйте временный key для проверки связности, задержки, кеша, лимитов, чистоты модели и token cost.