Esta página aborda o cache de prompt para definições de ferramentas: onde posicionar os pontos de interrupção de cache_control, como defer_loading preserva seu cache e o que o invalida. Para informações gerais sobre cache de prompt, consulte Cache de prompt.
Posicione cache_control: {"type": "ephemeral"} na última ferramenta do seu array tools. Isso armazena em cache todo o prefixo de definições de ferramentas, desde a 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 de cache_control é aplicado à última ferramenta do conjunto. Você não controla a ordem das ferramentas dentro de um conjunto de ferramentas MCP, então posicione o ponto de interrupção na própria entrada mcp_toolset e a API o aplicará à última ferramenta expandida.
Ferramentas com carregamento adiado não são incluídas no prefixo do prompt do sistema. Quando o modelo descobre uma ferramenta adiada por meio da busca de ferramentas, a definição é anexada inline como um bloco tool_reference no histórico da conversa. O prefixo permanece intacto, então o cache de prompt é preservado.
Isso significa que adicionar ferramentas dinamicamente por meio da busca de ferramentas não quebra seu cache. Você pode iniciar uma conversa com um pequeno conjunto de ferramentas sempre carregadas (em cache), permitir que o modelo descubra ferramentas adicionais conforme necessário e manter o mesmo acerto de cache em todos os turnos.
defer_loading também atua de forma independente da construção da gramática para o modo estrito. A gramática é construída a partir do conjunto completo de ferramentas, independentemente de quais ferramentas estão adiadas, então tanto o cache de prompt quanto o cache de gramática são preservados quando as ferramentas são carregadas dinamicamente.
O cache segue uma hierarquia de prefixos (tools → system → messages), então uma alteração em um nível invalida esse nível e tudo que vem depois dele:
| Alteração | Invalida |
|---|---|
| Modificar definições de ferramentas | Cache inteiro (tools, system, messages) |
| Ativar ou desativar 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 posicionar pontos de interrupção de cache antes do ponto de variação.
Quando sua requisição tem cache de prompt habilitado e Claude usa uma ferramenta de servidor, como busca na web, busca de conteúdo web ou execução de código, a API posiciona automaticamente um ponto de interrupção de cache no resultado da ferramenta de servidor antes de executar a próxima iteração do loop agêntico. Isso permite que iterações posteriores dentro da mesma requisição leiam o prefixo crescente a partir do cache em vez de reprocessá-lo.
Esse ponto de interrupção automático sempre usa o TTL padrão de 5 minutos, independentemente de qualquer TTL que você defina em seus próprios marcadores cache_control. No campo usage da resposta, essas gravações aparecem em cache_creation.ephemeral_5m_input_tokens, então você pode ver gravações de cache de 5 minutos mesmo quando todos os cache_control que você definiu usam um TTL de 1 hora.
Esse comportamento só se aplica quando sua requisição já tem pelo menos um marcador cache_control. Requisições sem cache de prompt não recebem o ponto de interrupção automático.
| Ferramenta | Considerações de cache |
|---|---|
| Busca na web | Habilitar ou desabilitar invalida os caches de system e messages |
| Busca de conteúdo web | Habilitar ou desabilitar 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 são carregadas como blocos tool_reference, preservando o cache de prefixo |
| Uso de computador | A presença de capturas de tela afeta o cache de messages |
| Editor de texto | Ferramenta de cliente padrão, sem interação especial com cache |
| Bash | Ferramenta de cliente padrão, sem interação especial com cache |
| Memória | Ferramenta de cliente padrão, sem interação especial com cache |
Aprenda o modelo completo de cache de prompt, incluindo TTLs e preços.
Carregue ferramentas sob demanda sem quebrar seu cache.
Explore todas as ferramentas disponíveis e seus parâmetros.
Was this page helpful?