Кэширование промптов: как считаются чтение и запись кэша в Zukko

Из чего складывается счёт, когда работает кэш промптов: свежий вход, чтение, запись и выход. Формула и два расчёта на текущих ценах.

7 мин · · экономия · разработка

Если вы запускаете агента по большому проекту или держите бота с длинной инструкцией, основная часть счёта приходится на вход: одни и те же тысячи токенов уходят модели при каждом запросе. Кэширование промптов снижает стоимость этого входа, но считается оно по своим правилам. Ниже — как Zukko тарифицирует чтение и запись кэша, формула и два расчёта на ценах от 6 октября 2026 года.

Что такое кэш промптов и из чего складывается счёт

Модель читает запрос с начала. Если начало запроса (префикс) — системный промпт, описания инструментов, ранняя часть диалога — совпадает с недавним запросом, провайдер не обрабатывает его заново, а берёт из кэша. Поэтому входные токены в счёте делятся на три группы:

  • свежий вход — токены после закэшированного префикса, по обычной цене входа;
  • запись кэша — префикс, который сохраняется впервые; у Claude запись стоит дороже обычного входа;
  • чтение кэша — префикс, взятый из кэша; у Claude это около десятой части цены входа.

Выход оплачивается как обычно. В Zukko у каждой модели своя цена чтения кэша, а запись отдельно списывается только у Claude в Anthropic-формате — это видно в таблице ниже и на странице «Модели» в кабинете.

Формула: стоимость кэширования промптов

стоимость = (свежий вход × цена входа + чтение кэша × цена чтения + запись кэша × цена записи + выход × цена выхода) / 1 000 000

Цены — в долларах за 1 млн токенов. Текущие значения для моделей, которые чаще всего берут под кэш:

МодельВходЧтение кэшаЗапись кэшаВыход
claude-sonnet-50.20.0250.251.013
claude-opus-5-50.40.0380.4252
gpt-6.1-sol0.270.013—1.32
gemini-3.8-flash0.0250.013—0.088
deepseek-v4.1-flash0.0130.013—0.038

У GPT, Gemini и DeepSeek запись в кэш отдельно не списывается: первый запрос целиком идёт по цене входа. Из таблицы видно главное. У Claude разница между входом и чтением большая, и кэш сильно меняет счёт. У DeepSeek V4.1 Flash вход и чтение кэша стоят одинаково, поэтому кэш на стоимость не влияет. У Gemini 3.8 Flash чтение стоит $0.013 против $0.025 за вход — если поставщик сообщает о чтении кэша в ответе. Набор и цены меняются: актуальный список — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете.

Расчёт 1: сессия агента на Claude Sonnet 5

Возьмём итоговые счётчики сессии агента: 200 000 токенов прочитано из кэша, 5 000 токенов свежего входа, 10 000 токенов записано в кэш, 3 000 токенов выхода.

  • чтение кэша: 200 000 × 0.025 / 1 000 000 = $0.005
  • свежий вход: 5 000 × 0.2 / 1 000 000 = $0.001
  • запись кэша: 10 000 × 0.25 / 1 000 000 = $0.0025
  • выход: 3 000 × 1.013 / 1 000 000 = $0.003039

Итого: $0.011539, примерно 1,2 цента.

Без кэша те же 215 000 входных токенов идут по цене входа: 215 000 × 0.2 / 1 000 000 = $0.043, плюс выход $0.003039 — всего $0.046039.

Тот же объём на claude-opus-5-5: 200 000 × 0.038 + 5 000 × 0.4 + 10 000 × 0.425 + 3 000 × 2 = 7 600 + 2 000 + 4 250 + 6 000 = 19 850, делим на миллион — $0.01985. Без кэша: (215 000 × 0.4 + 3 000 × 2) / 1 000 000 = $0.092.

Расчёт 2: бот с длинной инструкцией

Системный промпт на 20 000 токенов, 100 запросов подряд, каждый добавляет 500 токенов вопроса и получает 300 токенов ответа. Первый запрос записывает инструкцию в кэш, остальные 99 читают её.

  • запись: 20 000 × 0.25 / 1 000 000 = $0.005
  • чтение: 99 × 20 000 = 1 980 000 × 0.025 / 1 000 000 = $0.0495
  • свежий вход: 100 × 500 = 50 000 × 0.2 / 1 000 000 = $0.01
  • выход: 100 × 300 = 30 000 × 1.013 / 1 000 000 = $0.03039

Итого: $0.09489. Без кэша: 100 × 20 500 = 2 050 000 × 0.2 / 1 000 000 = $0.41, плюс выход $0.03039 — $0.44039.

Условие одно: запросы должны идти достаточно часто. По документации Anthropic кэш живёт 5 минут по умолчанию, и каждое чтение продлевает этот срок. Если бот получает один вопрос в час, кэш каждый раз успевает истечь, и инструкция будет записываться заново.

Когда запись кэша не окупается

У Claude Sonnet 5 запись стоит $0.25 против $0.2 за обычный вход. Префикс, который записали и ни разу не прочитали, обходится на $0.05 за миллион токенов дороже, чем без кэша. Одно чтение экономит 0.2 − 0.025 = $0.175 за миллион, поэтому запись окупается с первого же попадания.

На примере инструкции в 20 000 токенов: один запрос с записью — $0.005 против $0.004 без кэша; два запроса — 0.005 + 0.0005 = $0.0055 против $0.008.

Ещё два ограничения из документации Anthropic:

  • минимальная длина кэшируемого префикса — 1 024 токена для Claude Sonnet 5 и 512 токенов для Claude Opus 5.5; более короткий промпт идёт без кэша;
  • кэш срабатывает только на полностью совпадающем префиксе. Поменяли слово в системном промпте, набор инструментов или порядок сообщений в начале — получите новую запись вместо чтения.

Отсюда практическое правило: всё постоянное (инструкция, инструменты, справочные документы) ставьте в начало запроса, всё меняющееся — в конец.

Где кэш учитывается, а где нет

  • Claude — скидку за кэш даёт Anthropic-формат: POST /v1/messages, Claude Code, Anthropic SDK. Там шлюз видит, сколько входа пришло из кэша. В OpenAI-формате (/v1/chat/completions) для Claude весь вход идёт по цене входа. Подробнее о выборе — в документации про формат провайдера.
  • GPT — кэш виден в обоих форматах, в OpenAI-формате — в поле usage.prompt_tokens_details.cached_tokens. Шлюз видит только чтение: запись отдельно не списывается, первый запрос целиком идёт по цене входа. По документации OpenAI для моделей GPT-5.6 и новее кэш включается сам, если префикс не короче 1 024 токенов.
  • DeepSeek, Gemini, Qwen, GLM — чтение кэша учитывается, если поставщик сообщает его в ответе; записи нет.

Как один и тот же Claude-запрос тарифицируется в двух форматах — в статье о кэше в Messages и Chat Completions.

Claude Code расставляет метки кэша сам, ничего настраивать не нужно — достаточно подключить его по инструкции для Claude Code. В своём коде на Anthropic SDK метку ставят вручную через cache_control:

bash
import anthropic

PRICES = {"input": 0.2, "cache_read": 0.025, "cache_write": 0.25, "output": 1.013}  # claude-sonnet-5

client = anthropic.Anthropic(base_url="https://api.zukko.pro", api_key="fetch_ваш_ключ")

long_instructions = open("instructions.md", encoding="utf-8").read()

resp = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": long_instructions,

В формате Anthropic поле input_tokens — это только свежий вход после последней метки кэша; полный вход = input_tokens + cache_read_input_tokens + cache_creation_input_tokens. Обратите внимание: base URL здесь без /v1, SDK добавляет путь сам.

Как проверить по факту

  1. Отправьте один и тот же длинный запрос дважды с интервалом меньше пяти минут. В первом ответе должна быть запись кэша, во втором — чтение.
  2. У обычного (не потокового) ответа Zukko есть заголовок X-Zukko-Cost-Micros — стоимость запроса в микродолларах (1 000 000 = $1). Сравните его со своей формулой.
  3. Итог по дням и моделям смотрите в кабинете, в разделе «Использование».

Не путайте кэш промптов с кэшем одинаковых ответов через заголовок X-Zukko-Cache: это отдельный механизм Zukko, он отдаёт повтор полностью совпадающего запроса бесплатно. Как он работает — в статье про X-Zukko-Cache.

Чтобы проверить расчёты на своих запросах, создайте ключ на странице API-ключей и прогоните пару тестов из примера выше.

Частые вопросы

Нужно ли включать кэш в Claude Code?

Нет. Claude Code сам помечает постоянную часть контекста. Важно только, чтобы он был подключён в Anthropic-формате: ANTHROPIC_BASE_URL=https://api.zukko.pro и ключ в ANTHROPIC_AUTH_TOKEN.

Почему в Cursor не видно скидки за кэш на Claude?

Cursor подключается к Zukko через OpenAI-формат, а в /v1/chat/completions для Claude весь вход идёт по цене входа. Если кэш важен, используйте Claude-модели через инструменты с Anthropic-форматом.

Влияет ли кэш на цену DeepSeek V4.1 Flash?

Нет. У этой модели в Zukko вход и чтение кэша стоят одинаково — $0.013 за миллион токенов, а запись отдельно не списывается.

Можно ли заранее узнать, сколько токенов попадёт в кэш?

Точно — нет, это решает провайдер. Можно посчитать длину префикса через POST /v1/messages/count_tokens и убедиться, что она выше минимального порога модели.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.