Use vários agentes somente quando o trabalho tiver responsabilidades, ferramentas, fronteiras de contexto ou ramos paralelos realmente diferentes e que se beneficiem de responsáveis independentes. Mantenha um fluxo determinístico ou um único agente quando a tarefa for curta, o mesmo contexto servir a todas as etapas e as falhas forem fáceis de diagnosticar. Adicione o orquestrador por último: a complexidade precisa produzir melhorias mensuráveis em confiabilidade, latência ou facilidade de manutenção.
Se a especialização supera uma referência mais simples
Roteador executável com degradação contida
Contrato tipado da tarefa e casos representativos
- P1A sequência é conhecida?Sim → fluxo tipado
- P2Um contexto dá conta?Sim → agente único
- P3Os ramos se especializam?Sim → multiagente
- CONTROLEA falha fica contida?Não → simplificar
Espectro de arquitetura
Comece pelo fluxo; adicione autonomia onde a incerteza exigir#
- 01
Fluxo determinístico
Sequência conhecida, entradas tipadas, ramos explícitos e falha previsível.
- 02
Agente único
Um contexto, várias ferramentas e escolha dinâmica dentro de uma tarefa limitada.
- 03
Sistema multiagente
Contextos ou ferramentas especializados, ramos independentes, transferências e síntese explícitas.
Sinais positivos
Quatro razões para a especialização valer a pena#
A especialização ajuda quando um componente pesquisa, outro calcula, outro verifica política e um último sintetiza evidências. Também pode isolar ferramentas sensíveis ou paralelizar buscas independentes.
A fronteira precisa ser contratual: entrada, saída, acesso a ferramentas, limite de tempo, tentativas e responsável pela falha. “Deixe os agentes conversarem” não é arquitetura.
Padrões de coordenação
Escolha o padrão antes de escolher a ferramenta#
- 01
Cadeia de instruções
Use uma sequência fixa quando cada etapa transforma e valida o resultado anterior.
- 02
Paralelismo com agregação
Execute análises independentes em conjunto e agregue apenas evidências que atendam ao mesmo contrato.
- 03
Roteador e especialistas
Classifique o pedido, envie-o a um especialista limitado e mantenha uma alternativa explícita.
- 04
Avaliador e otimizador
Um componente propõe e outro critica com uma rubrica, sempre com limite rígido de iterações.
Padrão sanitizado de produto
Um sistema de análise conversacional é mais que chat#
Em um produto de análise conversacional em produção, um pedido pode exigir classificação de intenção, recuperação de dados, cálculo estatístico, comparação e explicação. A interface parece uma conversa, mas as responsabilidades por trás dela são diferentes.
O padrão útil não é a quantidade de agentes. É resolver cedo caminhos baratos ou determinísticos, preservar continuidade em perguntas seguintes e exigir que a resposta final carregue as evidências produzidas pelos especialistas.
Contenção de falha
Projete transferências para falhas parciais#
Cada agente adicional cria outro lugar para perder contexto, estourar o tempo ou produzir contradição. Dê ao orquestrador um prazo, um orçamento de novas tentativas e uma resposta degradada.
Rastreie cada transferência e resultado de ferramenta com identificadores estáveis. Se a resposta estiver errada, o time precisa separar roteamento ruim, evidência ruim, saída ruim do especialista e síntese ruim.
Experimento de arquitetura
Faça o desenho complexo superar uma referência simples#
Execute o mesmo conjunto representativo no fluxo tipado, na versão com agente único e no desenho multiagente. Compare primeiro conclusão da tarefa e falhas críticas; depois examine latência p95, custo por tarefa concluída, intervenção humana e proporção de execuções que terminam de forma degradada, mas útil.
Promova o desenho multiagente somente quando o ganho persistir em execuções repetidas e puder ser atribuído à especialização ou à contenção. Se a qualidade empatar enquanto latência, custo e diagnóstico pioram, o desenho simples é o resultado — não um protótipo que faltou superar.
Execute a referência simples, o especialista e a falha
Esta implementação sanitizada e sem dependências extrai um padrão usado em um sistema conversacional de produção: caminhos baratos continuam simples, trabalho especializado carrega evidência e falhas degradam de modo explícito.
from dataclasses import dataclass
import json
@dataclass(frozen=True)
class Request:
intent: str
question: str
def generalist(request: Request) -> dict:
return {"path": ["generalist"], "answer": "baseline", "evidence": []}
def data_specialist(request: Request) -> dict:
if "timeout" in request.question.lower():
raise TimeoutError("data specialist timed out")
return {
"path": ["router", "data_specialist"],
"answer": "compare two validated segments",
"evidence": ["segment_a", "segment_b"],
}
def route(request: Request) -> dict:
if request.intent != "compare_segments":
return generalist(request)
try:
return data_specialist(request)
except TimeoutError:
return {
"path": ["router", "data_specialist", "safe_fallback"],
"answer": "comparison unavailable",
"evidence": [],
"degraded": True,
}
cases = [
Request("small_talk", "hello"),
Request("compare_segments", "compare the top two"),
Request("compare_segments", "force timeout"),
]
print(json.dumps([route(case) for case in cases], indent=2))python routing_baseline.pySaída esperada
[
{
"path": ["generalist"],
"answer": "baseline",
"evidence": []
},
{
"path": ["router", "data_specialist"],
"answer": "compare two validated segments",
"evidence": ["segment_a", "segment_b"]
},
{
"path": ["router", "data_specialist", "safe_fallback"],
"answer": "comparison unavailable",
"evidence": [],
"degraded": true
}
]Falha exercitada. O terceiro caso força um estouro de tempo no especialista. O roteador devolve estado degradado visível em vez de inventar a comparação.
Limite de produção. O exemplo omite de propósito instruções internas, regras de roteamento, modelos, memória, telemetria e controles calibrados de produção.
Regra de decisão
Pergunte o que a complexidade entrega#
- Um fluxo tipado resolve a tarefa?
- Um agente possui contexto e isolamento suficientes?
- As responsabilidades são realmente diferentes?
- Os ramos podem rodar independentes ou em paralelo?
- Cada transferência é tipada e observável?
- Cada especialista tem responsável pela falha?
- O sistema degrada quando um ramo falha?
- As avaliações compararão o desenho simples e o complexo?
Limite
O que a arquitetura multiagente não garante#
PODE
- Separar responsabilidades e ferramentas
- Paralelizar trabalho independente
- Criar etapas de revisão e síntese
- Conter algumas falhas atrás de contratos
NÃO PODE
- Corrigir um processo mal definido
- Eliminar custo de coordenação e latência
- Garantir colaboração emergente
- Substituir avaliações por um diagrama
Fontes primárias
Fontes primárias
- Anthropic: Building Effective AI Agents
Padrões de fluxos e agentes com simplicidade como restrição.
- AutoGen: Enabling Next-Gen LLM Applications
Estrutura pública para conversas multiagente.
- OpenTelemetry GenAI attributes
Vocabulário de rastros de execução para modelos e ferramentas.
Projete a menor arquitetura que funciona