Independentemente do sistema agêntico que você esteja construindo, as ferramentas provavelmente serão uma parte importante do seu agente. As ferramentas permitem que o Claude interaja com serviços e APIs externos, especificando sua estrutura e definição exatas em nossa API. Quando o Claude responder, ele incluirá um bloco de uso de ferramenta na resposta da API, caso planeje invocar uma ferramenta. As definições e especificações de ferramentas devem receber tanta atenção imediata da engenharia quanto seus prompts gerais. Neste breve apêndice, descrevemos como fazer a engenharia de prompts das suas ferramentas.
Frequentemente, há várias maneiras de especificar a mesma ação. Por exemplo, você pode especificar uma edição de arquivo escrevendo um diff ou reescrevendo o arquivo inteiro. Para uma saída estruturada, você pode retornar código dentro de markdown ou dentro de JSON. Em engenharia de software, diferenças como essas são superficiais e podem ser convertidas de um para o outro sem perdas. No entanto, alguns formatos são muito mais difíceis para um LLM escrever do que outros. Escrever um diff requer saber quantas linhas estão sendo alteradas no cabeçalho do bloco antes que o novo código seja escrito. Escrever código dentro de JSON (em comparação com markdown) requer escapes extras de quebras de linha e aspas.