---
title: Использование инструментов с кэшированием подсказок
url: https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-use-with-prompt-caching
description: Кэшируйте определения инструментов между ходами и разберитесь, что делает ваш кэш недействительным.
---

На этой странице рассматривается «prompt caching» (кэширование подсказок) для определений инструментов: где размещать точки останова `cache_control`, как `defer_loading` сохраняет ваш кэш и что делает его недействительным. Общие сведения о кэшировании подсказок см. в разделе [Кэширование подсказок](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching).

## cache\_control в определениях инструментов

Разместите `cache_control: {"type": "ephemeral"}` на последнем инструменте в вашем массиве `tools`. Это кэширует весь префикс определений инструментов — от первого инструмента до отмеченной точки останова:

```json
{
  "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 применит её к последнему развёрнутому инструменту.

Записи наборов инструментов [computer use](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool) (использование компьютера) и [browser use](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/browser-use-tool) (использование браузера) следуют тому же правилу: разместите `cache_control` на самой записи набора инструментов, и точка останова окажется после определения набора. Внутри записи `configs` отдельного участника она не принимается, поскольку участники набора загружаются как одно определение. В рамках [пакетного действия](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool#batch-actions) маркер `cache_control` на любом из блоков `tool_use` или `tool_result` участников данного хода принимается и вступает в силу в конце этого пакета, поэтому несколько маркеров в одном пакете действуют как одна точка останова. Каждый маркер по-прежнему учитывается в лимите запроса в [четыре точки останова](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching#when-to-use-multiple-breakpoints), поэтому используйте по одному на ход.

## defer\_loading и сохранение кэша

Отложенные инструменты не включаются в префикс системной подсказки. Когда модель обнаруживает отложенный инструмент через [поиск инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-search-tool), его определение добавляется непосредственно в историю разговора в виде блока `tool_reference`. Префикс остаётся нетронутым, поэтому кэширование подсказок сохраняется.

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

`defer_loading` также действует независимо от построения грамматики для [строгого режима](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/strict-tool-use). Грамматика строится на основе полного набора инструментов независимо от того, какие инструменты отложены, поэтому и кэширование подсказок, и кэширование грамматики сохраняются при динамической загрузке инструментов.

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

Кэш следует иерархии префиксов (`tools` → `system` → `messages`), поэтому изменение на одном уровне делает недействительным этот уровень и всё, что следует за ним:

| Изменение                                           | Делает недействительным                                                                                                                                                                                                                |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Изменение определений инструментов                  | Весь кэш (tools, system, messages)                                                                                                                                                                                                     |
| Включение или отключение веб-поиска или цитирования | Кэши system и messages                                                                                                                                                                                                                 |
| Изменение `tool_choice`                             | Кэш messages                                                                                                                                                                                                                           |
| Изменение `disable_parallel_tool_use`               | Кэш messages                                                                                                                                                                                                                           |
| Переключение наличия/отсутствия изображений         | Кэш messages                                                                                                                                                                                                                           |
| Изменение параметров размышлений                    | Кэш messages всегда; кэши инструментов и system — также на моделях, которые отображают конфигурацию размышлений перед ними ([подробности](https://platform.claude.com/docs/ru/build-with-claude/thinking#thinking-and-prompt-caching)) |
| Изменение `output_config.effort`                    | То же, что и для параметров размышлений; явная установка значения по умолчанию для модели эквивалентна его отсутствию                                                                                                                  |

<Note>
  Если вам нужно изменять `tool_choice` в середине разговора, рассмотрите возможность размещения точек останова кэша перед точкой изменения.
</Note>

## Результаты серверных инструментов кэшируются автоматически

Когда в вашем запросе включено кэширование подсказок и Claude использует [серверный инструмент](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/server-tools), такой как веб-поиск, веб-загрузка или выполнение кода, API автоматически размещает точку останова кэша на результате серверного инструмента перед запуском следующей итерации агентного цикла. Это позволяет последующим итерациям в рамках того же запроса читать растущий префикс из кэша вместо его повторной обработки.

Эта автоматическая точка останова всегда использует TTL по умолчанию в 5 минут, независимо от любого TTL, который вы задаёте в собственных маркерах `cache_control`. В поле `usage` ответа эти записи отображаются в `cache_creation.ephemeral_5m_input_tokens`, поэтому вы можете видеть 5-минутные записи в кэш, даже если каждый заданный вами `cache_control` использует TTL в 1 час.

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

## Таблица взаимодействия по инструментам

| Инструмент                                                                                                  | Особенности кэширования                                                                                                                                                                                                                                                                   |
| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Веб-поиск](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/web-search-tool)                  | Включение или отключение делает недействительными кэши system и messages                                                                                                                                                                                                                  |
| [Веб-загрузка](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/web-fetch-tool)                | Включение или отключение делает недействительными кэши system и messages                                                                                                                                                                                                                  |
| [Выполнение кода](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/code-execution-tool)        | Состояние контейнера не зависит от кэша подсказок                                                                                                                                                                                                                                         |
| [Поиск инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-search-tool)        | Обнаруженные инструменты загружаются как блоки `tool_reference`, сохраняя кэш префикса                                                                                                                                                                                                    |
| [Использование компьютера](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/computer-use-tool) | Наличие снимков экрана влияет на кэш messages; `cache_control` размещается на записи набора инструментов (см. [cache\_control в определениях инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-use-with-prompt-caching#cache-control-on-tool-definitions)) |
| [Использование браузера](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/browser-use-tool)    | Наличие снимков экрана влияет на кэш messages; `cache_control` размещается на записи набора инструментов (см. [cache\_control в определениях инструментов](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-use-with-prompt-caching#cache-control-on-tool-definitions)) |
| [Текстовый редактор](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/text-editor-tool)        | Стандартный клиентский инструмент, без особого взаимодействия с кэшированием                                                                                                                                                                                                              |
| [Bash](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/bash-tool)                             | Стандартный клиентский инструмент, без особого взаимодействия с кэшированием                                                                                                                                                                                                              |
| [Память](https://platform.claude.com/docs/ru/agents-and-tools/tool-use/memory-tool)                         | Стандартный клиентский инструмент, без особого взаимодействия с кэшированием                                                                                                                                                                                                              |

## Следующие шаги

<CardGroup cols={3}>
  <Card title="Кэширование подсказок" icon="database" href="https://platform.claude.com/docs/ru/build-with-claude/prompt-caching">
    Изучите полную модель кэширования подсказок, включая TTL и цены.
  </Card>

  <Card title="Поиск инструментов" icon="magnifying-glass" href="https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-search-tool">
    Загружайте инструменты по требованию, не нарушая ваш кэш.
  </Card>

  <Card title="Справочник инструментов" icon="book" href="https://platform.claude.com/docs/ru/agents-and-tools/tool-use/tool-reference">
    Просмотрите все доступные инструменты и их параметры.
  </Card>
</CardGroup>
