Playbook: Multi-agente — quando 1 basta e quando você precisa orquestrar
Ouvir estudo
gerado ao ouvirGerado apenas no primeiro play
Com tecnologia Amazon Polly + OmniVoice
Cada agente adicional dobra custo, latência e superfície de erro. Este playbook oferece critério cirúrgico para decidir entre agente único, supervisor, pipeline e debate — com tabelas de decisão, topologias visuais e as armadilhas que destroem sistemas multi-agente em produção.
A pressão para adicionar agentes é quase sempre arquitetural por ansiedade, não por necessidade. Um agente bem configurado com as ferramentas certas resolve 80% dos casos — e resolve mais rápido, mais barato e com menos pontos de falha. Este playbook mata o hype com critério: você vai sair sabendo exatamente quando parar em 1 e quando a orquestração multi-agente é a resposta certa.
O que você vai conseguir decidir depois de ler isto
Contexto de referência deste playbook
- Domínio
- IA Generativa / Sistemas de Agentes LLM
- Plataforma principal
- Amazon Bedrock Agents + AWS Step Functions
- Modelos cobertos
- Claude 3.x (Anthropic via Bedrock), modelos Titan, qualquer modelo com suporte a tool use
- Custo base de referência (estimativa)
- Cada hop entre agentes adiciona ~1-3s de latência e duplica o consumo de tokens de contexto
- Fontes primárias
- AWS Bedrock Docs, Anthropic Engineering Blog, AWS Step Functions
- Audiência
- Engenheiros e arquitetos construindo sistemas agênticos em produção
O modelo mental que desbloqueia tudo: agente é um loop, não um serviço
Um agente LLM é fundamentalmente um loop de raciocínio: percebe o estado atual, decide uma ação (chamar uma ferramenta, responder, ou continuar pensando), executa, observa o resultado, e itera. Isso é o ReAct pattern em sua forma mais pura. O problema começa quando arquitetos tratam agentes como microsserviços — cada um com uma responsabilidade, cada um conversando com o próximo via mensagens. A analogia é sedutora, mas falsa.
Microsserviços têm interfaces determinísticas. Agentes têm interfaces probabilísticas. Quando você conecta dois microsserviços, você sabe exatamente o que vai trafegar entre eles. Quando você conecta dois agentes, você está passando linguagem natural — e cada hop é uma oportunidade para alucinação, perda de contexto, ou deriva de objetivo. A propagação de erro em sistemas multi-agente não é linear: é multiplicativa.
A Anthropic articula isso com precisão no seu guia de agentes efetivos: prefira sistemas simples. Aumente a complexidade apenas quando a simplicidade demonstravelmente falha. Isso não é conservadorismo — é engenharia. Um agente único com 5 ferramentas bem definidas (busca vetorial, execução de código, chamada de API, leitura de documentos, escrita estruturada) cobre a maioria dos workflows de conhecimento que vejo em produção. O contexto do Claude 3.5 Sonnet já suporta 200k tokens — cabe muita coisa num único prompt bem estruturado.
Então qual é o critério real para escalar para múltiplos agentes? Papéis genuinamente distintos que não podem coexistir no mesmo contexto. Não 'tarefas diferentes' — papéis com objetivos, permissões e estilos de raciocínio fundamentalmente incompatíveis. Um planejador estratégico e um executor de código têm incentivos diferentes. Um crítico e um gerador têm papéis adversariais por design. Isso é real. 'Preciso de um agente para pesquisa e outro para escrita' geralmente não é — é um agente com duas ferramentas.
O custo real de cada agente que você adiciona
Antes de qualquer tabela de decisão, você precisa internalizar a matemática do custo marginal. Cada agente adicional na sua topologia não adiciona custo linearmente — ele multiplica em três dimensões:
1. Tokens: Cada handoff entre agentes requer que o agente receptor receba contexto suficiente para entender o que está sendo pedido. Na prática, isso significa que o output do agente A vira parte do input do agente B, que vira parte do input do agente C. Em topologias de supervisor com 3 sub-agentes, você pode facilmente estar pagando 4-6x os tokens de uma solução de agente único equivalente. No Bedrock, isso se traduz diretamente em custo de inferência.
2. Latência: Cada hop de agente é uma chamada de inferência síncrona (ou assíncrona com polling). Com Claude 3.5 Sonnet, uma chamada típica de raciocínio leva 2-8 segundos dependendo da complexidade. Uma pipeline de 4 agentes em série tem latência mínima de ~8-32 segundos, sem contar o tempo de execução das ferramentas. Para aplicações interativas, isso é inaceitável. Para batch processing, pode ser tolerável.
3. Superfície de erro: Cada agente é um ponto de falha independente. Ele pode alucinar, interpretar mal a instrução do agente anterior, chamar a ferramenta errada, ou entrar em loop. Em sistemas multi-agente, o debugging é exponencialmente mais difícil porque você precisa reconstruir o estado de cada agente no momento da falha. O trace do Bedrock Agents ajuda, mas não elimina o problema.
A regra prática que uso: antes de adicionar um agente, pergunte 'posso resolver isso com uma ferramenta adicional no agente existente?' Se a resposta for sim, não adicione o agente. Ferramentas são determinísticas, baratas e fáceis de testar. Agentes são probabilísticos, caros e difíceis de debugar.
Topologias de agente: prós, contras e veredito
Agente Único
- Latência mínima — um único loop de raciocínio
- Custo previsível e controlável
- Debugging simples: um trace, um contexto
- Sem perda de contexto entre hops
- Ferramentas cobrem especialização sem overhead de agente
- Contexto limitado para tarefas muito longas (mesmo com 200k tokens)
- Não paraleliza trabalho independente nativamente
- Papéis conflitantes no mesmo prompt podem degradar qualidade
Padrão para 80% dos casos. Comece aqui sempre.
Supervisor + Sub-agentes
- Delegação clara de responsabilidade por domínio
- Sub-agentes podem ter permissões e ferramentas isoladas
- Suportado nativamente no Amazon Bedrock multi-agent collaboration
- Supervisor mantém contexto estratégico enquanto sub-agentes executam
- 2-3x custo de tokens vs agente único equivalente
- Latência acumulada: cada sub-agente adiciona 1 round-trip de inferência
- Supervisor pode tomar decisões de delegação subótimas
- Debugging requer correlacionar traces de múltiplos agentes
Use quando domínios têm permissões realmente distintas ou quando sub-tarefas são longas o suficiente para justificar contextos separados.
Pipeline (Sequencial)
- Cada estágio transforma o output do anterior de forma determinística
- Fácil de testar estágio por estágio
- Integrável com Step Functions para orquestração durável e retry
- Separação clara de concerns: extração → análise → formatação
- Latência é a soma de todos os estágios — sem paralelismo
- Erro em estágio intermediário invalida todo o trabalho anterior
- Contexto do problema original pode se perder ao longo da cadeia
Ideal para transformações de dados bem definidas (ETL com LLM, geração de documentos estruturados). Não use para raciocínio aberto.
Debate (Multi-agente Adversarial)
- Crítico genuinamente adversarial melhora qualidade de outputs de alto risco
- Detecta vieses e pontos cegos que um único agente não vê
- Útil para geração de código com verificação independente
- 3-5x custo de tokens — o mais caro de todos
- Agentes do mesmo modelo base têm vieses correlacionados — debate não é verificação real
- Pode convergir para consenso falso em vez de verdade
- Latência proibitiva para casos interativos
Use com critério cirúrgico: apenas quando o custo de um output errado supera muito o custo do debate. Verificação real exige código, não outro LLM.
Custo, latência e risco por topologia
| Topologia | Custo de tokens (relativo) | Latência típica | Superfície de erro | Quando usar | |
|---|---|---|---|---|---|
| Agente Único | 1x (baseline) | 2–8s por chamada | Baixa — 1 ponto de falha | Tarefa cabe numa linha de raciocínio; ferramentas cobrem especialização | Nunca por padrão — avalie primeiro |
| Supervisor | 2–4x | 5–20s (+ sub-agentes) | Média — N+1 pontos de falha | Domínios com permissões distintas; sub-tarefas longas e independentes | Quando ferramentas resolvem o problema; latência é crítica |
| Pipeline | 1.5–3x | Soma dos estágios (10–60s) | Média — erro em cascata possível | Transformações sequenciais bem definidas; ETL com LLM; batch | Raciocínio aberto; casos interativos; quando estágios são interdependentes |
| Debate | 3–6x | 15–60s+ por rodada | Alta — viés correlacionado entre agentes | Outputs de altíssimo risco; geração + verificação de código crítico | Verificação factual (use código/ferramentas); casos de custo sensível; tempo real |
Checklist: como decidir sua topologia em 6 passos
- 1
Passo 1: Escreva o objetivo numa frase
Se você não consegue descrever o que o sistema precisa fazer em uma frase clara, você não entende o problema ainda. Não arquitete. Exemplos bons: 'Dado um ticket de suporte, classificar, buscar documentação relevante e redigir resposta.' Exemplos ruins: 'Um sistema inteligente que processa informações de forma autônoma.'
- 2
Passo 2: Liste as ações necessárias — são ferramentas ou agentes?
Para cada ação, pergunte: é determinística e tem interface bem definida? → Ferramenta (Lambda, API, query SQL). Requer raciocínio autônomo com estado próprio e objetivo próprio? → Candidato a agente. Na maioria dos casos, 90% das 'ações' são ferramentas. Se tudo são ferramentas, você tem um agente único.
- 3
Passo 3: Verifique se há paralelismo real
Há sub-tarefas que podem executar simultaneamente e cujos resultados são independentes? Se sim, pipeline paralelo ou supervisor com sub-agentes paralelos pode justificar o overhead. Se as tarefas são sequenciais ou interdependentes, o paralelismo é ilusório e o overhead não se justifica.
- 4
Passo 4: Verifique se há isolamento de segurança obrigatório
Diferentes partes do sistema precisam de IAM roles distintas, acesso a dados segregado, ou compliance que exige separação de contexto? Isso é um dos poucos motivos técnicos sólidos para múltiplos agentes. No Bedrock, cada agente tem sua própria execution role — use isso para isolamento real, não cosmético.
- 5
Passo 5: Estime o custo da topologia candidata
Calcule: tokens médios por chamada × multiplicador da topologia × volume de chamadas/dia × preço por token do modelo escolhido. Se o custo multi-agente for >2x o agente único para o mesmo resultado, você precisa de justificativa técnica explícita — não 'fica mais organizado'.
- 6
Passo 6: Defina seu verifier — e garanta que não é outro LLM
Todo sistema agêntico em produção precisa de verificação. Mas verificação real é determinística: testes unitários no código gerado, validação de schema no JSON produzido, execução em sandbox, checagem de regras de negócio em código. Um segundo LLM 'revisando' o output do primeiro tem viés correlacionado — não é verificação, é teatro de qualidade.
Como o Amazon Bedrock implementa colaboração multi-agente — e onde os limites importam
O Amazon Bedrock suporta colaboração multi-agente nativamente desde 2024, com um modelo de supervisor que pode invocar sub-agentes como se fossem ferramentas. A arquitetura é elegante: o agente supervisor recebe a tarefa, decide qual sub-agente invocar, passa o contexto relevante, recebe o resultado, e continua seu raciocínio. Cada sub-agente tem sua própria execution role IAM, seus próprios knowledge bases, e suas próprias action groups.
Isto resolve o problema de isolamento de permissões de forma limpa. Um sub-agente que acessa dados financeiros sensíveis pode ter uma role restrita, enquanto o supervisor opera com permissões mais amplas de orquestração. Isso é um caso de uso legítimo para multi-agente — não é sobre 'organização', é sobre boundary de segurança.
O que o Bedrock não resolve automaticamente é o problema de contexto. Quando o supervisor invoca um sub-agente, ele precisa passar contexto suficiente para que o sub-agente entenda o que está sendo pedido. Isso significa que o contexto relevante é serializado, enviado, processado, e o resultado é retornado. Para tarefas longas, isso pode resultar em contextos de entrada muito grandes nos sub-agentes, aumentando custo e latência.
Para orquestração mais complexa — especialmente quando você precisa de retry, compensação, ou fluxos de longa duração — o AWS Step Functions é o complemento natural. Você pode orquestrar chamadas ao Bedrock Agents via Step Functions, com controle total sobre timeout, retry com backoff exponencial, e estado durável entre etapas. Isso é especialmente valioso em pipelines de processamento de documentos onde uma etapa pode falhar e você precisa retomar de onde parou, não reiniciar do zero.
Uma nota importante sobre limites do Bedrock multi-agent: a profundidade de aninhamento de agentes tem limites (verifique a documentação atual para limites específicos de sua região). Topologias muito profundas — supervisor invocando sub-agente que invoca outro sub-agente — rapidamente se tornam indebuggáveis e violam o princípio de simplicidade. Se você está pensando em 3+ níveis de aninhamento, pare e redesenhe.
Topologias multi-agente: mapa de decisão visual
As quatro topologias possíveis, seus fluxos de dados e pontos de decisão. A topologia correta emerge do problema, não da preferência arquitetural.
- Usuário · User
- Agente Único · Single Agent · (ReAct loop)
- Ferramentas · Tools · (Lambda / API / KB)
- Supervisor · Agent · (Bedrock)
- Sub-agente A · Sub-agent A · (domínio/role A)
- Sub-agente B · Sub-agent B · (domínio/role B)
- IAM Role A · (permissões isoladas)
- IAM Role B · (permissões isoladas)
- Step Functions · (orquestração durável)
- Estágio 1 · Extração / Extract
- Estágio 2 · Análise / Analyze
- Estágio 3 · Formatar / Format
- Verifier · (código / schema · não LLM)
- Gerador · Generator · (propõe solução)
- Crítico · Critic · (adversarial)
- Árbitro · Judge · (ou código)
- Verificação · Code-based · (obrigatório)
- Resposta Final · Final Response
Anti-padrões que destroem sistemas multi-agente em produção
1. Multi-agente prematuro por flexibilidade ('vamos separar pra ficar mais organizado'): Organização arquitetural não é justificativa para múltiplos agentes. Você não separa microsserviços por estética — separa por boundary de domínio, escala independente, ou isolamento de falha. O mesmo critério se aplica a agentes. Se o único argumento é 'fica mais limpo', você está pagando 2-4x mais por um problema que um bom system prompt resolve. 2. Auto-avaliação como verifier ('o agente B vai revisar o output do agente A'): Este é o anti-padrão mais perigoso e mais comum. Dois agentes baseados no mesmo modelo base têm vieses correlacionados — eles tendem a cometer os mesmos tipos de erro e a aprovar os mesmos tipos de resposta incorreta. Isso não é verificação: é viés conversando com viés. Verificação real é determinística: execute o código gerado, valide o JSON contra um schema, cheque regras de negócio em código Python. Se você não pode verificar deterministicamente, seja honesto sobre o nível de confiança do output. 3. Loops sem condição de saída clara: Agentes em loop sem critério de parada explícito e testável vão iterar até o timeout ou até consumir seu budget de tokens. Defina sempre: número máximo de iterações, critério de sucesso verificável, e o que acontece quando nenhum dos dois é atingido. 4. Ignorar o trace do Bedrock em desenvolvimento: O trace de raciocínio do Bedrock Agents é sua única janela para o que está acontecendo dentro do loop. Desenvolver sem inspecionar o trace é como debugar código sem logs. Ative sempre em desenvolvimento e tenha um plano para sampling em produção.
Regra de bolso: complexidade não é sofisticação
Se você não consegue explicar por que precisa de N agentes em vez de N-1 ferramentas, você não precisa de N agentes. Mais especificamente: adicione um agente apenas quando uma dessas três condições for verdadeira: 1. Isolamento de segurança real — o sub-agente precisa de permissões que o agente principal não pode ter. 2. Paralelismo genuíno — as sub-tarefas são independentes e o ganho de tempo justifica o overhead de custo. 3. Papéis adversariais por design — gerador e crítico precisam de objetivos explicitamente conflitantes. Tudo o mais é ferramenta.
Quando começo um projeto agêntico, minha posição padrão é agente único com o máximo de ferramentas que o caso de uso exige. Só movo para multi-agente quando bato em um dos três critérios acima de forma demonstrável — não teórica. O padrão que mais vejo em projetos que chegam até mim com problemas é o que chamo de 'arquitetura de orgulho': alguém construiu um sistema com 5 agentes porque parece mais impressionante em um diagrama. O sistema tem 3x o custo, 4x a latência, e ninguém consegue debugar quando algo dá errado. Refatorar para agente único com ferramentas geralmente resolve o problema em uma tarde. Para verificação, nunca confio em LLM-as-judge para nada que importe. Se estou gerando código, executo em Lambda sandbox e verifico o resultado. Se estou gerando JSON estruturado, valido contra um schema Pydantic antes de qualquer downstream. Se estou gerando análise financeira, tenho regras de sanidade em código que checam ranges esperados. Isso não é desconfiança do modelo — é engenharia básica de sistemas. O Amazon Bedrock multi-agent collaboration é uma feature bem implementada para os casos onde multi-agente é realmente necessário. O isolamento por IAM role é genuinamente útil para compliance. Mas a feature existir não significa que você deve usá-la. A maioria dos sistemas que construo em Bedrock usa agente único com knowledge bases e action groups — e funciona muito bem.
Veredito
Multi-agente é uma solução de engenharia para problemas específicos de engenharia — não uma filosofia de design. Cada agente que você adiciona é uma aposta: você está apostando que o ganho em isolamento, paralelismo, ou especialização adversarial supera o custo em tokens, latência, e complexidade operacional. Na maioria dos casos, essa aposta perde. O critério não é 'o sistema é complexo?' — é 'a complexidade do sistema exige papéis que não podem coexistir num único contexto?' Se a resposta for não, você tem um agente com ferramentas. Se a resposta for sim, você tem um caso legítimo para multi-agente — e agora você sabe qual topologia escolher e por quê. A sofisticação real em sistemas agênticos não está no número de agentes. Está na clareza do objetivo, na qualidade das ferramentas, na robustez da verificação, e na honestidade sobre o que o sistema pode e não pode fazer com confiança.
Post-mortems, ADRs e deep dives de arquitetura no seu email — do jeito que um arquiteto lê.
Sem spam · cancele quando quiser
Pergunte ao Fernando sobre isto
Receba uma resposta focada sobre este estudo do meu assistente de IA, baseada no meu trabalho.
Participe da conversa
Entre para comentar
Confirme seu e-mail para participar — você também recebe a newsletter. Sem senha.