Loading...
  • Разработка
  • Администрирование
  • Модели и цены
  • Клиентские SDK
  • Справочник API
Search...
⌘K
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
  • 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
  • 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
Разработка/Инструменты

Использование инструментов с кешированием подсказок

Кешируйте определения инструментов между ходами и поймите, что делает ваш кеш недействительным.

На этой странице рассматривается кеширование подсказок для определений инструментов: где размещать точки разрыва cache_control, как defer_loading сохраняет ваш кеш и что его делает недействительным. Для общего кеширования подсказок см. Кеширование подсказок.

cache_control на определениях инструментов

Поместите 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 применит её к окончательно развёрнутому инструменту.

defer_loading и сохранение кеша

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

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

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

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

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

ИзменениеДелает недействительным
Изменение определений инструментовВесь кеш (tools, system, messages)
Переключение веб-поиска или цитированийКеши system и messages
Изменение tool_choiceКеш messages
Изменение disable_parallel_tool_useКеш messages
Переключение наличия/отсутствия изображенийКеш messages
Изменение параметров мышленияКеш messages

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

Таблица взаимодействия для каждого инструмента

ИнструментСоображения по кешированию
Веб-поискВключение или отключение делает недействительными кеши system и messages
Веб-выборкаВключение или отключение делает недействительными кеши system и messages
Выполнение кодаСостояние контейнера независимо от кеша подсказок
Поиск инструментовОбнаруженные инструменты загружаются как блоки tool_reference, сохраняя кеш префикса
Компьютерное использованиеНаличие скриншота влияет на кеш messages
Текстовый редакторСтандартный клиентский инструмент, без специального взаимодействия с кешированием
BashСтандартный клиентский инструмент, без специального взаимодействия с кешированием

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

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

Изучите полную модель кеширования подсказок, включая TTL и цены.

Поиск инструментов

Загружайте инструменты по требованию без нарушения вашего кеша.

Was this page helpful?

  • cache_control на определениях инструментов
  • defer_loading и сохранение кеша
  • Что делает ваш кеш недействительным
  • Таблица взаимодействия для каждого инструмента
  • Следующие шаги
Память
Стандартный клиентский инструмент, без специального взаимодействия с кешированием
Справочник инструментов

Просмотрите все доступные инструменты и их параметры.