web_search_20250305
, text_editor_20250124
) para garantir compatibilidade entre versões de modelos.Forneça ao Claude ferramentas e um prompt do usuário
Claude decide usar uma ferramenta
stop_reason
de tool_use
, sinalizando a intenção do Claude.Execute a ferramenta e retorne os resultados
user
contendo um bloco de conteúdo tool_result
Claude usa o resultado da ferramenta para formular uma resposta
Forneça ao Claude ferramentas e um prompt do usuário
Claude executa a ferramenta do servidor
Claude usa o resultado da ferramenta do servidor para formular uma resposta
Exemplo de ferramenta única
get_weather
com a entrada fornecida, e retornar o resultado em uma nova mensagem user
:Uso de ferramentas paralelas
tool_use
são incluídos em uma única mensagem do assistente, e todos os blocos tool_result
correspondentes devem ser fornecidos na mensagem subsequente do usuário.Exemplo de múltiplas ferramentas
get_weather
e uma get_time
, junto com uma consulta do usuário que pede por ambas.get_weather
primeiro, depois get_time
após receber o resultado do tempotool_use
em uma única resposta quando as operações são independentesuser
, com cada resultado em seu próprio bloco tool_result
.Informações faltando
get_weather
acima, se você perguntar ao Claude “Como está o tempo?” sem especificar um local, Claude, particularmente Claude Sonnet, pode fazer uma suposição sobre as entradas das ferramentas:Ferramentas sequenciais
get_location
para obter a localização do usuário, depois passar essa localização para a ferramenta get_weather
:get_location
para obter a localização do usuário. Depois que você retornar a localização em um tool_result
, Claude então chamaria get_weather
com essa localização para obter a resposta final.A conversa completa poderia parecer com:Papel | Conteúdo |
---|---|
Usuário | Como está o tempo onde eu estou? |
Assistente | Vou encontrar sua localização atual primeiro, depois verificar o tempo lá. [Uso de ferramenta para get_location] |
Usuário | [Resultado da ferramenta para get_location com id correspondente e resultado de San Francisco, CA] |
Assistente | [Uso de ferramenta para get_weather com a seguinte entrada]{ “location”: “San Francisco, CA”, “unit”: “fahrenheit” } |
Usuário | [Resultado da ferramenta para get_weather com id correspondente e resultado de “59°F (15°C), principalmente nublado”] |
Assistente | Com base na sua localização atual em San Francisco, CA, o tempo agora está 59°F (15°C) e principalmente nublado. É um dia bastante fresco e encoberto na cidade. Você pode querer levar uma jaqueta leve se estiver saindo. |
get_location
.get_location
real e retorna o resultado “San Francisco, CA” em um bloco tool_result
.get_weather
, passando “San Francisco, CA” como o parâmetro location
(bem como um parâmetro unit
adivinhado, já que unit
não é um parâmetro obrigatório).get_weather
real com os argumentos fornecidos e retorna os dados meteorológicos em outro bloco tool_result
.Uso de ferramentas com cadeia de pensamento
Responda à solicitação do usuário usando ferramentas relevantes (se elas estiverem disponíveis). Antes de chamar uma ferramenta, faça alguma análise. Primeiro, pense sobre qual das ferramentas fornecidas é a ferramenta relevante para responder à solicitação do usuário. Segundo, passe por cada um dos parâmetros obrigatórios da ferramenta relevante e determine se o usuário forneceu diretamente ou deu informações suficientes para inferir um valor. Ao decidir se o parâmetro pode ser inferido, considere cuidadosamente todo o contexto para ver se ele suporta um valor específico. Se todos os parâmetros obrigatórios estiverem presentes ou puderem ser razoavelmente inferidos, prossiga com a chamada da ferramenta. MAS, se um dos valores para um parâmetro obrigatório estiver faltando, NÃO invoque a função (nem mesmo com preenchimentos para os parâmetros faltando) e, em vez disso, peça ao usuário para fornecer os parâmetros faltando. NÃO peça por mais informações sobre parâmetros opcionais se não for fornecido.
Modo JSON
tool_choice
(veja Forçando uso de ferramenta) para instruir o modelo a usar explicitamente essa ferramentainput
para a ferramenta, então o nome da ferramenta e descrição devem ser da perspectiva do modelo.record_summary
para descrever uma imagem seguindo um formato particular.tools
parameter)tools
parameter in API requests (tool names, descriptions, and schemas)tool_use
content blocks in API requests and responsestool_result
content blocks in API requeststools
, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools
are provided, then a tool choice of none
uses 0 additional system prompt tokens.
Model | Tool choice | Tool use system prompt token count |
---|---|---|
Claude Opus 4.1 | auto , none any , tool | 346 tokens 313 tokens |
Claude Opus 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.7 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (Oct) (deprecated) | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (June) (deprecated) | auto , none any , tool | 294 tokens 261 tokens |
Claude Haiku 3.5 | auto , none any , tool | 264 tokens 340 tokens |
Claude Opus 3 (deprecated) | auto , none any , tool | 530 tokens 281 tokens |
Claude Sonnet 3 | auto , none any , tool | 159 tokens 235 tokens |
Claude Haiku 3 | auto , none any , tool | 264 tokens 340 tokens |
usage
relatadas.