Adição de Ferramentas

A página anterior mostrou como envolver um LLM num agente lhe dá uma identidade persistente, instruções e gestão de sessões. Mas mesmo com tudo isso, o agente só pode gerar conteúdos (texto, imagens, etc.) — não pode consultar o preço da ação atual, enviar um email ou consultar a sua base de dados. Responde com base no conhecimento que foi incorporado durante a formação e no contexto que forneces no prompt.

As ferramentas colmatam esta lacuna. Dão ao agente a capacidade de agir — de ir além dos seus dados de treino e interagir com o mundo real. Adicionar ferramentas é o passo mais impactante que pode dar para tornar um agente verdadeiramente útil.

Quando utilizar isto

Adicione ferramentas ao seu agente quando:

  • O agente precisa de acesso a dados em tempo real ou externos — preços em tempo real, meteorologia, registos de bases de dados, resultados de pesquisa — que não estejam nos dados de treino do modelo.
  • O agente precisa de agir — enviar emails, criar tickets, ligar APIs, escrever ficheiros — em vez de apenas produzir conteúdo.

Considerações

Consideração Detalhes
Latency Cada chamada de ferramenta adiciona uma ida e volta — o modelo gera um pedido de ferramenta, o seu código executa-o e o resultado é enviado de volta antes que o modelo possa continuar. A multiferramenta complica isto.
Sobrecarga do token Definições de ferramentas (nomes, descrições, esquemas de parâmetros) estão incluídas em cada prompt. Mais ferramentas significam menos tokens disponíveis para o histórico de conversas e a resposta do modelo.
Complexidade de depuração Quando algo corre mal, a causa pode estar na seleção da ferramenta do modelo, nos argumentos escolhidos ou na execução da ferramenta. Estás a depurar a lógica e o código em conjunto.
Fiabilidade O modelo pode chamar ferramentas incorretamente, apresentar argumentos errados ou invocar uma ferramenta quando não deveria. Boas descrições e aprovação de ferramentas mitigam isto, mas não eliminam.

Porque é que os agentes precisam de ferramentas

Como abordado nos LLM Fundamentals, um LLM é treinado para gerar tokens — incluindo um formato estruturado especial que representa uma chamada de ferramenta. Mas o próprio modelo nunca executa nada. É a tua aplicação (ou Agent Framework) que analisa a saída do modelo, executa a função real e devolve o resultado.

Isto significa que as ferramentas não mudam o modelo — mudam o que o seu agente pode fazer. Sem ferramentas, um agente é um conversador. Ao usar ferramentas, torna-se um operador.

Considere um agente de reservas de viagens. Sem ferramentas, pode discutir voos e sugerir itinerários com base no conhecimento geral. Com ferramentas, pode:

  • Pesquise numa API de voos para disponibilidade e preços em tempo real
  • Reserve um voo em nome do utilizador

Cada uma dessas ações requer uma ferramenta — um pedaço de código que o agente pode invocar para interagir com o mundo exterior.

Como funciona o ciclo de invocação de ferramentas

Quando fornece ferramentas a um agente, o Agent Framework gere automaticamente um ciclo de chamada de ferramentas:

┌──────────────────────────────────────────────────────┐
│  User: "What's the weather in Seattle?"              │
└──────────────┬───────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────┐
│  Agent sends messages + tool definitions to LLM      │
└──────────────┬───────────────────────────────────────┘
               ▼
       ┌───────────────┐
       │ LLM responds  │
       └───┬───────┬───┘
           │       │
     Tool call?    No ──────────────────────────┐
           │                                    │
           ▼                                    ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│  Agent Framework executes   │   │  Final response:            │
│  the tool (e.g.,            │   │  "It's cloudy in Seattle    │
│  get_weather("Seattle"))    │   │   with a high of 15°C."     │
└──────────────┬──────────────┘   └─────────────────────────────┘
               │
               ▼
┌─────────────────────────────┐
│  Agent sends tool result    │
│  back to the LLM            │
└──────────────┬──────────────┘
               │
               └──────► (back to "LLM responds")

Diagrama que mostra o ciclo de chamada de ferramentas: o LLM interage com ferramentas externas e memória num ciclo antes de devolver uma resposta final.

Pontos principais:

  1. Não precisas de escrever o loop. O Agent Framework trata da deteção de chamadas de ferramentas na resposta do modelo, da execução das ferramentas e da alimentação dos resultados. Defines as ferramentas; A estrutura orquestra o resto.
  2. Múltiplas chamadas de ferramenta por turno. O modelo pode chamar várias ferramentas (potencialmente em paralelo) antes de produzir uma resposta final — ou encadear chamadas de ferramentas onde a saída de uma informa a seguinte.
  3. O modelo decide quando chamar as ferramentas. Com base no pedido do utilizador e nas descrições das ferramentas que fornece, o modelo avalia se uma ferramenta é necessária. Boas descrições de ferramentas levam a uma melhor seleção de ferramentas.

Sugestão

Para um guia prático sobre como adicionar a sua primeira ferramenta e ver este ciclo em ação, veja Passo 2: Adicionar Ferramentas no tutorial de Iniciação.

Tipos de ferramentas

O Agent Framework suporta várias categorias de ferramentas. Escolher o certo depende do que precisa que o agente faça e de onde a capacidade se encontra.

Ferramentas funcionais

As ferramentas de funções são funções personalizadas que escreves e registas com o agente. Eles funcionam no teu processo, dando-te controlo total sobre a lógica, os limites de segurança e o tratamento de erros.

Use ferramentas funcionais quando:

  • Tens lógica de negócio personalizada que o agente precisa de invocar (consultar uma base de dados, chamar uma API interna, fazer um cálculo)
  • Precisas que a ferramenta corra no teu ambiente com acesso aos teus recursos
  • Queres segurança e testabilidade no tempo de compilação

As ferramentas funcionais são o tipo de ferramenta mais comum e flexível. A maioria dos agentes começa aqui.

Ferramentas MCP (Modelo de Protocolo de Contexto)

O MCP é um standard aberto que define como as aplicações fornecem ferramentas aos LLMs. Em vez de escrever a lógica da ferramenta por si próprio, liga-se a um servidor MCP que expõe um conjunto de ferramentas através de um protocolo padrão — semelhante a como uma API REST expõe os endpoints.

O Agent Framework suporta duas variantes:

Sabor O que é Quando Utilizar
Ferramentas MCP hospedadas Servidores MCP alojados e geridos pela Microsoft Foundry ou outros fornecedores Quer acesso chave na mão a capacidades comuns (por exemplo, pesquisa de ficheiros, execução de código) sem gerir a infraestrutura
Ferramentas MCP locais Servidores MCP que gere você próprio ou a que se liga a partir de qualquer fornecedor Tem um servidor MCP personalizado ou de terceiros, ou precisa de ferramentas que corram no seu próprio ambiente

Use as ferramentas MCP quando:

  • Um servidor MCP pré-construído já oferece a capacidade de que precisas
  • Quer reutilizar ferramentas em múltiplos agentes ou aplicações através de um servidor partilhado
  • Estás a integrar-te com um serviço de terceiros que expõe um endpoint MCP

Ferramentas alojadas pelo fornecedor

Alguns fornecedores oferecem ferramentas integradas que funcionam na infraestrutura do fornecedor — sem necessidade de código local. Estes são, entre outros:

Tool O que faz
Intérprete de código Executa código num ambiente sandbox na infraestrutura do fornecedor
Pesquisa de Ficheiros Pesquisas entre os ficheiros que carrega para o fornecedor
Pesquisa na Web Pesquisa na internet informação em tempo real

Utilizar ferramentas alojadas pelo fornecedor quando:

  • Precisas de capacidades como execução de código ou pesquisa na web sem teres de construir ou alojar a ferramenta tu próprio
  • O fornecedor já oferece uma versão gerida que satisfaz as suas necessidades

Observação

A disponibilidade de ferramentas alojadas pelo fornecedor varia consoante o fornecedor. Consulte a Visão Geral das Ferramentas para a matriz completa de suporte ao prestador.

Observação

Alguns fornecedores de LLM podem executar ferramentas alojadas na sua infraestrutura durante a inferência, como a API Responses da OpenAI. Pense nestes serviços de inferência como serviços semi-agentivos que combinam inferência com execução de ferramentas. Não altera a forma como o modelo subjacente funciona, mas significa que a execução da ferramenta pode ocorrer como parte da geração de resposta do serviço. Estes serviços não podem executar ferramentas locais, que têm de ser executadas na sua própria infraestrutura.

Escolher o tipo de ferramenta certo

Pergunta Recommendation
Tenho lógica de negócio personalizada? Ferramentas funcionais — escrevam e registam as vossas próprias funções
Existe algum servidor MCP que já faça o que preciso? Ferramentas MCP — conectar-se a ele em vez de construir do zero, como o servidor MCP GitHub
Preciso de execução de código, pesquisa de ficheiros ou pesquisa na web? Ferramentas alojadas pelo fornecedor — verifique se o seu fornecedor as suporta
Preciso de ferramentas de várias categorias? Combine-os — os agentes podem usar ferramentas funcionais, ferramentas MCP e ferramentas alojadas pelo fornecedor em simultâneo

As descrições das ferramentas são importantes

O modelo seleciona as ferramentas com base nos seus nomes e descrições. Uma descrição vaga leva a uma má seleção de ferramentas — o modelo pode chamar a ferramenta errada, saltar uma ferramenta que deveria usar ou passar argumentos incorretos.

Escreve descrições de ferramentas da mesma forma que escreverias um documento de API: diz o que a ferramenta faz, o que cada parâmetro significa e o que devolve. Quanto mais clara a descrição, melhor será o julgamento do modelo.

Sugestão

Definições de ferramentas (nomes, descrições, esquemas de parâmetros) são incluídas no prompt e consomem tokens na janela de contexto. Se registar muitas ferramentas, a sobrecarga de processamento (overhead) pode ser significativa. Regista apenas as ferramentas que o agente realmente precisa.

Aprovação de ferramentas: humano no circuito

Algumas ações são sensíveis — transferir dinheiro, apagar registos, enviar emails. Pode não querer que o agente execute estas ferramentas de forma autónoma. A aprovação de ferramentas permite-lhe exigir confirmação humana antes de uma ferramenta ser executada.

Quando uma ferramenta é marcada como necessitando de aprovação, o agente faz uma pausa antes da execução e devolve uma resposta indicando que a aprovação é necessária. A sua aplicação é responsável por apresentar isto ao utilizador e transmitir a sua decisão.

Este padrão é frequentemente chamado de humano no circuito e é essencial para construir agentes confiáveis que lidam com ações de grande consequência.

Dificuldades comuns

Armadilha Orientações
Ferramentas a mais Cada definição de ferramenta consome tokens. Registe apenas as ferramentas relevantes para o propósito do agente.
Descrições vagas "Realizar operações com dados" não vai ajudar o modelo. Seja específico: "Consulta a base de dados de inventário para a disponibilidade do produto por SKU."
Sem gestão de erros As ferramentas podem falhar (erros de rede, entrada inválida). Devolva mensagens de erro claras para que o modelo possa raciocinar sobre o que correu mal e tentar novamente ou informar o utilizador.
Ferramentas excessivamente permissivas Uma ferramenta que pode "executar qualquer consulta SQL" é um risco de segurança. Delimitar ferramentas para operações específicas e bem definidas.
Falta de aprovação em ações sensíveis Se uma ferramenta conseguir fazer alterações irreversíveis, adicione aprovação de ferramenta para manter um humano no processo.

Menção especial: Ferramenta de Interpretação de Código

Como discutido em LLM Fundamentals, os LLMs podem cometer erros em cálculos precisos e lógica formal. Isto porque os LLMs geram respostas de forma token a token baseando-se na correspondência de padrões — na verdade, não computam. Um LLM a quem se pede para multiplicar dois números grandes não está a executar aritmética; está a prever como seria a aparência da resposta com base nos dados de treino. Isto funciona surpreendentemente frequentemente, mas falha de forma imprevisível em casos extremos.

O Code Interpreter resolve isto permitindo que o agente escreva e execute código num ambiente sandbox. Em vez de adivinhar a resposta, o modelo escreve um script em Python que a calcula exatamente, executa-a e usa o resultado verificado na sua resposta.

Observação

O modelo pode escrever um script ligeiramente diferente cada vez que lhe é pedido para resolver o mesmo problema, mas os resultados devem ser maioritariamente consistentes.

Advertência

O Intérprete de Código não substitui o raciocínio cuidadoso por parte do humano. Verifique sempre o trabalho do agente e verifique os resultados de forma independente quando necessário.

Dê ao seu agente um Interpretador de Código quando for necessário:

  • Realize cálculos precisos — modelação financeira, análise estatística, conversões de unidades — onde uma "melhor estimativa" aproximada não seja aceitável.
  • Transforme ou analise dados — analise CSVs, agregue linhas, gere gráficos ou reformule dados estruturados.
  • Processar ficheiros — ler documentos carregados, extrair conteúdo, converter formatos ou gerar novos ficheiros.
  • Valide o seu próprio raciocínio — escreva código de teste para verificar uma afirmação lógica antes de a apresentar ao utilizador.

Sugestão

O Code Interpreter pode ser uma ferramenta alojada pelo fornecedor — o código corre na infraestrutura do fornecedor num sandbox, não no seu ambiente. Isto torna-o seguro de usar sem preocupações com código arbitrário a ser executado nos seus servidores. Consulte a referência do Code Interpreter para detalhes da configuração.

Passos seguintes

Depois de o seu agente ter ferramentas, o próximo passo é aprender sobre competências — pacotes portáteis de instruções, material de referência e guiões que dão aos agentes conhecimentos de domínio que podem carregar à vontade.

Vai mais fundo: