Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Trilha Arquiteto de IA/O que é um agente de IA: anatomia e o loop ReAct
Módulo 3 · Agentes· Aula 11/22

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 quiser

Dica: o vídeo é um resumo visual rápido; o áudio e o texto trazem a aula completa. Terminar o áudio ou o vídeo, ou passar no quiz, já conta a aula como concluída.

Assista a esta aula
Narrado por Fernando AzevedoMP4PDF
Ouça esta aula
0:0012:40
Velocidade
Baixar

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

AbordagemQuem controla o fluxo?Usa ferramentas?Tem memória?Autônomo?
LLM puroSeu códigoNãoNãoNão
Workflow fixoSeu códigoSim (hardcoded)OpcionalNão
RAGSeu códigoBusca vetorialContexto da chamadaNão
AgenteO modeloSim (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.

🧠 Agente: Núcleo de raciocínio
  • 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
🔧 Ferramentas externas
  • Busca / RAG · recuperação de fatos
  • API externa · ação no mundo
  • Execução de código · cálculo / transformação
💾 Memória
  • Curto prazo · janela de contexto
  • Longo prazo · banco vetorial / relacional
✅ Saída
  • 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:

  1. 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.
  1. 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).
  1. 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.
  1. 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.

Ordenar

Ordene o loop de um agente (ReAct)

Um ciclo de raciocínio-e-ação.

  1. 1Agir, chamando uma ferramenta
  2. 2Raciocinar sobre o próximo passo
  3. 3Perceber o objetivo e o contexto atual
  4. 4Observar o resultado e decidir se repete ou conclui

As quatro fases do loop ReAct

  1. 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. 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. 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. 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.

FA
Na prática: tool calling é o motor do loop
Arquiteto de TI Especialista

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.

Ligar

Agente × outras abordagens

Toque num conceito e depois na definição.

O que fixar desta aula

Agente = modelo + ferramentas + memória + loop autônomo. Faltou um desses, é outra coisa.
O diferencial do agente é que o modelo controla o fluxo, não o seu código.
ReAct = Percepção → Thought → Action → Observation → repetir até concluir.
Tool calling (Aula 07) é o que torna o loop real. Sem ele, o agente só simula ações.
Agente não é a resposta padrão. Comece com o mínimo e escale a complexidade só quando necessário.
As próximas aulas cobrem as peças que faltam: memória (12), padrões avançados (13), MCP (14) e skills (15).

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.

Referências

ReAct: Synergizing Reasoning and Acting in Language Models (Yao et al., 2022)AWS: Agents for Amazon Bedrock: How it worksAmazon Bedrock User Guide: Automate tasks using AI agentsLangChain: ReAct Agent conceptual guideAnthropic: Tool use (function calling) documentation
Concluir e ir para a próxima Aula anterior