docs.x.ai/developers/advanced-api-usage/prompt-caching) и основана на практическом тестировании grok-4.6 на шлюзе APIYI 2026-08-19 (124 вызова, сверено построчно с внутренними записями тарификации backend).
В одном предложении
Если начальная часть (префикс) вашего запроса совпадает с недавним запросом байт в байт, вышестоящая система пропускает лишнюю работу: совпавшая часть тарифицируется по 0.25×. Без параметров, без маркеров. Чем это отличается от двух других:- vs Claude: никаких маркеров
cache_control— это просто происходит, когда условия выполнены - vs OpenAI: столь же автоматически и столь же свободно в использовании, но Grok не дает вам управления маршрутизацией в стиле
prompt_cache_key
Зачем это нужно — посмотрите на коэффициенты
Если принять базовую цену input token модели за 1×:
Точка безубыточности: второй запрос. Платы за запись, которую нужно амортизировать, нет, поэтому в первый раз, когда префикс используется повторно, вся ваша экономия — это чистая выгода.
В долларах для
grok-4.6 (за 1 млн tokens, для обоих уровней контекстного окна):
Пороговые значения уровней и ставки чтения из кэша для других моделей Grok приведены в таблице ступенчатого ценообразования в обзоре Grok.
Хорошо подходит
- Один длинный system prompt плюс определения tools, вызываемые снова и снова (agents, support bots)
- Пакетная обработка одного документа (50 вопросов к одному контракту)
- RAG, где стабильные фрагменты документа находятся в начале prompt
- Многоходовые диалоги — но учтите, что в Grok два способа сделать это ведут себя очень по-разному (см. ниже)
Плохо подходит
- Запросы, которые каждый раз отличаются уже с самого первого символа
- prompts ниже диапазона в тысячу tokens — в тестировании многократный вызов такого запроса так и не сформировал повторно используемый кэш
Оба эндпоинта, с потоковой передачей и без неё, всё сверено
/v1/chat/completions и /v1/responses, как с потоковой передачей, так и без неё: мы сверили все четыре комбинации с записями тарификации backend на 2026-08-19, и закэшированная часть в каждом случае была тарифицирована по ставке кэша:
Для шлюза не требуется адаптация на стороне клиента. Поведение кэша передаётся в upstream,
cached_tokens возвращается дословно, а счёт backend указывает закэшированную часть отдельной позицией «чтение кэша».Условия для попадания
Попадания округляются вниз до 128 tokens
cached_tokens обычно немного меньше вашего стабильного префикса — это ожидаемо.
Только добавление: изменение истории ломает это
Тот же префикс, отправленный подряд, с одним измененным вызовом:
Что это означает на практике: сначала стабильное содержимое, затем изменчивое.
Минимальный запускаемый пример
Отправьте один и тот же длинный префикс дважды с разными вопросами: первый записывает кэш, второй попадает в него.cached близко к длине system prompt (округлено вниз до 128), и эта часть тарифицируется по 0.25×.
Эндпоинт
/v1/responses автоматически работает так же; поле — usage.input_tokens_details.cached_tokens. Длинные разговоры получают дополнительное преимущество на этом эндпоинте — см. ниже “Длинные разговоры относятся к цепочке responses”.Как отличить попадание от промаха — смотрите поле usage
Как это читать: малые значения — это не попадания
Не просто проверяйте «больше нуля». Сравнивайтеcached_tokens со стабильной длиной префикса:
При тестировании даже холодный первый вызов иногда возвращает значение в сто или двести. Не обманывайтесь — это не значит, что ваш префикс был закэширован.
Сверка: подробность тарификации кэша в консоли
Внутренний лог для одного вызова перечисляет количество token для cached-read и его множитель скидки отдельной строкой, которую вы можете сопоставить сcached_tokens в ответе. Когда вам нужно точно знать, как был тарифицирован один вызов, это и есть авторитетный источник.
Трехшаговая самопроверка:
- Создайте стабильный префикс длиной более тысячи token и отправьте два запроса подряд
- Во втором ответе
cached_tokensдолжно быть явно в тысячах - В бэкенд журналах вызовов этот запрос показывает строку «чтение из кэша» и заметно более низкую стоимость входных данных, чем у первого
Улучшение процента попаданий
Сформируйте стабильный префикс
- Длинные инструкции, few-shot-примеры и определения tools идут первыми; ввод пользователя и метки времени — последними
- Сохраняйте порядок определений tools и сериализацию JSON неизменными (не позволяйте сериализатору перемешивать ключи)
- Входные изображения тоже участвуют в сопоставлении префикса — при повторном использовании сохраняйте base64 / URL и параметры идентичными
- Используйте один и тот же префикс в короткой серии запросов, а не растягивайте обращения во времени
Длинные диалоги лучше вести в цепочке Responses
Это легко упустить как различие в Grok:
Поэтому для длинных диалогов и многошаговых агентов предпочитайте цепочку Responses API:
О x-grok-conv-id
Лучшие практики xAI рекомендуют отправлять заголовок x-grok-conv-id (UUID или ID сеанса) в каждом запросе, чтобы повысить процент попаданий. Мы провели симметричный A/B на APIYI — несколько независимых префиксов с заголовком и без него, по несколько повторных использований каждого — и не увидели заметной разницы между двумя группами. Отправлять его не вредно, но не рассчитывайте на него для повышения процента попаданий.
Процент попаданий и чего ожидать
И ещё один момент, который стоит сказать прямо: ценность кэширования — в стоимости, а не в скорости. Измеренное время до первого token отличалось всего на несколько сотен миллисекунд между попаданиями и промахами — не ожидайте, что кэширование сделает запросы с большим context window быстрыми.Частые подводные камни
Краткое сравнение с другими каналами
Чтобы узнать о поддержке кэширования на всей платформе, см. FAQ по тарификации кэша.
Все на этой странице было измерено на
grok-4.6 (2026-08-19). xAI утверждает, что все языковые модели Grok поддерживают кэширование префикса; мы не проводили бенчмарки остальных по отдельности, поэтому воспринимайте такие детали, как дискретность блоков и поведение при коротких prompt, как то, что нужно подтверждать на вашей собственной нагрузке.Если тарификация, которую вы видите для данного префикса, явно расходится с тем, что описано здесь, обратитесь в поддержку, указав request-id из заголовков ответа.Краткое резюме
1. Полностью автоматически
Никаких маркеров, никакой платы за запись. Выполните условия, и это будет кэшироваться; повторное использование во второй раз — это чистая экономия.
2. Только добавление
Сопоставление выполняется побайтно с начала сообщений; изменение истории делает его недействительным, а попадания округляются вниз до 128 tokens.
3. Связывайте длинные разговоры
Многоходовой чат повторно использует только исходный статический префикс; responses + previous_response_id увеличивает попадания с каждым ходом.
4. Не рассчитывайте на попадания
Попадания не гарантированы. Планируйте бюджет по цене без кэша и воспринимайте скидку как бонус.
Связанные ссылки
- Та же группа: Обзор Grok · Чат и рассуждение · Веб-поиск и поиск в X · Выполнение кода и MCP
- Кэширование на других каналах: Тарификация кэша OpenAI · Тарификация кэша Gemini · Тарификация кэша Claude
- Обзор для всей платформы: FAQ по тарификации кэша
- Получить или управлять token:
https://api.apiyi.com/token - Официальная документация xAI:
docs.x.ai/developers/advanced-api-usage/prompt-caching