Esta página aborda o cache de prompt para definições de ferramentas: onde colocar pontos de interrupção cache_control, como defer_loading preserva seu cache e o que o invalida. Para cache de prompt geral, consulte Cache de prompt.
Coloque cache_control: {"type": "ephemeral"} na última ferramenta em seu array tools. Isso armazena em cache todo o prefixo de definições de ferramentas, da primeira ferramenta até o ponto de interrupção marcado:
{
"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" }
}
]
}Para mcp_toolset, o ponto de interrupção cache_control fica na última ferramenta do conjunto. Você não controla a ordem das ferramentas dentro de um toolset MCP, então coloque o ponto de interrupção na entrada mcp_toolset em si e a API o aplica à ferramenta final expandida.
Ferramentas adiadas não são incluídas no prefixo do prompt do sistema. Quando o modelo descobre uma ferramenta adiada através da busca de ferramentas, a definição é anexada inline como um bloco tool_reference no histórico de conversas. O prefixo permanece intocado, então o cache de prompt é preservado.
Isso significa que adicionar ferramentas dinamicamente através da busca de ferramentas não quebra seu cache. Você pode iniciar uma conversa com um pequeno conjunto de ferramentas sempre carregadas (em cache), deixar o modelo descobrir ferramentas adicionais conforme necessário e manter o mesmo acerto de cache em cada turno.
defer_loading também atua independentemente da construção de gramática para modo estrito. A gramática é construída a partir do conjunto completo de ferramentas independentemente de quais ferramentas são adiadas, então o cache de prompt e o cache de gramática são ambos preservados quando as ferramentas carregam dinamicamente.
O cache segue uma hierarquia de prefixo (tools → system → messages), então uma mudança em um nível invalida esse nível e tudo depois dele:
| Mudança | Invalida |
|---|---|
| Modificar definições de ferramentas | Cache inteiro (tools, system, messages) |
| Alternar busca na web ou citações | Caches de system e messages |
Alterar tool_choice | Cache de messages |
Alterar disable_parallel_tool_use | Cache de messages |
| Alternar presença/ausência de imagens | Cache de messages |
| Alterar parâmetros de pensamento | Cache de messages |
Se você precisar variar tool_choice no meio da conversa, considere colocar pontos de interrupção de cache antes do ponto de variação.
| Ferramenta | Considerações de cache |
|---|---|
| Busca na web | Ativar ou desativar invalida os caches de system e messages |
| Busca na web | Ativar ou desativar invalida os caches de system e messages |
| Execução de código | O estado do contêiner é independente do cache de prompt |
| Busca de ferramentas | Ferramentas descobertas carregam como blocos tool_reference, preservando o cache de prefixo |
| Uso de computador | A presença de captura de tela afeta o cache de messages |
| Editor de texto | Ferramenta de cliente padrão, sem interação de cache especial |
| Bash | Ferramenta de cliente padrão, sem interação de cache especial |
| Memória | Ferramenta de cliente padrão, sem interação de cache especial |
Aprenda o modelo completo de cache de prompt, incluindo TTLs e preços.
Carregue ferramentas sob demanda sem quebrar seu cache.
Navegue por todas as ferramentas disponíveis e seus parâmetros.
Was this page helpful?