Как prompt caching снижает расходы на LLM на 81%

Каждый раз, когда ИИ-агент делает шаг, он отправляет всю историю разговора обратно в LLM. Системный промпт, описания инструментов, контекст проекта - все это перечитывается, пересчитывается и повторно тарифицируется на каждом ходе.

Системный промпт на 20 000 токенов за 50 ходов - это миллион токенов избыточных вычислений, которые не приносят никакой пользы. И эта стоимость растет с каждым пользователем и каждой сессией.

Решение - prompt caching. Но чтобы использовать его эффективно, нужно понимать, как он устроен внутри.

Статический vs динамический контекст

Каждый запрос агента состоит из двух принципиально разных частей. Первая - статический префикс, который остается одинаковым от хода к ходу: системные инструкции, описания инструментов, контекст проекта, поведенческие правила. Вторая - динамический суффикс, который растет с каждым ходом: сообщения пользователя, ответы ассистента, результаты работы инструментов.

Именно это разделение делает prompt caching возможным. Инфраструктура сохраняет математическое состояние статической части и переиспользует его при каждом следующем запросе.

Как работает KV Cache

При каждом запросе к LLM есть две фазы. Фаза prefill обрабатывает весь входной промпт, выполняя матричные умножения по всем слоям трансформера. Фаза decode генерирует токены по одному.

Во время prefill трансформер вычисляет три вектора для каждого токена: Query, Key и Value. Без кеширования эти тензоры Key и Value выбрасываются после каждого запроса, и следующий запрос пересчитывает их заново.

KV cache сохраняет эти тензоры на серверах инференса, индексируя их по хешу последовательности токенов. Это снижает вычислительную сложность с O(n²) до O(n) на каждый сгенерированный токен.

Экономика кеширования

Чтение из кеша стоит 0.1x от базовой цены входных токенов - скидка 90% на каждый кешированный токен. Запись в кеш стоит 1.25x, но эта наценка окупается уже на втором запросе.

Claude Code построен вокруг одной цели - держать кеш горячим. В реальной 30-минутной сессии кодинга: без кеширования 2 миллиона токенов обошлись бы в $6. С кешем реальная стоимость составила $1.14. Это 92% cache hit rate и 81% экономии.

Хрупкость хеш-кеширования

Самое контринтуитивное в prompt caching: инфраструктура хеширует полную последовательность токенов с самого начала. Если хоть что-то в этой последовательности изменилось - весь кеш невалиден.

В продакшене кеш ломали: таймстамп в системном промпте (уникальный хеш на каждом запросе), JSON-сериализатор, который сортировал ключи по-разному между запросами, обновление параметров инструмента в середине сессии.

Три правила: не модифицируйте инструменты во время сессии, не переключайте модели в середине сессии, не мутируйте префикс для обновления состояния.

Как применить к своим агентам

Структурируйте промпты в таком порядке: системные инструкции и правила поведения наверху (не меняйте их в середине сессии), все описания инструментов загружаются сразу, затем извлеченный контекст и справочные документы (стабильные на всю сессию), и в самом низу - история разговора и результаты работы инструментов.

Для мониторинга кеширования следите за тремя полями в каждом ответе API: cache_creation_input_tokens, cache_read_input_tokens и input_tokens.

Prompt caching - это не фича, которую просто включаешь. Это архитектурная дисциплина, вокруг которой нужно проектировать всю систему.

11