Esta página explica os conceitos por trás do uso de ferramentas: onde as ferramentas são executadas, como o loop agêntico funciona e quando o uso de ferramentas é a abordagem certa. Para orientação prática, comece com o tutorial Construa um agente que usa ferramentas ou o guia Defina ferramentas.
O uso de ferramentas é um contrato entre sua aplicação e o modelo. Você especifica quais operações estão disponíveis e qual a forma de suas entradas e saídas; Claude determina quando e como chamá-las. O modelo nunca executa nada por conta própria. Ele emite uma solicitação estruturada, seu código (ou os servidores da Anthropic) executa a operação, e o resultado flui de volta para a conversa.
Esse contrato faz com que o modelo se comporte menos como um gerador de texto e mais como uma função que você chama. Engenheiros com experiência clássica em API podem integrar o uso de ferramentas da mesma forma que fariam com qualquer outra interface tipada: defina o schema, trate o callback, retorne um resultado. A diferença é que o chamador do outro lado é um modelo de linguagem escolhendo qual função chamar com base na conversa.
O eixo principal ao longo do qual as ferramentas diferem é onde o código é executado. Toda ferramenta se enquadra em uma de três categorias, e a categoria determina pelo que sua aplicação é responsável.
Você escreve o schema, você executa o código, você retorna os resultados. Este é o caso mais comum: a grande maioria do tráfego de uso de ferramentas é de ferramentas definidas pelo usuário chamando lógica específica da aplicação.
Quando Claude chama uma de suas ferramentas, a resposta da API contém um bloco tool_use com o nome da ferramenta e um objeto JSON de argumentos. Sua aplicação extrai esses argumentos, executa a operação (uma consulta ao banco de dados, uma chamada HTTP, uma escrita de arquivo, o que quer que a ferramenta faça) e envia a saída de volta em um bloco tool_result na próxima solicitação. Claude nunca vê sua implementação; ele vê apenas o schema que você forneceu e o resultado que você retornou.
Para um punhado de operações comuns (gerenciar memória de rascunho, executar comandos de shell, editar arquivos, controlar um navegador), a Anthropic publica o schema da ferramenta e sua aplicação cuida da execução. As ferramentas nesta categoria são memory, bash, text_editor e computer.
O modelo de execução é idêntico ao das ferramentas definidas pelo usuário: a resposta contém um bloco tool_use, seu código executa a operação e você envia de volta um tool_result. A razão para usar uma ferramenta com schema da Anthropic em vez de definir seu próprio equivalente é que esses schemas fazem parte do treinamento. Claude foi otimizado em milhares de trajetórias bem-sucedidas que usam exatamente essas assinaturas de ferramentas, então ele as chama de forma mais confiável e se recupera de erros com mais elegância do que faria com uma ferramenta personalizada que faz a mesma coisa. O schema é a interface que o modelo já espera.
Para web_search, web_fetch, code_execution e tool_search, a Anthropic executa o código. Você habilita a ferramenta em sua solicitação e o servidor cuida de todo o resto. Você nunca constrói um bloco tool_result para essas ferramentas. Quando um turno chama apenas ferramentas de servidor, o loop do lado do servidor executa a operação e alimenta a saída de volta ao modelo antes que a resposta chegue até você, a menos que o loop pare antes de terminar, na maioria das vezes porque ele pausa.
A resposta que você recebe contém blocos server_tool_use mostrando o que foi executado e o que retornou. No caso comum, a execução já está completa no momento em que você os vê, e o trabalho da sua aplicação é habilitar a ferramenta e ler a resposta final em vez de participar do loop de execução; as principais exceções são um loop pausado (pause_turn) e um turno que também chama uma ferramenta de cliente.
Ferramentas executadas pelo cliente (tanto as definidas pelo usuário quanto as com schema da Anthropic) exigem que sua aplicação conduza um loop. O modelo não pode executar seu código, então cada chamada de ferramenta é uma ida e volta: o modelo pede, você executa, você reporta de volta, o modelo continua.
A forma canônica é um loop while baseado em stop_reason:
tools e a mensagem do usuário.stop_reason: "tool_use" e um ou mais blocos tool_use.tool_result.tool_result.stop_reason for "tool_use".Na prática, isso se lê como: enquanto stop_reason == "tool_use", execute as ferramentas e continue a conversa. O loop termina em qualquer outra razão de parada ("end_turn", "max_tokens", "stop_sequence" ou "refusal"), o que significa que Claude produziu uma resposta final ou parou por outra razão que sua aplicação deve tratar.
Para a mecânica de construir solicitações, lidar com chamadas de ferramentas paralelas e formatar resultados, consulte Trate chamadas de ferramentas.
Ferramentas executadas pelo servidor executam seu próprio loop dentro da infraestrutura da Anthropic. Uma única solicitação da sua aplicação pode disparar várias pesquisas na web ou execuções de código antes que uma resposta retorne. O modelo pesquisa, lê os resultados, determina se deve pesquisar novamente e itera até ter o que precisa, tudo sem a participação da sua aplicação.
Esse loop interno tem um limite de iterações. Se o modelo ainda estiver iterando quando atingir o limite, a resposta retorna com stop_reason: "pause_turn" em vez de "end_turn". Um turno pausado significa que o trabalho não está concluído; reenvie a conversa (incluindo a resposta pausada) para permitir que o modelo continue de onde parou. Consulte Ferramentas de servidor para o padrão de continuação.
O loop também devolve o controle a você antes que uma ferramenta de servidor seja executada se Claude chamar essa ferramenta de servidor e uma ferramenta de cliente no mesmo grupo de chamadas de ferramentas paralelas. A resposta então retorna com stop_reason: "tool_use" e um bloco server_tool_use que ainda não tem bloco de resultado; a API o executa depois que você retorna os resultados da ferramenta de cliente. Consulte Razões de parada e fallback para o contrato exato.
O uso de ferramentas se encaixa quando a tarefa requer algo que o modelo não pode fazer apenas a partir de texto:
Um sinal claro de que você deveria estar usando ferramentas: se você está escrevendo uma regex para extrair uma decisão da saída do modelo, essa decisão deveria ter sido uma chamada de ferramenta. Analisar texto livre para recuperar intenção estruturada é um sinal de que a estrutura pertence ao schema.
O uso de ferramentas não se encaixa quando:
| Abordagem | Quando usá-la | O que esperar | Saiba mais |
|---|---|---|---|
| Ferramentas de cliente definidas pelo usuário | Lógica de negócios personalizada, APIs internas, dados proprietários | Você cuida da execução e do loop agêntico | Defina ferramentas |
| Ferramentas de cliente com schema da Anthropic | Operações padrão de desenvolvimento (bash, edição de arquivos, controle de navegador) | Você cuida da execução; Claude chama a ferramenta de forma confiável porque o schema faz parte do treinamento | Referência de ferramentas |
| Ferramentas executadas pelo servidor | Pesquisa na web, sandbox de código, busca na web | A Anthropic cuida da execução; você lê os resultados em vez de produzi-los | Ferramentas de servidor |
Construa um agente passo a passo, de uma única chamada de ferramenta até a produção.
Especificação de schema, descrições e tool_choice.
Diretório de ferramentas fornecidas pela Anthropic.
Was this page helpful?