Padrões: reflection, plan-execute e multi-agente
Os padrões de arquitetura de agentes e, principalmente, quando NÃO usar multi-agente.
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.
Um agente com um loop ReAct já resolve muita coisa — mas há classes de problema onde um único agente simplesmente não chega lá: tarefas longas demais para o contexto, trabalho que exige especialização paralela, ou saídas que precisam de revisão antes de chegar ao usuário. Para esses casos existem padrões arquiteturais. Este lesson é um catálogo prático desses padrões — e um aviso honesto sobre quando eles viram armadilha.
Padrão 1 — Reflection: o agente revisa a própria resposta
Reflection é o padrão mais simples do catálogo e, por isso, o mais subestimado. A ideia: depois de gerar uma resposta, o agente faz uma segunda passagem — com um prompt de crítica — e decide se o resultado está bom o suficiente ou precisa de revisão.
Pense como um desenvolvedor que escreve código e depois lê de novo antes de abrir o PR. O modelo não muda de natureza; ele só recebe o contexto de "revisor" em vez de "autor".
Como implementar: você passa a saída anterior de volta ao modelo com uma instrução como "Revise a resposta abaixo. Identifique erros factuais, lacunas de raciocínio e inconsistências. Se estiver correta, responda APROVADO. Caso contrário, reescreva." Você pode iterar N vezes ou até receber APROVADO.
Quando usar: geração de código, relatórios, respostas longas onde alucinação pontual é cara. O custo é uma chamada extra ao modelo — barato comparado a entregar lixo ao usuário.
Cuidado com loops infinitos: defina sempre um max_iterations. Sem isso, um modelo que nunca converge vai consumir tokens indefinidamente. Reflection não garante correção — garante uma segunda chance de perceber o erro.
Padrão 2 — Plan-and-Execute: planeje antes de agir
No loop ReAct padrão (visto na lição 11), o agente decide a próxima ação a cada passo — é um raciocínio guloso, passo a passo. Isso funciona bem para tarefas curtas, mas em tarefas longas o agente pode perder o fio da meada, mudar de estratégia no meio do caminho ou gastar tokens repetindo contexto.
Plan-and-Execute separa as responsabilidades em duas fases:
- Fase de planejamento: o modelo recebe o objetivo e produz um plano estruturado — uma lista de subtarefas ordenadas. Nenhuma ferramenta é chamada ainda.
- Fase de execução: cada subtarefa do plano é executada em sequência (ou em paralelo, se independentes), possivelmente por agentes especializados.
A vantagem é clareza: o plano é um artefato inspecionável. Você pode logar, validar e até mostrar ao usuário antes de executar — o que abre espaço para o padrão human-in-the-loop que veremos adiante.
A desvantagem é rigidez: se o mundo muda durante a execução (uma ferramenta retorna erro, um dado não existe), o plano original pode ficar inválido. Boas implementações incluem um passo de re-planejamento quando uma subtarefa falha.
Quando usar: tarefas de pesquisa longa, geração de documentos complexos, pipelines de dados onde a sequência importa. Evite para tarefas curtas e imprevisíveis — o overhead de planejamento não compensa.
Padrão 3 — Multi-agente: supervisor, hierárquico e swarm
Multi-agente é o padrão que mais aparece em demos e o que mais gera arquiteturas desnecessariamente complexas. Antes de adotar, entenda as três variantes:
Supervisor/Orquestrador → Sub-agentes: um agente central recebe o objetivo, decide qual sub-agente especializado acionar e consolida os resultados. É o padrão mais comum e mais controlável. O supervisor não executa tarefas diretamente — ele delega.
Hierárquico: o supervisor pode ter sub-supervisores, que por sua vez têm sub-agentes. Útil para domínios muito grandes (ex.: empresa com departamentos distintos). O custo de coordenação cresce exponencialmente com a profundidade — use com cuidado.
Peers/Swarm: agentes sem hierarquia explícita colaboram via mensagens. Cada agente pode iniciar interações com outros. É o padrão mais flexível e o mais difícil de debugar — o fluxo de controle emerge do comportamento coletivo, não de um orquestrador central.
O diagrama abaixo mostra o padrão supervisor → sub-agentes, que é o ponto de partida recomendado para qualquer sistema multi-agente.
O ponto crítico: cada fronteira entre agentes é uma chamada ao modelo — latência, custo e um novo ponto de falha. Um sistema com cinco agentes pode ter cinco vezes mais chances de alucinação propagada. Comece sempre com o agente mais simples que resolve o problema.
Padrão Supervisor → Sub-agentes
O orquestrador recebe o objetivo do usuário, decompõe em subtarefas e delega para sub-agentes especializados. Cada sub-agente tem seu próprio conjunto de ferramentas. O orquestrador consolida os resultados antes de responder.
- Agente Supervisor · Orchestrator Agent
- Agente de Busca · Search Agent
- Agente de Código · Code Agent
- Agente de Escrita · Writer Agent
- Web Search · API externa
- Code Executor · Sandbox
- Knowledge Base · RAG / Vetores
- Aprovação Humana · Human Approval
Na prática, a maioria dos sistemas que vejo em produção chegou ao multi-agente cedo demais. O time cria um supervisor, três sub-agentes e dez tools na primeira semana — e passa as próximas semanas debugando por que o orquestrador escolheu o agente errado. Minha regra: se um único agente com bom prompting e as ferramentas certas resolve 80% dos casos, ele vai para produção assim. Multi-agente entra quando há um limite concreto: contexto estourado, latência que exige paralelismo real, ou domínios tão distintos que um único prompt não consegue cobrir bem. Complexidade arquitetural tem custo — e esse custo é pago em debugging, não em tokens.
Human-in-the-Loop: o padrão mais subestimado
Human-in-the-loop (HITL) não é uma limitação do sistema — é uma decisão arquitetural deliberada. Em vez de deixar o agente executar um plano completo de forma autônoma, você insere um ponto de aprovação humana antes de ações irreversíveis ou de alto impacto.
Exemplos concretos: antes de enviar um e-mail em nome do usuário, antes de deletar registros em banco, antes de publicar conteúdo, antes de executar uma transação financeira. A regra prática: se a ação não pode ser desfeita com facilidade, coloque um humano no caminho.
Implementar HITL é simples conceitualmente — o agente para, serializa o estado atual (plano + contexto), e aguarda uma confirmação externa. Na AWS, isso se traduz em uma fila SQS ou um Step Functions waitForTaskToken. O desafio real é UX: como apresentar o estado do agente de forma que o humano entenda o que está aprovando?
HITL também é um mecanismo de aprendizado. Cada aprovação ou rejeição é um dado de avaliação — você pode usar esses sinais para melhorar prompts, identificar padrões de erro e calibrar quando o agente pode operar de forma mais autônoma.
Não confunda HITL com desconfiança no modelo. É gerenciamento de risco. Sistemas maduros começam com mais pontos de aprovação e os removem gradualmente à medida que o agente demonstra confiabilidade — não o contrário.
Qual padrão usar?
Agente Simples (ReAct)
- Baixa latência, fácil de debugar
- Custo previsível por chamada
- Sem overhead de coordenação
- Contexto limitado para tarefas longas
- Sem revisão automática da saída
Ponto de partida padrão. Use até encontrar um limite concreto.
Reflection
- Melhora qualidade sem mudar arquitetura
- Fácil de adicionar a qualquer agente existente
- Dobra (ou mais) o custo de tokens
- Risco de loop sem max_iterations
Adicione quando qualidade importa mais que velocidade.
Plan-and-Execute
- Plano inspecionável e auditável
- Permite HITL antes da execução
- Bom para tarefas longas e previsíveis
- Rígido: falha se o ambiente muda
- Overhead de planejamento para tarefas curtas
Use quando a sequência importa e você quer visibilidade do plano.
Multi-agente Supervisor
- Paralelismo real entre sub-agentes
- Especialização por domínio
- Alta latência e custo de coordenação
- Múltiplos pontos de falha
- Debugging complexo
Use quando um único agente tem limite concreto de contexto ou domínio.
Pontos-chave desta lição
Perguntas frequentes
Posso combinar Reflection com Plan-and-Execute?
Sim, e faz sentido. Você pode aplicar Reflection na fase de planejamento (revisar o plano antes de executar) e/ou na saída final de cada sub-tarefa. O custo aumenta, mas a qualidade também. Avalie pelo impacto do erro — quanto mais cara a falha, mais justificado o custo de revisão.
Swarm é adequado para produção?
Pode ser, mas exige observabilidade muito boa. Sem um orquestrador central, rastrear por que o sistema tomou uma decisão específica é difícil. Se você for usar swarm em produção, invista pesado em tracing distribuído — cada mensagem entre agentes deve ser logada com contexto suficiente para reconstruir o fluxo.
Como implementar HITL na AWS?
O padrão mais robusto é Step Functions com waitForTaskToken: o agente para, envia o token para uma fila ou notificação, e retoma quando o humano responde com o token. Para casos mais simples, uma fila SQS com um Lambda de aprovação funciona bem. O Bedrock AgentCore (lição 17) tem suporte nativo a HITL — veremos isso em detalhes.
Qual a diferença entre multi-agente hierárquico e Plan-and-Execute?
Plan-and-Execute é sobre separar as fases de raciocínio e ação dentro de um agente (ou sistema). Hierárquico é sobre estrutura organizacional de múltiplos agentes com níveis de supervisão. Você pode ter um sistema hierárquico que usa Plan-and-Execute internamente em cada nível — são dimensões diferentes da arquitetura.
Minha opinião direta
Desses três padrões, Reflection é o que eu recomendo adicionar primeiro a qualquer agente em produção — o custo é baixo e o ganho de qualidade é imediato. Plan-and-Execute entra quando você precisa de auditabilidade ou de HITL antes de ações críticas. Multi-agente fica para quando você tem um limite concreto e mensurável que um único agente não consegue superar. A ordem importa: não pule etapas. A maioria dos problemas que parecem exigir cinco agentes se resolve com um agente bem projetado, boas ferramentas e Reflection. Complexidade arquitetural é um investimento — exija ROI antes de pagar.
Checagem rápida
1. Quando multi-agente costuma ser a escolha errada?
2. O padrão Reflection consiste em…