Skip to main content
Если вы запускаете агентов, многоходовые чаты или пакетные задания на документах в серии gpt-5, кэширование промптов снижает тарификацию за кэшированную часть ваших входных данных до 10% от обычной цены — и для этого не требуется никаких изменений кода; кэширование полностью автоматическое. Эта страница основана на официальной документации OpenAI (developers.openai.com/api/docs/guides/prompt-caching, по состоянию на июнь 2026 года), с примерами, адаптированными для APIYI.

Версия в одном предложении

Если начальный сегмент (префикс) запроса точно совпадает с недавним запросом и его длина составляет не менее 1024 token, сервер не выполняет его повторную обработку: совпавшая часть тарифицируется по 0.1×, а задержка снижается до 80%. Два главных отличия от кэширования Claude:
  • Нет маркеров: нет cache_control — кэширование включается автоматически, когда условия выполнены
  • Нет платы за запись: Claude взимает 1.25× / 2× за запись; OpenAI записывает бесплатно

Зачем это нужно — коэффициенты тарифа

Если базовая цена входного token модели равна : Точка безубыточности: 2-й запрос. Поскольку нет стоимости записи, которую нужно амортизировать, каждое повторное использование префикса — это чистая экономия; проще, чем у Claude, где вы заранее платите 1.25× и для выхода в ноль нужны два повторных использования. По текущим ценам APIYI (за 1M tokens):

Хорошо подходит

  • Длинный system prompt + определения tools, используемые повторно между вызовами (агенты, боты поддержки)
  • Многоходовые диалоги (каждый новый ход автоматически дает попадание в кэш по всей предыдущей истории)
  • Пакетная обработка одного документа (например, 50 вопросов об одном контракте)
  • RAG со стабильными фрагментами документа, размещенными в начале prompt

Плохо подходит

  • Запросы, которые отличаются уже с первого символа
  • Prompts меньше 1024 tokens всего (ниже порога кэширования)

Три жестких условия для попадания в кэш

Все три обязательны.

1. Префикс длиной не менее 1024 tokens

Запросы короче 1024 tokens никогда не кэшируются (ошибки нет — просто это незаметно не применяется). После 1024 попадания в кэш расширяются с шагом в 128-token: совпавшая длина попадает на такие ступени, как 1024, 1152, 1280 …, поэтому cached_tokens обычно отображается немного ниже вашего полного стабильного префикса. Это нормально.

2. Идентичный префикс побайтно

Кэширование — это сопоставление префикса: сравнение начинается с первого символа и останавливается на первом различии. Любое изменение — метка времени, имя пользователя, порядок ключей JSON — делает все, что идет после него, тарифицируемым по полной стоимости. Практическое правило: сначала стабильное содержимое, в конце изменчивое.

3. Повторное использование в течение окна хранения

  • Базовый срок хранения: удаляется после 5–10 минут простоя, максимум через 1 hour
  • С 29 мая 2026 года (UTC), gpt-5.1 и более поздние модели (включая варианты Pro) по умолчанию используют 24-часовое расширенное хранение (prompt_cache_retention: "24h") для организаций без ZDR, без дополнительной оплаты — повторное использование в тот же день практически всегда дает попадание в кэш

Минимальный рабочий пример

Отправьте один и тот же длинный префикс дважды с разными вопросами — первая запись выполняется автоматически, вторая дает попадание в кэш:
Ожидаемый вывод:
У 2-го вызова cached длина близка к длине системного prompt (округлено до 128) — эта часть тарифицируется по 10%.
Эндпоинт /v1/responses тоже автоматически кэшируется; поле — usage.input_tokens_details.cached_tokens. Внутреннее тестирование OpenAI показывает, что использование кэша в Responses на 40%–80% выше, чем в Chat Completions — для многоходовых агентов используйте Native Calls.

Попало? Смотрите поля использования

cached_tokens > 0 означает, что вы экономите: эта часть тарифицируется по 0.1×, а оставшиеся prompt_tokens - cached_tokens тарифицируются по полной цене.

Продвинутый уровень: повышение коэффициента попаданий

маршрутизация prompt_cache_key

Для попадания запрос должен попасть на ту же машину кэша. По умолчанию маршрутизация по префиксу с хешированием обычно достаточно, но когда многие пользователи используют похожие префиксы или высока параллельность запросов, явный prompt_cache_key заметно повышает коэффициент попаданий:
Как только одна комбинация «prefix + prompt_cache_key» превышает примерно 15 запросов/минуту, трафик начинает распределяться на другие машины, и коэффициент попаданий снижается. При высокой параллельности разделяйте ключи по пользователям или сессиям — не используйте один глобальный ключ.

Формирование стабильного префикса

  • Сохраняйте порядок определения tools и сериализацию JSON неизменными (не позволяйте сериализатору случайно менять порядок ключей)
  • Входные изображения тоже участвуют в сопоставлении префикса — при повторном использовании сохраняйте одинаковыми URL / base64 и detail parameter
  • Чтобы варьировать доступные tools для разных сценариев, используйте allowed_tools, чтобы ограничить подмножество, вместо редактирования списка tools — первый вариант не ломает префикс кэша

Многоходовые чаты попадают в кэш автоматически

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

Распространенные подводные камни

OpenAI и Claude: кэширование в кратком обзоре

Для полного руководства по стороне Claude см. Руководство по тарификации кэша Claude.

APIYI и кэширование

Канал APIYI OpenAI поддерживает попадания в кэш. Запросы пересылаются наверх без изменений, поле cached_tokens возвращается вам без изменений, а панель тарификации показывает совпавшую часть отдельной строкой «cache read» по официальной ставке 0.1× — в вашем коде не требуется никакой адаптации под middleware.
Самопроверка:
  1. Сформируйте стабильный префикс длиной не менее 1024 tokens и отправьте 2 запроса подряд
  2. Во 2-м ответе должно отображаться cached_tokens > 0
  3. В журналах вызовов входная стоимость 2-го запроса должна быть заметно ниже, чем у 1-го

Ключевые выводы

1. Полностью автоматически

Без маркеров, без платы за запись — кэширование применяется автоматически, а 2-е использование дает чистую экономию.

2. Достаточно длинный

Для начала кэширования требуется минимум 1024 tokens префикса; попадания учитываются шагами по 128 tokens.

3. Стабильный префикс

Сначала стабильное содержимое, затем изменчивое; не включайте временные метки и случайные ID в начало.

4. Следите за использованием

Только cached_tokens > 0 подтверждает попадание в кэш — за эту часть тарификация составляет 10%.

Связанные ссылки