O que é um agente de IA: anatomia e o loop ReAct
Agente = modelo + objetivo + ferramentas + memória + autonomia. A peça que junta tudo.
7 min de leitura
Escolha como aprender
— combine como quiserDica: o vídeo é um resumo visual rápido — o áudio e o texto trazem a aula completa.
Nas aulas anteriores você aprendeu como um LLM raciocina, como dar fatos a ele via RAG e como ele chama ferramentas externas. Um agente de IA é o que acontece quando você conecta tudo isso num loop que roda sozinho até o objetivo ser atingido — e entender esse loop é o que separa quem constrói agentes de quem apenas usa chatbots.
Agente não é sinônimo de LLM
Existe uma confusão comum no mercado: chamar qualquer coisa de "agente" só porque usa um modelo de linguagem. Vale a pena ser preciso.
LLM puro recebe um prompt, devolve texto. Sem estado, sem ação, sem loop. Você pergunta, ele responde — fim.
Workflow fixo é um pipeline determinístico: etapa A chama o modelo, etapa B processa o resultado, etapa C salva no banco. O código decide o fluxo; o modelo só preenche lacunas. Útil, previsível, mas rígido.
RAG (Aula 06) adiciona recuperação de documentos antes da geração. Ainda não é um agente — é uma chamada enriquecida. O modelo não decide se vai buscar nem o que fazer com o resultado além de responder.
Agente é diferente em natureza: o modelo recebe um objetivo, decide como atingi-lo, escolhe quais ferramentas usar, observa os resultados e continua raciocinando até concluir — ou até perceber que não consegue. O fluxo de controle mora dentro do modelo, não no seu código.
Essa distinção importa na prática porque agentes falham de formas que workflows não falham: eles podem entrar em loop, tomar caminhos inesperados ou usar ferramentas na ordem errada. Projetar um agente exige pensar em contenção, não apenas em funcionalidade.
Quatro abordagens lado a lado
| Abordagem | Quem controla o fluxo? | Usa ferramentas? | Tem memória? | Autônomo? | |
|---|---|---|---|---|---|
| LLM puro | Seu código | Não | Não | Não | — |
| Workflow fixo | Seu código | Sim (hardcoded) | Opcional | Não | — |
| RAG | Seu código | Busca vetorial | Contexto da chamada | Não | — |
| Agente | O modelo | Sim (dinâmico) | Sim (curto + longo prazo) | Sim | — |
Anatomia de um agente
Todo agente funcional tem quatro peças. Não é teoria — se uma falta, o sistema degrada para algo mais simples.
Modelo (raciocínio): o LLM é o cérebro. Ele lê o objetivo, o histórico e as observações disponíveis, e decide o próximo passo. A qualidade do raciocínio depende diretamente do modelo escolhido e do prompt do sistema.
Ferramentas: são as mãos do agente. Sem ferramentas, o modelo só produz texto. Com ferramentas (Aula 07), ele pode buscar na web, consultar um banco, chamar uma API, executar código. Cada ferramenta tem um nome, uma descrição e um schema de parâmetros — o modelo lê isso e decide quando e como usar.
Memória: o agente precisa saber o que já fez. Memória de curto prazo é o histórico de mensagens na janela de contexto — barato de implementar, caro de manter longo. Memória de longo prazo é armazenamento externo (banco vetorial, banco relacional) que o agente consulta quando precisa. A Aula 12 cobre isso em detalhe.
Planner (opcional mas poderoso): em agentes mais sofisticados, existe uma etapa explícita de planejamento antes de agir — o modelo decompõe o objetivo em sub-tarefas. Isso reduz erros em problemas longos. Veremos esse padrão na Aula 13.
Na prática, você implementa essas peças com código simples: um loop, um array de mensagens, um dicionário de ferramentas disponíveis e chamadas de função. O modelo orquestra; você só garante que as peças estejam disponíveis.
O loop ReAct de um agente
Fluxo completo de um ciclo de raciocínio e ação. O modelo percebe o estado atual, raciocina sobre o próximo passo, age chamando uma ferramenta, observa o resultado e decide se o objetivo foi atingido.
- Percepção · contexto + histórico
- Raciocínio · LLM decide próximo passo
- Ação · chamada de ferramenta
- Observação · resultado da ferramenta
- Objetivo atingido? · sim / não / erro
- Busca / RAG · recuperação de fatos
- API externa · ação no mundo
- Execução de código · cálculo / transformação
- Curto prazo · janela de contexto
- Longo prazo · banco vetorial / relacional
- Resposta final · entregue ao usuário
O loop ReAct passo a passo
ReAct é um padrão de raciocínio publicado em 2022 que combina Reasoning e Acting num loop interleaved. Na prática, é a forma mais comum de implementar agentes com LLMs hoje.
O loop tem quatro fases que se repetem:
- Percepção: o modelo recebe o estado atual — objetivo do usuário, histórico de mensagens, resultado das ações anteriores e memória relevante. Tudo isso vai no contexto.
- Raciocínio (Thought): o modelo gera um pensamento em linguagem natural explicando o que vai fazer e por quê. Isso não é cosmético — forçar o modelo a verbalizar o raciocínio melhora a qualidade da decisão seguinte (pense em chain-of-thought, Aula 05).
- Ação (Action): o modelo emite uma chamada de ferramenta — um JSON com nome e parâmetros. Seu código executa a ferramenta e retorna o resultado. Sem tool calling (Aula 07), esse passo não existe.
- Observação (Observation): o resultado da ferramenta é adicionado ao histórico como uma mensagem de sistema ou de ferramenta. O modelo lê isso na próxima iteração.
Exemplo concreto: objetivo = "Qual o preço atual da AAPL e quanto ela variou esta semana?"
- Thought: preciso buscar o preço atual e o preço de 7 dias atrás.
- Action:
get_stock_price({"ticker": "AAPL", "date": "today"}) - Observation:
{"price": 213.40} - Action:
get_stock_price({"ticker": "AAPL", "date": "7d_ago"}) - Observation:
{"price": 198.10} - Thought: tenho os dois valores, posso calcular e responder.
- Final answer: "AAPL está em $213,40, alta de 7,7% na semana."
O loop encerrou em dois ciclos. Em problemas mais complexos, pode rodar dezenas de vezes — e é aí que guardrails (Aula 10) e limites de iteração importam.
Ordene o loop de um agente (ReAct)
Um ciclo de raciocínio-e-ação.
- 1Observar o resultado e decidir se repete ou conclui
- 2Agir, chamando uma ferramenta
- 3Perceber o objetivo e o contexto atual
- 4Raciocinar sobre o próximo passo
As quatro fases do loop ReAct
- 1
Percepção
O modelo lê o objetivo, o histórico completo da conversa, os resultados de ações anteriores e qualquer memória recuperada. Tudo isso forma o contexto da decisão.
- 2
Raciocínio (Thought)
O modelo verbaliza o que vai fazer antes de agir. Esse passo melhora a qualidade da ação seguinte e torna o comportamento do agente auditável.
- 3
Ação (Action)
O modelo emite uma chamada de ferramenta estruturada. Seu runtime executa a ferramenta real — busca, API, código — e captura o resultado.
- 4
Observação (Observation)
O resultado da ferramenta entra no histórico. O modelo decide se o objetivo foi atingido ou se precisa de mais um ciclo. Se atingido, gera a resposta final.
Na prática, um agente sem tool calling é só um LLM com um prompt longo. O que torna o loop ReAct real é a capacidade do modelo de emitir chamadas de função estruturadas (Aula 07) e do seu runtime de executá-las e devolver o resultado. Sem isso, o "agente" está apenas simulando ações em texto — inútil em produção. Antes de construir qualquer agente, garanta que o modelo que você escolheu suporta function calling de forma nativa e confiável. Modelos menores ou mais antigos frequentemente alucinam parâmetros de ferramentas, o que quebra o loop silenciosamente.
Quando você precisa de um agente — e quando não precisa
Agentes são poderosos e caros de operar. Cada ciclo do loop consome tokens, latência e potencial de erro. Use agentes quando o problema genuinamente exige autonomia — quando o fluxo de trabalho não pode ser determinado com antecedência porque depende de dados que só existem em tempo de execução.
Use um agente quando:
- O número de passos para resolver o problema é variável e depende do que for descoberto no caminho.
- O modelo precisa decidir qual ferramenta usar, não apenas como usar uma ferramenta predefinida.
- O objetivo é aberto o suficiente para que caminhos diferentes sejam válidos.
- Você precisa de recuperação de falhas autônoma — o agente tenta uma abordagem diferente se a primeira não funcionar.
Não use um agente quando:
- O fluxo é fixo e você sabe exatamente a sequência de passos. Um workflow determinístico é mais barato, mais rápido e mais previsível.
- A tarefa é uma única chamada LLM com RAG. Não há loop, não há agente.
- Latência é crítica e cada ciclo adicional é inaceitável.
- O domínio é de alto risco (financeiro, médico, jurídico) sem supervisão humana no loop.
A regra que uso: comece com o mínimo. Se um prompt + RAG resolve, não construa um agente. Se um workflow fixo resolve, não construa um agente. Agente é a última camada de complexidade, não a primeira.
Agente × outras abordagens
Toque num conceito e depois na definição.
O que fixar desta aula
Perguntas frequentes
ReAct é o único padrão de loop para agentes?
Não. ReAct é o mais comum e o ponto de partida mais sólido. Existem variações como Plan-and-Execute (o modelo planeja todos os passos antes de agir) e Reflexion (o modelo critica suas próprias ações). A Aula 13 cobre esses padrões avançados.
Qual a diferença entre agente e multi-agente?
Um agente único tem um modelo e um conjunto de ferramentas. Em sistemas multi-agente, múltiplos agentes colaboram — cada um com seu próprio modelo, ferramentas e escopo. Um agente orquestrador delega sub-tarefas para agentes especializados. Isso é coberto na Aula 13.
Quantas iterações um agente pode fazer antes de travar?
Depende do seu runtime e do limite que você configurar. Sempre defina um max_iterations explícito — sem isso, um agente mal instruído pode rodar indefinidamente consumindo tokens e dinheiro. Valores típicos ficam entre 5 e 20 iterações dependendo da complexidade esperada da tarefa.
MCP e skills se encaixam onde nessa arquitetura?
MCP (Aula 14) é um protocolo padronizado para expor ferramentas e contexto ao agente — resolve o problema de como o agente descobre e invoca ferramentas de forma interoperável. Skills (Aula 15) são capacidades empacotadas e reutilizáveis que você pode compor em agentes diferentes sem reescrever lógica.