Эта страница описывает кэширование подсказок для определений инструментов: где размещать точки останова cache_control, как defer_loading сохраняет ваш кэш и что его инвалидирует. Общую информацию о кэшировании подсказок см. в разделе Кэширование подсказок.
Разместите cache_control: {"type": "ephemeral"} на последнем инструменте в вашем массиве tools. Это кэширует весь префикс определений инструментов, от первого инструмента до отмеченной точки останова:
{
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": { "type": "string" }
},
"required": ["location"]
}
},
{
"name": "get_time",
"description": "Get the current time in a given time zone",
"input_schema": {
"type": "object",
"properties": {
"timezone": { "type": "string" }
},
"required": ["timezone"]
},
"cache_control": { "type": "ephemeral" }
}
]
}Для mcp_toolset точка останова cache_control попадает на последний инструмент в наборе. Вы не контролируете порядок инструментов внутри набора инструментов MCP, поэтому разместите точку останова на самой записи mcp_toolset, и API применит её к последнему развёрнутому инструменту.
Отложенные инструменты не включаются в префикс системной подсказки. Когда модель обнаруживает отложенный инструмент через поиск инструментов, определение добавляется встроенно как блок tool_reference в историю разговора. Префикс остаётся нетронутым, поэтому кэширование подсказок сохраняется.
Это означает, что динамическое добавление инструментов через поиск инструментов не нарушает ваш кэш. Вы можете начать разговор с небольшим набором всегда загружаемых инструментов (кэшированных), позволить модели обнаруживать дополнительные инструменты по мере необходимости и сохранять то же попадание в кэш на каждом ходу.
defer_loading также действует независимо от построения грамматики для строгого режима. Грамматика строится из полного набора инструментов независимо от того, какие инструменты отложены, поэтому кэширование подсказок и кэширование грамматики сохраняются при динамической загрузке инструментов.
Кэш следует иерархии префиксов (tools → system → messages), поэтому изменение на одном уровне инвалидирует этот уровень и всё, что после него:
| Изменение | Инвалидирует |
|---|---|
| Изменение определений инструментов | Весь кэш (tools, system, messages) |
| Переключение веб-поиска или цитирований | Кэши system и messages |
Изменение tool_choice | Кэш messages |
Изменение disable_parallel_tool_use | Кэш messages |
| Переключение наличия/отсутствия изображений | Кэш messages |
| Изменение параметров мышления | Кэш messages всегда; кэши tool и system тоже на моделях, которые отображают конфигурацию мышления перед ними (подробности) |
Изменение output_config.effort | То же, что и параметры мышления; явная установка значения по умолчанию модели эквивалентна его отсутствию |
Когда в вашем запросе включено кэширование подсказок и Claude использует серверный инструмент, такой как веб-поиск, веб-загрузка или выполнение кода, API автоматически размещает точку останова кэша на результате серверного инструмента перед запуском следующей итерации агентного цикла. Это позволяет последующим итерациям в рамках того же запроса читать растущий префикс из кэша вместо его повторной обработки.
Эта автоматическая точка останова всегда использует TTL по умолчанию в 5 минут, независимо от любого TTL, который вы устанавливаете на своих собственных маркерах cache_control. В usage ответа эти записи отображаются в cache_creation.ephemeral_5m_input_tokens, поэтому вы можете видеть записи в 5-минутный кэш, даже когда каждый установленный вами cache_control использует TTL в 1 час.
Это поведение применяется только тогда, когда в вашем запросе уже есть хотя бы один маркер cache_control. Запросы без кэширования подсказок не получают автоматическую точку останова.
| Инструмент | Особенности кэширования |
|---|---|
| Веб-поиск | Включение или отключение инвалидирует кэши system и messages |
| Веб-загрузка | Включение или отключение инвалидирует кэши system и messages |
| Выполнение кода | Состояние контейнера не зависит от кэша подсказок |
| Поиск инструментов | Обнаруженные инструменты загружаются как блоки tool_reference, сохраняя кэш префикса |
| Использование компьютера | Наличие скриншотов влияет на кэш messages |
| Текстовый редактор | Стандартный клиентский инструмент, без особого взаимодействия с кэшированием |
| Bash | Стандартный клиентский инструмент, без особого взаимодействия с кэшированием |
| Память | Стандартный клиентский инструмент, без особого взаимодействия с кэшированием |
Изучите полную модель кэширования подсказок, включая TTL и ценообразование.
Загружайте инструменты по требованию, не нарушая ваш кэш.
Просмотрите все доступные инструменты и их параметры.
Was this page helpful?