На этой странице рассматривается кеширование подсказок для определений инструментов: где размещать точки разрыва 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_choice в середине разговора, рассмотрите возможность размещения точек разрыва кеша перед точкой варьирования.
| Инструмент | Соображения по кешированию |
|---|---|
| Веб-поиск | Включение или отключение делает недействительными кеши system и messages |
| Веб-выборка | Включение или отключение делает недействительными кеши system и messages |
| Выполнение кода | Состояние контейнера независимо от кеша подсказок |
| Поиск инструментов | Обнаруженные инструменты загружаются как блоки tool_reference, сохраняя кеш префикса |
| Компьютерное использование | Наличие скриншота влияет на кеш messages |
| Текстовый редактор | Стандартный клиентский инструмент, без специального взаимодействия с кешированием |
| Bash | Стандартный клиентский инструмент, без специального взаимодействия с кешированием |
Изучите полную модель кеширования подсказок, включая TTL и цены.
Загружайте инструменты по требованию без нарушения вашего кеша.
Was this page helpful?
| Память |
| Стандартный клиентский инструмент, без специального взаимодействия с кешированием |
Просмотрите все доступные инструменты и их параметры.