O uso de ferramentas, também chamado de chamada de função, é a capacidade que permite a um modelo de linguagem de grande porte invocar uma função externa, API ou programa de forma estruturada como parte da geração de uma resposta. Em vez de produzir apenas texto em linguagem natural, um modelo com uso de ferramentas pode emitir uma solicitação estruturada, tipicamente formatada como algo semelhante a uma chamada de função com argumentos nomeados, que um aplicativo ao redor executa em nome do modelo; o resultado é então retornado ao modelo, muitas vezes inserido de volta em seu contexto, para que ele possa incorporar essa informação em sua resposta final ou decidir sobre uma ação adicional. O uso de ferramentas é o mecanismo básico pelo qual um agente de IA interage com qualquer coisa fora de sua própria geração de texto, incluindo bancos de dados, calculadoras, mecanismos de busca, ambientes de execução de código e outros softwares.
Desenvolvimento
Os primeiros modelos de linguagem só conseguiam produzir texto simples, então qualquer interação com sistemas externos tinha que ser tratada pela análise de saída de formato livre, na esperança de que correspondesse a um padrão esperado, uma abordagem não confiável. A chamada de função estruturada foi introduzida como um recurso de primeira classe dos modelos pelos principais laboratórios a partir de 2023, com provedores treinando modelos especificamente para emitir chamadas bem formadas para um conjunto de ferramentas descritas no prompt, juntamente com esquemas correspondentes que restringem os argumentos que uma chamada pode conter. Isso tornou o uso de ferramentas dramaticamente mais confiável e o transformou em uma capacidade padrão em praticamente todos os modelos de chat e API de ponta até 2024, junto com esforços mais amplos, incluindo o protocolo de contexto de modelo da Anthropic, introduzido em novembro de 2024, para padronizar como as ferramentas são descritas e conectadas aos modelos em diferentes fornecedores e aplicativos.
Como funciona na prática
Uma troca típica de uso de ferramentas tem três partes. Primeiro, o aplicativo chamador descreve as ferramentas disponíveis ao modelo, geralmente como uma lista de nomes de funções, descrições e tipos de argumentos esperados, incluída no prompt ou ao lado dele. Segundo, quando o modelo determina que responder à solicitação do usuário exige informações ou uma ação que ele não pode produzir por conta própria, como consultar dados atuais ou realizar um cálculo preciso, ele emite uma chamada estruturada para a ferramenta relevante em vez de uma resposta em linguagem natural. Terceiro, o aplicativo executa essa chamada fora do modelo, e o resultado é realimentado na conversa, após o que o modelo pode usá-lo para compor uma resposta final ou emitir outra chamada. Esse ciclo pode se repetir muitas vezes dentro de uma única tarefa agêntica, e os modelos são tipicamente treinados para decidir de forma independente quando uma chamada de ferramenta é necessária versus quando podem responder diretamente com base em seu próprio conhecimento.
Aplicações
O uso de ferramentas sustenta uma ampla gama de sistemas práticos: um modelo pode receber uma função de busca na web para responder a perguntas sobre eventos recentes, uma ferramenta de execução de código para rodar e verificar um cálculo ou um trecho de código gerado, uma ferramenta de consulta a banco de dados para buscar registros específicos, ou uma chamada de API para realizar uma ação como enviar uma mensagem ou atualizar um registro em um sistema externo. Também é a base de pipelines de geração aumentada por recuperação que expõem a recuperação como uma ferramenta chamável, e de sistemas de uso de computador, onde a "ferramenta" é o controle sobre uma interface gráfica, como mouse e teclado, em vez de uma API restrita.
Confiabilidade e segurança
O uso de ferramentas introduz modos de falha que a geração de texto simples não tem, já que um modelo pode chamar a ferramenta errada, fornecer argumentos malformados ou alucinados, ou chamar uma ferramenta um número incomumente grande de vezes em um loop. Como as chamadas de ferramentas podem ter efeitos colaterais no mundo real, que vão desde enviar um e-mail até executar código arbitrário, o uso de ferramentas também levanta questões distintas de segurança, incluindo como evitar que um modelo seja manipulado por conteúdo adversário para usar indevidamente uma ferramenta disponível, um padrão de ataque intimamente associado à injeção de prompt. Sistemas de produção tipicamente lidam com isso por meio de escopo de permissões, etapas de confirmação humana para ações consequentes e isolamento (sandboxing) de qualquer ferramenta que execute código ou acesse dados sensíveis.