Loading...
    • Руководство разработчика
    • Справочник API
    • MCP
    • Ресурсы
    • Примечания к выпуску
    Search...
    ⌘K
    Первые шаги
    Введение в ClaudeБыстрый старт
    Модели и цены
    Обзор моделейВыбор моделиЧто нового в Claude 4.5Миграция на Claude 4.5Устаревшие моделиЦены
    Разработка с Claude
    Обзор функцийИспользование Messages APIКонтекстные окнаЛучшие практики промптинга
    Возможности
    Кэширование промптовРедактирование контекстаРасширенное мышлениеУсилиеПотоковая передача сообщенийПакетная обработкаЦитированияМногоязычная поддержкаПодсчет токеновEmbeddingsЗрениеПоддержка PDFFiles APIРезультаты поискаСтруктурированные выходные данныеДополнение Google Sheets
    Инструменты
    ОбзорКак реализовать использование инструментовЭффективное использование инструментов по токенамПотоковая передача инструментов с детализациейИнструмент BashИнструмент выполнения кодаПрограммное вызывание инструментовИнструмент компьютерного управленияИнструмент текстового редактораИнструмент веб-выборкиИнструмент веб-поискаИнструмент памятиИнструмент поиска инструментов
    Навыки агента
    ОбзорБыстрый стартЛучшие практикиИспользование навыков с API
    Agent SDK
    ОбзорTypeScript SDKPython SDKРуководство по миграции
    Руководства
    Потоковый вводОбработка разрешенийУправление сеансомСтруктурированные выходные данные в SDKРазмещение Agent SDKИзменение системных промптовMCP в SDKПользовательские инструментыПодагенты в SDKКосые команды в SDKНавыки агента в SDKОтслеживание затрат и использованияСписки задачПлагины в SDK
    MCP в API
    MCP коннекторУдаленные MCP серверы
    Claude на платформах третьих сторон
    Amazon BedrockMicrosoft FoundryVertex AI
    Инженерия промптов
    ОбзорГенератор промптовИспользование шаблонов промптовУлучшитель промптовБудьте ясны и прямолинейныИспользуйте примеры (многошаговый промптинг)Дайте Claude подумать (CoT)Используйте XML тегиДайте Claude роль (системные промпты)Предзаполните ответ ClaudeЦепочка сложных промптовСоветы по длинному контекстуСоветы по расширенному мышлению
    Тестирование и оценка
    Определение критериев успехаРазработка тестовых случаевИспользование инструмента оценкиСнижение задержки
    Усиление защиты
    Снижение галлюцинацийУвеличение согласованности выходных данныхСмягчение взломовПотоковые отказыСнижение утечки промптовДержите Claude в образе
    Администрирование и мониторинг
    Обзор Admin APIAPI использования и затратClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Возможности

    Кэширование подсказок

    Кэширование подсказок — это мощная функция, которая оптимизирует использование API, позволяя возобновлять работу с определённых префиксов в ваших подсказках.

    Кэширование подсказок — это мощная функция, которая оптимизирует использование API, позволяя возобновлять работу с определённых префиксов в ваших подсказках. Этот подход значительно сокращает время обработки и затраты на повторяющиеся задачи или подсказки с согласованными элементами.

    Вот пример того, как реализовать кэширование подсказок с помощью Messages API, используя блок cache_control:

    • Как работает кэширование подсказок
    • Ценообразование
    • Как реализовать кэширование подсказок
    • Как работает кэширование подсказок
    • Ценообразование
    • Как реализовать кэширование подсказок
    • Поддерживаемые модели
    • Как работает кэширование подсказок
    • Цены
    • Как реализовать кэширование подсказок
    • Поддерживаемые модели
    • Структурирование вашей подсказки
    • Ограничения кэша
    • Понимание затрат на точки разрыва кэша
    • Что может быть кэшировано
    • Что не может быть кэшировано
    • Что делает кэш недействительным
    • Отслеживание производительности кэша
    • Лучшие практики для эффективного кэширования
    • Оптимизация для различных вариантов использования
    • Устранение неполадок с распространёнными проблемами
    • Кэширование с блоками мышления
    • Хранилище кэша и совместное использование
    • Длительность кэша в 1 час
    • Когда использовать кэш на 1 час
    • Смешивание различных TTL
    • Примеры кэширования подсказок
    • Часто задаваемые вопросы
    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    В этом примере весь текст «Гордости и предубеждения» кэшируется с помощью параметра cache_control. Это позволяет повторно использовать этот большой текст в нескольких вызовах API без его переобработки каждый раз. Изменение только пользовательского сообщения позволяет вам задавать различные вопросы о книге, используя кэшированное содержимое, что приводит к более быстрым ответам и повышенной эффективности.


    Как работает кэширование подсказок

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

    1. Система проверяет, кэширован ли уже префикс подсказки до указанной точки разрыва кэша из недавнего запроса.
    2. Если он найден, используется кэшированная версия, что снижает время обработки и затраты.
    3. В противном случае система обрабатывает полную подсказку и кэширует префикс после начала ответа.

    Это особенно полезно для:

    • Подсказок с множеством примеров
    • Больших объёмов контекста или справочной информации
    • Повторяющихся задач с постоянными инструкциями
    • Длительных многооборотных разговоров

    По умолчанию кэш имеет время жизни 5 минут. Кэш обновляется без дополнительных затрат каждый раз при использовании кэшированного содержимого.

    Если вы считаете, что 5 минут — это слишком мало, Anthropic также предлагает кэш на 1 час за дополнительную плату.

    Для получения дополнительной информации см. кэш на 1 час.

    Кэширование подсказок кэширует полный префикс

    Кэширование подсказок ссылается на всю подсказку — tools, system и messages (в таком порядке) вплоть до и включая блок, обозначенный с помощью cache_control.


    Ценообразование

    Кэширование подсказок вводит новую структуру ценообразования. В таблице ниже показана цена за миллион токенов для каждой поддерживаемой модели:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    Таблица выше отражает следующие множители ценообразования для кэширования подсказок:

    • Токены записи в кэш на 5 минут стоят в 1,25 раза больше, чем цена базовых входных токенов
    • Токены записи в кэш на 1 час стоят в 2 раза больше, чем цена базовых входных токенов
    • Токены чтения из кэша стоят в 0,1 раза больше, чем цена базовых входных токенов

    Как реализовать кэширование подсказок

    Кэширование подсказок — это мощная функция, которая оптимизирует использование API, позволяя возобновлять работу с определённых префиксов в ваших подсказках. Этот подход значительно снижает время обработки и затраты на повторяющиеся задачи или подсказки с постоянными элементами.

    Вот пример того, как реализовать кэширование подсказок с помощью Messages API, используя блок cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    В этом примере весь текст «Гордости и предубеждения» кэшируется с помощью параметра cache_control. Это позволяет повторно использовать этот большой текст в нескольких вызовах API без повторной обработки каждый раз. Изменение только пользовательского сообщения позволяет вам задавать различные вопросы о книге, используя кэшированное содержимое, что приводит к более быстрым ответам и повышенной эффективности.


    Как работает кэширование подсказок

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

    1. Система проверяет, кэширован ли уже префикс подсказки до указанной точки разрыва кэша из недавнего запроса.
    2. Если он найден, используется кэшированная версия, что снижает время обработки и затраты.
    3. В противном случае система обрабатывает полную подсказку и кэширует префикс после начала ответа.

    Это особенно полезно для:

    • Подсказок с множеством примеров
    • Больших объёмов контекста или справочной информации
    • Повторяющихся задач с постоянными инструкциями
    • Длительных многооборотных разговоров

    По умолчанию кэш имеет время жизни 5 минут. Кэш обновляется без дополнительных затрат каждый раз при использовании кэшированного содержимого.

    Если вы считаете, что 5 минут — это слишком мало, Anthropic также предлагает кэш на 1 час за дополнительную плату.

    Для получения дополнительной информации см. кэш на 1 час.

    Кэширование подсказок кэширует полный префикс

    Кэширование подсказок ссылается на всю подсказку — tools, system и messages (в таком порядке) вплоть до и включая блок, обозначенный с помощью cache_control.


    Ценообразование

    Кэширование подсказок вводит новую структуру ценообразования. В таблице ниже показана цена за миллион токенов для каждой поддерживаемой модели:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    Таблица выше отражает следующие множители ценообразования для кэширования подсказок:

    • Токены записи в кэш на 5 минут стоят в 1,25 раза больше, чем цена базовых входных токенов
    • Токены записи в кэш на 1 час стоят в 2 раза больше, чем цена базовых входных токенов
    • Токены чтения из кэша стоят в 0,1 раза больше, чем цена базовых входных токенов

    Как реализовать кэширование подсказок

    Поддерживаемые модели

    Кэширование подсказок в настоящее время поддерживается на:

    • Claude Opus 4.5
    • Claude Opus 4.1
    • Claude Opus 4
    • Claude Sonnet 4.5
    • Claude Sonnet 4
    • Claude Sonnet 3.7
    • Claude Haiku 4.5
    • Claude Haiku 3.5
    • Claude Haiku 3
    • Claude Opus 3 (устарела)

    Кэширование подсказок — это мощная функция, которая оптимизирует использование вашего API, позволяя возобновлять работу с определённых префиксов в ваших подсказках. Этот подход значительно сокращает время обработки и затраты на повторяющиеся задачи или подсказки с согласованными элементами.

    Вот пример того, как реализовать кэширование подсказок с помощью Messages API, используя блок cache_control:

    curl https://api.anthropic.com/v1/messages \
      -H "content-type: application/json" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -d '{
        "model": "claude-sonnet-4-5",
        "max_tokens": 1024,
        "system": [
          {
            "type": "text",
            "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
          },
          {
            "type": "text",
            "text": "<the entire contents of Pride and Prejudice>",
            "cache_control": {"type": "ephemeral"}
          }
        ],
        "messages": [
          {
            "role": "user",
            "content": "Analyze the major themes in Pride and Prejudice."
          }
        ]
      }'
    
    # Call the model again with the same inputs up to the cache checkpoint
    curl https://api.anthropic.com/v1/messages # rest of input
    JSON
    {"cache_creation_input_tokens":188086,"cache_read_input_tokens":0,"input_tokens":21,"output_tokens":393}
    {"cache_creation_input_tokens":0,"cache_read_input_tokens":188086,"input_tokens":21,"output_tokens":393}

    В этом примере весь текст «Pride and Prejudice» кэшируется с помощью параметра cache_control. Это позволяет повторно использовать этот большой текст в нескольких вызовах API без его переобработки каждый раз. Изменение только пользовательского сообщения позволяет вам задавать различные вопросы о книге, используя кэшированное содержимое, что приводит к более быстрым ответам и повышенной эффективности.


    Как работает кэширование подсказок

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

    1. Система проверяет, кэширован ли уже префикс подсказки до указанной точки разрыва кэша из недавнего запроса.
    2. Если найдено, она использует кэшированную версию, сокращая время обработки и затраты.
    3. В противном случае она обрабатывает полную подсказку и кэширует префикс после начала ответа.

    Это особенно полезно для:

    • Подсказок со множеством примеров
    • Больших объёмов контекста или справочной информации
    • Повторяющихся задач с согласованными инструкциями
    • Длительных многооборотных диалогов

    По умолчанию кэш имеет время жизни 5 минут. Кэш обновляется без дополнительных затрат каждый раз при использовании кэшированного содержимого.

    Если 5 минут слишком мало, Anthropic также предлагает длительность кэша в 1 час за дополнительную плату.

    Для получения дополнительной информации см. Длительность кэша в 1 час.

    Кэширование подсказок кэширует полный префикс

    Кэширование подсказок ссылается на всю подсказку — tools, system и messages (в этом порядке) вплоть до и включая блок, обозначенный с помощью cache_control.


    Цены

    Кэширование подсказок вводит новую структуру цен. В таблице ниже показана цена за миллион токенов для каждой поддерживаемой модели:

    ModelBase Input Tokens5m Cache Writes1h Cache WritesCache Hits & RefreshesOutput Tokens
    Claude Opus 4.5$5 / MTok$6.25 / MTok$10 / MTok$0.50 / MTok$25 / MTok
    Claude Opus 4.1$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Opus 4$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Sonnet 4.5$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 4$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Sonnet 3.7 (deprecated)$3 / MTok$3.75 / MTok$6 / MTok$0.30 / MTok$15 / MTok
    Claude Haiku 4.5$1 / MTok$1.25 / MTok$2 / MTok$0.10 / MTok$5 / MTok
    Claude Haiku 3.5$0.80 / MTok$1 / MTok$1.6 / MTok$0.08 / MTok$4 / MTok
    Claude Opus 3 (deprecated)$15 / MTok$18.75 / MTok$30 / MTok$1.50 / MTok$75 / MTok
    Claude Haiku 3$0.25 / MTok$0.30 / MTok$0.50 / MTok$0.03 / MTok$1.25 / MTok

    Таблица выше отражает следующие множители цен для кэширования подсказок:

    • Токены записи в кэш на 5 минут в 1,25 раза дороже базовой цены входных токенов
    • Токены записи в кэш на 1 час в 2 раза дороже базовой цены входных токенов
    • Токены чтения из кэша составляют 0,1 от базовой цены входных токенов

    Как реализовать кэширование подсказок

    Поддерживаемые модели

    Кэширование подсказок в настоящее время поддерживается на:

    • Claude Opus 4.5
    • Claude Opus 4.1
    • Claude Opus 4
    • Claude Sonnet 4.5
    • Claude Sonnet 4
    • Claude Sonnet 3.7
    • Claude Haiku 4.5
    • Claude Haiku 3.5
    • Claude Haiku 3
    • Claude Opus 3 (устарела)

    Структурирование вашей подсказки

    Поместите статическое содержимое (определения инструментов, системные инструкции, контекст, примеры) в начало вашей подсказки. Отметьте конец повторно используемого содержимого для кэширования с помощью параметра cache_control.

    Префиксы кэша создаются в следующем порядке: tools, system, затем messages. Этот порядок образует иерархию, где каждый уровень строится на предыдущих.

    Как работает автоматическая проверка префикса

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

    Три основных принципа:

    1. Ключи кэша являются кумулятивными: Когда вы явно кэшируете блок с помощью cache_control, ключ хэша кэша генерируется путём хеширования всех предыдущих блоков в диалоге последовательно. Это означает, что кэш для каждого блока зависит от всего содержимого, которое ему предшествует.

    2. Обратная последовательная проверка: Система проверяет попадания в кэш, работая в обратном направлении от вашей явной точки разрыва, проверяя каждый предыдущий блок в обратном порядке. Это гарантирует, что вы получите самое длинное возможное попадание в кэш.

    3. Окно обратного просмотра в 20 блоков: Система проверяет только до 20 блоков перед каждой явной точкой разрыва cache_control. После проверки 20 блоков без совпадения она прекращает проверку и переходит к следующей явной точке разрыва (если она есть).

    Пример: Понимание окна обратного просмотра

    Рассмотрим диалог с 30 блоками содержимого, где вы устанавливаете cache_control только на блоке 30:

    • Если вы отправляете блок 31 без изменений предыдущих блоков: Система проверяет блок 30 (совпадение!). Вы получаете попадание в кэш на блоке 30, и только блок 31 требует обработки.

    • Если вы изменяете блок 25 и отправляете блок 31: Система проверяет в обратном направлении от блока 30 → 29 → 28... → 25 (нет совпадения) → 24 (совпадение!). Поскольку блок 24 не изменился, вы получаете попадание в кэш на блоке 24, и только блоки 25-30 требуют переобработки.

    • Если вы изменяете блок 5 и отправляете блок 31: Система проверяет в обратном направлении от блока 30 → 29 → 28... → 11 (проверка #20). После 20 проверок без нахождения совпадения она прекращает поиск. Поскольку блок 5 находится за пределами окна в 20 блоков, попадания в кэш не происходит и все блоки требуют переобработки. Однако, если бы вы установили явную точку разрыва cache_control на блоке 5, система продолжила бы проверку с этой точки разрыва: блок 5 (нет совпадения) → блок 4 (совпадение!). Это позволяет получить попадание в кэш на блоке 4, демонстрируя, почему вы должны размещать точки разрыва перед редактируемым содержимым.

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

    Когда использовать несколько точек разрыва

    Вы можете определить до 4 точек разрыва кэша, если вы хотите:

    • Кэшировать различные разделы, которые изменяются с разной частотой (например, инструменты редко изменяются, но контекст обновляется ежедневно)
    • Иметь больше контроля над тем, что именно кэшируется
    • Обеспечить кэширование содержимого более чем на 20 блоков перед вашей точкой разрыва кэша
    • Размещать точки разрыва перед редактируемым содержимым, чтобы гарантировать попадания в кэш даже при изменениях за пределами окна в 20 блоков

    Важное ограничение: Если ваша подсказка имеет более 20 блоков содержимого перед вашей точкой разрыва кэша, и вы изменяете содержимое ранее, чем эти 20 блоков, вы не получите попадание в кэш, если не добавите дополнительные явные точки разрыва ближе к этому содержимому.

    Ограничения кэша

    Минимальная длина кэшируемой подсказки составляет:

    • 4096 токенов для Claude Opus 4.5
    • 1024 токенов для Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4, Claude Sonnet 3.7 (устарела) и Claude Opus 3 (устарела)
    • 4096 токенов для Claude Haiku 4.5
    • 2048 токенов для Claude Haiku 3.5 и Claude Haiku 3

    Более короткие подсказки не могут быть кэшированы, даже если отмечены с помощью cache_control. Любые запросы на кэширование меньшего количества токенов будут обработаны без кэширования. Чтобы узнать, была ли подсказка кэширована, см. поля использования ответа fields.

    Для одновременных запросов обратите внимание, что запись в кэш становится доступной только после начала первого ответа. Если вам нужны попадания в кэш для параллельных запросов, дождитесь первого ответа перед отправкой последующих запросов.

    В настоящее время «ephemeral» — единственный поддерживаемый тип кэша, который по умолчанию имеет время жизни 5 минут.

    Понимание затрат на точки разрыва кэша

    Сами точки разрыва кэша не добавляют никаких затрат. Вы платите только за:

    • Записи в кэш: Когда новое содержимое записывается в кэш (на 25% больше, чем базовые входные токены для TTL 5 минут)
    • Чтения из кэша: Когда используется кэшированное содержимое (10% от базовой цены входных токенов)
    • Обычные входные токены: Для любого некэшированного содержимого

    Добавление большего количества точек разрыва cache_control не увеличивает ваши затраты — вы по-прежнему платите одинаковую сумму в зависимости от того, какое содержимое фактически кэшируется и читается. Точки разрыва просто дают вам контроль над тем, какие разделы могут быть кэшированы независимо.

    Что может быть кэшировано

    Большинство блоков в запросе могут быть обозначены для кэширования с помощью cache_control. Это включает:

    • Инструменты: Определения инструментов в массиве tools
    • Системные сообщения: Блоки содержимого в массиве system
    • Текстовые сообщения: Блоки содержимого в массиве messages.content как для пользовательских, так и для ассистентских ходов
    • Изображения и документы: Блоки содержимого в массиве messages.content в пользовательских ходах
    • Использование инструментов и результаты инструментов: Блоки содержимого в массиве messages.content как для пользовательских, так и для ассистентских ходов

    Каждый из этих элементов может быть отмечен с помощью cache_control для включения кэширования для этой части запроса.

    Что не может быть кэшировано

    Хотя большинство блоков запроса могут быть кэшированы, есть некоторые исключения:

    • Блоки мышления не могут быть кэшированы напрямую с помощью cache_control. Однако блоки мышления МОГУТ быть кэшированы вместе с другим содержимым, когда они появляются в предыдущих ассистентских ходах. При кэшировании таким образом они СЧИТАЮТСЯ входными токенами при чтении из кэша.

    • Подблоки содержимого (такие как цитаты) сами по себе не могут быть кэшированы напрямую. Вместо этого кэшируйте блок верхнего уровня.

      В случае цитат блоки содержимого документа верхнего уровня, которые служат исходным материалом для цитат, могут быть кэшированы. Это позволяет вам эффективно использовать кэширование подсказок с цитатами, кэшируя документы, на которые будут ссылаться цитаты.

    • Пустые текстовые блоки не могут быть кэшированы.

    Что делает кэш недействительным

    Изменения кэшированного содержимого могут сделать недействительным часть или весь кэш.

    Как описано в Структурирование вашей подсказки, кэш следует иерархии: tools → system → messages. Изменения на каждом уровне делают недействительным этот уровень и все последующие уровни.

    В таблице ниже показано, какие части кэша делаются недействительными различными типами изменений. ✘ указывает, что кэш делается недействительным, а ✓ указывает, что кэш остаётся действительным.

    Что изменяетсяКэш инструментовКэш системыКэш сообщенийВлияние
    Определения инструментов✘✘✘Изменение определений инструментов (имена, описания, параметры) делает недействительным весь кэш
    Переключатель веб-поиска✓✘✘Включение/отключение веб-поиска изменяет системную подсказку
    Переключатель цитат✓✘✘Включение/отключение цитат изменяет системную подсказку
    Выбор инструмента✓✓✘Изменения параметра tool_choice влияют только на блоки сообщений
    Изображения✓✓✘Добавление/удаление изображений в любом месте подсказки влияет на блоки сообщений
    Параметры мышления✓✓✘Изменения параметров расширенного мышления (включение/отключение, бюджет) влияют на блоки сообщений
    Результаты, не связанные с инструментами, переданные в запросы расширенного мышления✓✓✘Когда результаты, не связанные с инструментами, передаются в запросы при включённом расширенном мышлении, все ранее кэшированные блоки мышления удаляются из контекста, и любые сообщения в контексте, которые следуют за этими блоками мышления, удаляются из кэша. Для получения дополнительной информации см. Кэширование с блоками мышления.

    Отслеживание производительности кэша

    Отслеживайте производительность кэша, используя эти поля ответа API, в usage в ответе (или событие message_start если потоковая передача):

    • cache_creation_input_tokens: Количество токенов, записанных в кэш при создании новой записи.
    • cache_read_input_tokens: Количество токенов, полученных из кэша для этого запроса.
    • input_tokens: Количество входных токенов, которые не были прочитаны из кэша или использованы для создания кэша (т.е. токены после последней точки разрыва кэша).

    Понимание разбивки токенов

    Поле input_tokens представляет только токены, которые идут после последней точки разрыва кэша в вашем запросе — не все входные токены, которые вы отправили.

    Для расчёта общего количества входных токенов:

    total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens

    Пространственное объяснение:

    • cache_read_input_tokens = токены перед точкой разрыва уже кэшированы (чтения)
    • cache_creation_input_tokens = токены перед точкой разрыва кэшируются сейчас (записи)
    • input_tokens = токены после вашей последней точки разрыва (не подходят для кэша)

    Пример: Если у вас есть запрос с 100 000 токенов кэшированного содержимого (прочитано из кэша), 0 токенов нового содержимого, кэшируемого, и 50 токенов в вашем пользовательском сообщении (после точки разрыва кэша):

    • cache_read_input_tokens: 100 000
    • cache_creation_input_tokens: 0
    • input_tokens: 50
    • Всего обработано входных токенов: 100 050 токенов

    Это важно для понимания как затрат, так и ограничений скорости, поскольку input_tokens обычно будет намного меньше, чем ваш общий ввод при эффективном использовании кэширования.

    Лучшие практики для эффективного кэширования

    Для оптимизации производительности кэширования подсказок:

    • Кэшируйте стабильное, повторно используемое содержимое, такое как системные инструкции, справочная информация, большие контексты или частые определения инструментов.
    • Поместите кэшированное содержимое в начало подсказки для лучшей производительности.
    • Используйте точки разрыва кэша стратегически, чтобы разделить различные кэшируемые разделы префикса.
    • Устанавливайте точки разрыва кэша в конце диалогов и непосредственно перед редактируемым содержимым, чтобы максимизировать частоту попаданий в кэш, особенно при работе с подсказками, которые имеют более 20 блоков содержимого.
    • Регулярно анализируйте частоту попаданий в кэш и при необходимости корректируйте вашу стратегию.

    Оптимизация для различных вариантов использования

    Адаптируйте вашу стратегию кэширования подсказок к вашему сценарию:

    • Агенты диалога: Снизьте затраты и задержку для расширенных диалогов, особенно тех, которые содержат длинные инструкции или загруженные документы.
    • Помощники по кодированию: Улучшите автодополнение и вопросы и ответы по кодовой базе, сохраняя соответствующие разделы или сводную версию кодовой базы в подсказке.
    • Обработка больших документов: Включите полный долгоформатный материал, включая изображения, в вашу подсказку без увеличения задержки ответа.
    • Подробные наборы инструкций: Поделитесь обширными списками инструкций, процедур и примеров, чтобы точно настроить ответы Claude. Разработчики часто включают один или два примера в подсказку, но с кэшированием подсказок вы можете получить ещё лучшую производительность, включив 20+ разнообразных примеров высокого качества ответов.
    • Использование инструментов агентом: Улучшите производительность для сценариев, включающих несколько вызовов инструментов и итеративные изменения кода, где каждый шаг обычно требует нового вызова API.
    • Общение с книгами, статьями, документацией, транскриптами подкастов и другим долгоформатным содержимым: Оживите любую базу знаний, встроив весь документ(ы) в подсказку и позволив пользователям задавать ему вопросы.

    Устранение неполадок с распространёнными проблемами

    Если вы испытываете неожиданное поведение:

    • Убедитесь, что кэшированные разделы идентичны и отмечены с помощью cache_control в одних и тех же местах в разных вызовах
    • Проверьте, что вызовы выполняются в течение времени жизни кэша (5 минут по умолчанию)
    • Убедитесь, что tool_choice и использование изображений остаются согласованными между вызовами
    • Проверьте, что вы кэшируете по крайней мере минимальное количество токенов
    • Система автоматически проверяет попадания в кэш на границах предыдущих блоков содержимого (до ~20 блоков перед вашей точкой разрыва). Для подсказок с более чем 20 блоками содержимого вам может потребоваться дополнительные параметры cache_control ранее в подсказке, чтобы гарантировать, что всё содержимое может быть кэшировано
    • Убедитесь, что ключи в ваших блоках содержимого tool_use имеют стабильный порядок, так как некоторые языки (например Swift, Go) рандомизируют порядок ключей при преобразовании JSON, нарушая кэши

    Изменения в tool_choice или наличие/отсутствие изображений в любом месте подсказки сделают кэш недействительным, требуя создания новой записи в кэше. Для получения дополнительной информации об инвалидации кэша см. Что делает кэш недействительным.

    Кэширование с блоками мышления

    При использовании расширенного мышления с кэшированием подсказок блоки мышления имеют специальное поведение:

    Автоматическое кэширование вместе с другим содержимым: Хотя блоки мышления не могут быть явно отмечены с помощью cache_control, они кэшируются как часть содержимого запроса при последующих вызовах API с результатами инструментов. Это обычно происходит при использовании инструментов, когда вы передаёте блоки мышления обратно, чтобы продолжить диалог.

    Подсчёт входных токенов: Когда блоки мышления читаются из кэша, они считаются входными токенами в ваших метриках использования. Это важно для расчёта затрат и бюджетирования токенов.

    Паттерны инвалидации кэша:

    • Кэш остаётся действительным, когда в качестве пользовательских сообщений предоставляются только результаты инструментов
    • Кэш становится недействительным, когда добавляется содержимое пользовательского сообщения, не связанное с инструментами, вызывая удаление всех предыдущих блоков мышления
    • Это поведение кэширования происходит даже без явных маркеров cache_control

    Для получения дополнительной информации об инвалидации кэша см. Что делает кэш недействительным.

    Пример с использованием инструментов:

    Request 1: User: "What's the weather in Paris?"
    Response: [thinking_block_1] + [tool_use block 1]
    
    Request 2:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True]
    Response: [thinking_block_2] + [text block 2]
    # Request 2 caches its request content (not the response)
    # The cache includes: user message, thinking_block_1, tool_use block 1, and tool_result_1
    
    Request 3:
    User: ["What's the weather in Paris?"],
    Assistant: [thinking_block_1] + [tool_use block 1],
    User: [tool_result_1, cache=True],
    Assistant: [thinking_block_2] + [text block 2],
    User: [Text response, cache=True]
    # Non-tool-result user block causes all thinking blocks to be ignored
    # This request is processed as if thinking blocks were never present

    Когда включается блок пользовательского сообщения, не связанный с инструментами, он обозначает новый цикл ассистента и все предыдущие блоки мышления удаляются из контекста.

    Для получения более подробной информации см. документацию по расширенному мышлению.


    Хранилище кэша и совместное использование

    • Изоляция организации: Кэши изолированы между организациями. Различные организации никогда не делят кэши, даже если они используют идентичные подсказки.

    • Точное совпадение: Попадания в кэш требуют 100% идентичных сегментов подсказки, включая весь текст и изображения вплоть до и включая блок, отмеченный с помощью управления кэшем.

    • Генерация выходных токенов: Кэширование подсказок не влияет на генерацию выходных токенов. Ответ, который вы получите, будет идентичен тому, что вы получили бы, если бы кэширование подсказок не использовалось.


    Длительность кэша в 1 час

    Если 5 минут слишком мало, Anthropic также предлагает длительность кэша в 1 час за дополнительную плату.

    Чтобы использовать расширенный кэш, включите ttl в определение cache_control следующим образом:

    "cache_control": {
        "type": "ephemeral",
        "ttl": "5m" | "1h"
    }

    Ответ будет включать подробную информацию о кэше, подобную следующей:

    {
        "usage": {
            "input_tokens": ...,
            "cache_read_input_tokens": ...,
            "cache_creation_input_tokens": ...,
            "output_tokens": ...,
    
            "cache_creation": {
                "ephemeral_5m_input_tokens": 456,
                "ephemeral_1h_input_tokens": 100,
            }
        }
    }

    Обратите внимание, что текущее поле cache_creation_input_tokens равно сумме значений в объекте cache_creation.

    Когда использовать кэш на 1 час

    Если у вас есть подсказки, которые используются с регулярной периодичностью (т.е. системные подсказки, которые используются чаще, чем каждые 5 минут), продолжайте использовать кэш на 5 минут, так как это будет продолжать обновляться без дополнительных затрат.

    Кэш на 1 час лучше всего использовать в следующих сценариях:

    • Когда у вас есть подсказки, которые, вероятно, используются реже, чем каждые 5 минут, но чаще, чем каждый час. Например, когда побочный агент агента будет работать дольше 5 минут, или при сохранении длительного диалога с пользователем и вы обычно ожидаете, что пользователь может не ответить в течение следующих 5 минут.
    • Когда задержка важна и ваши последующие подсказки могут быть отправлены за пределами 5 минут.
    • Когда вы хотите улучшить использование вашего ограничения скорости, так как попадания в кэш не вычитаются из вашего ограничения скорости.

    Кэш на 5 минут и 1 час ведут себя одинаково в отношении задержки. Вы обычно будете видеть улучшенное время до первого токена для больших документов.

    Смешивание различных TTL

    Вы можете использовать как управление кэшем на 1 час, так и на 5 минут в одном запросе, но с важным ограничением: Записи в кэш с более длительным TTL должны появляться перед более короткими TTL (т.е. запись в кэш на 1 час должна появляться перед любыми записями в кэш на 5 минут).

    При смешивании TTL мы определяем три места выставления счёта в вашей подсказке:

    1. Позиция A: Количество токенов на самом высоком попадании в кэш (или 0, если нет попаданий).
    2. Позиция B: Количество токенов на самом высоком блоке cache_control на 1 час после A (или равно A, если ничего не существует).
    3. Позиция C: Количество токенов на последнем блоке cache_control.

    Если B и/или C больше, чем A, они обязательно будут промахами в кэше, потому что A — это самое высокое попадание в кэш.

    Вам будет выставлен счёт за:

    1. Токены чтения из кэша для A.
    2. Токены записи в кэш на 1 час для (B - A).
    3. Токены записи в кэш на 5 минут для (C - B).

    Вот 3 примера. Это изображает входные токены 3 запросов, каждый из которых имеет различные попадания в кэш и промахи в кэше. Каждый имеет различный рассчитанный ценообразование, показанный в цветных полях, в результате. Смешивание TTL Диаграмма


    Примеры кэширования подсказок

    Чтобы помочь вам начать работу с кэшированием подсказок, мы подготовили кулинарную книгу по кэшированию подсказок с подробными примерами и лучшими практиками.

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


    Часто задаваемые вопросы