Um agente, no sentido que o mercado passou a usar, não é “um chatbot mais esperto”. É um laço. Recebe um objetivo, propõe um passo, chama uma ferramenta, lê o resultado, decide o próximo passo. Pensar, agir, observar. De novo. O texto que o modelo gera no meio do caminho não é a entrega. É rascunho de controle.
Essa ideia é antiga em automação. O que mudou é quem escolhe a ferramenta: o próprio modelo, a partir de uma lista descrita em linguagem natural. A flexibilidade é real. O modo de falhar também. O laço que não termina, a ferramenta que não existe, a ação irreversível sem alguém na porteira.
Vale contrastar, cedo, com uma única chamada de RAG. Recuperar trechos e gerar uma resposta é um passo só. Barato de entender, barato de recusar, barato de auditar. O agente entra quando a tarefa não cabe nesse passo: precisa consultar, depois calcular, depois escrever, depois gravar. Se a tarefa cabe, o agente é teatro.
O laço: pensar, ferramenta, observar
O esqueleto se repete entre bibliotecas.
- O sistema monta um prompt com o objetivo, o estado e as ferramentas disponíveis.
- O modelo devolve um pensamento breve e uma chamada: nome da ferramenta, argumentos.
- O programa executa — busca, SQL, HTTP, arquivo — e devolve o resultado como observação.
- O modelo vê a observação e escolhe: outra ferramenta, uma pergunta ao usuário, ou a resposta final.
Sem o passo 3, você não tem agente. Tem um modelo que narra que usou uma ferramenta. A narração é barata e mentirosa. Agente de verdade toca o mundo: lê um banco, cria um ticket, dispara um e-mail. Por isso a conversa sobre agentes é, no fundo, uma conversa sobre permissão.
flowchart TD
O[Objetivo] --> P[Pensar]
P --> F[Chamar ferramenta]
F --> V[Observar]
V --> D{Terminou?}
D -->|Não| P
D -->|Sim| R[Resultado]
D -->|Risco| H[Humano]
classDef ouro fill:#FBF5E4,stroke:#C9A227,color:#0B1F18,stroke-width:1.4px
classDef verde fill:#F3FAF7,stroke:#1E7A57,color:#0B1F18,stroke-width:1.4px
classDef fim fill:#14513B,stroke:#0F3328,color:#FBFAF6,stroke-width:1.4px
class O ouro
class P,F,V,D verde
class R,H fim
Na mesa editorial, o analogo honesto não é “o autor autônomo”. É o assistente com telefone. Ele pode checar uma ficha no catálogo, pedir uma capa, rascunhar um e-mail ao revisor. Ele não publica o livro nem altera o preço na loja sem alguém dizer sim. A metáfora aguenta bastante peso. Quando o marketing de agentes promete “funcionário digital”, desconte o adjetivo.
Onde o laço gira à toa
O fracasso mais visível é o loop. O modelo chama a mesma busca com palavras levemente diferentes. Não encontra. Tenta de novo. A fatura sobe. A latência estoura. O usuário espera uma resposta que já não virá melhor.
Isso acontece quando o objetivo é vago (“resolva a cobrança”), quando a ferramenta devolve ruído, quando não há critério de parada. Um agente sem orçamento é um processo sem timeout. Defina teto de passos, teto de tokens, teto de ferramentas por tipo. Ao estourar, entregue o estado a um humano: o que tentou, o que viu, o que falta.
Há o loop elegante, pior de diagnosticar: o modelo declara progresso (“agora vou verificar a política”) e chama uma ferramenta que não muda o estado. A narrativa avança. O mundo não. Logs que mostram só o texto final escondem isso. Logs que mostram cada chamada — nome, argumentos, duração, trecho da observação — revelam.
Ferramentas alucinadas
O modelo pode inventar uma ferramenta que não está na lista, ou inventar argumentos que o esquema não prevê. “catalogo.publicar(slug='novo-titulo')” quando só existe catalogo.consultar. Se o seu executor é permissivo, a invenção vira um erro opaco. Se o executor é estrito — nomes enumerados, JSON validado, rejeição clara — o modelo recebe o erro e, no melhor caso, escolhe a ferramenta certa.
Descrições vagas pioram o quadro. Duas ferramentas, “buscar livros” e “buscar pedidos”, ambas descritas como “busca informações”. O modelo sorteia. Uma frase de descrição é contrato. Escreva como se fosse a orelha de um volume: o que faz, o que não faz, um exemplo de argumento.
Outro hábito ruim: dar ao modelo uma ferramenta genérica de código ou de SQL irrestrito “para ser flexível”. Flexível, aqui, é sinônimo de superfície de ataque. Prefira ações estreitas: preco_de(slug), status_do_pedido(id), trechos_do_manual(pergunta). RAG, aliás, pode ser uma dessas ferramentas — uma, não o agente inteiro.
A porteira humana
Toda ação com efeito externo precisa de uma classe: só leitura, reversível, irreversível. Só leitura pode correr no laço. Reversível pode correr com registro e compensação. Irreversível — publicar, cobrar, apagar, enviar para a lista inteira — pede um humano, ou pelo menos uma confirmação explícita fora do modelo.
A porteira não é desconfiança romântica da máquina. É o mesmo critério de um estagiário no primeiro mês. Ele pesquisa sozinho. Ele não dispara a newsletter. Um agente que envia e-mail “porque o raciocínio concluiu que era hora” é um incidente com prosa fluida.
Desenhe a porteira antes da demo. A demo sem porteira sempre funciona no palco. Em produção, o primeiro objetivo mal interpretado encontra a API que não deveria.
Quando uma única chamada de RAG basta
Se a pergunta é “o que o manual diz sobre X?” e a resposta é um parágrafo, você não precisa de laço. Precisa de recuperação e geração, com recusa sem evidência. O agente, nesse caso, acrescenta latência, custo e um modo novo de errar (a busca certa na volta 4, depois de três ferramentas inúteis).
Use o laço quando a tarefa tem dependência real:
- consultar o pedido, depois a política, depois redigir o e-mail e esperar o sim humano;
- achar o capítulo, depois a errata, depois abrir um card de correção;
- listar arquivos, escolher um, resumir, gravar o resumo num destino conhecido.
Mesmo nesses fluxos, o primeiro desenho pode ser um script seu com duas ou três chamadas fixas, não um agente que escolhe o grafo. O modelo decide o texto. Você decide a ordem. Agente de verdade — o modelo escolhendo o próximo tipo de passo — justifica-se quando a ordem não é previsível e o custo de prever todas as ramificações é pior do que vigiar o laço.
O mínimo para não se envergonhar
- orçamento de passos e de dinheiro por execução;
- ferramentas estreitas, descritas com exemplo;
- executor que recusa nome e argumento inválidos;
- log de cada pensamento, chamada e observação;
- classificação de risco e porteira para o irreversível;
- um caminho sem agente para a pergunta que é só documento.
MCP, o protocolo para expor ferramentas e recursos a modelos, entra nesse quadro como tomada padronizada — não como cérebro. Deixemos isso para outro texto. Aqui cabe a frase que o hype tenta adiar: a maior parte do trabalho útil ainda é recuperar um trecho e escrever com cuidado. O laço é para o resto. E o resto, se tocar o mundo, atravessa uma porteira com nome e sobrenome.
Leia também: RAG: por que recuperar contexto em vez de encher o prompt e LangChain não é mágica.