Escolher entre um único agent e um sistema multi-agent para um fluxo de trabalho complexo.
→Opte por um único agent com ferramentas. Divida em múltiplos agents apenas quando os limites das tarefas forem distintos, o contexto transbordar ou diferentes níveis de modelo se adequarem a diferentes sub-tarefas.
Por quê: Cada agent adicionado multiplica a latência, a superfície de erro e o custo de orquestração; a maioria das cargas de trabalho é bem-sucedida com um único agent bem equipado.
O orquestrador deve despachar sub-tarefas heterogêneas para especialistas.
→Use um agent supervisor que decomponha o objetivo, encaminhe para agents trabalhadores com seus próprios prompts e ferramentas, e agregue os resultados.
Por quê: O controle centralizado mantém o estado coerente e torna o limite de decisão auditável, em comparação com um enxame livre para todos.
O fluxo do agent tem ramificações condicionais, loops e distribuição paralela.
→Modele o fluxo de trabalho como um grafo explícito de nós e arestas, em vez de um loop de forma livre, para que o fluxo de controle seja determinístico e retomável.
Por quê: Um grafo torna as ramificações testáveis e permite checkpoints e replay de qualquer nó após uma falha.
As solicitações recebidas variam amplamente em tipo e custo.
→Coloque um agent roteador leve na frente do sistema para classificar a intenção e despachar para o agent ou ferramenta downstream mais barato e capaz.
Por quê: O roteamento evita o custo de modelos de fronteira para solicitações triviais e isola as preocupações por caminho.
Múltiplos agents devem ler e escrever o estado comum do fluxo de trabalho.
→Externalize o estado para um armazenamento compartilhado (chave-valor ou documento) indexado por sessão, em vez de passar a transcrição completa entre os agents.
Por quê: Um armazenamento compartilhado limita o crescimento do contexto e evita cópias divergentes do estado entre os agents.
Projetando agents para escala horizontal.
→Mantenha a computação do agent sem estado; persista a conversação e a memória externamente para que qualquer réplica possa atender a qualquer solicitação.
Por quê: Nós sem estado dimensionam automaticamente de forma limpa e sobrevivem a reinícios de pods sem perder trabalho em andamento.
Um sub-agent ou ferramenta falha no meio do fluxo de trabalho.
→Projete etapas idempotentes com retry/backoff, ações compensatórias para efeitos colaterais e um caminho de fallback ou escalonamento humano quando as retries se esgotarem.
Por quê: Sistemas agentic falham parcialmente; a recuperação deve ser uma preocupação de design de primeira classe, não um adendo.
Sub-agents são desenvolvidos por equipes separadas.
→Defina o contrato de entrada/saída de cada agent como um esquema tipado e trate os agents como serviços por trás de interfaces estáveis.
Por quê: Contratos explícitos permitem que os agents evoluam independentemente e sejam testados unitariamente de forma isolada.
A qualidade da saída do agent é inconsistente em tarefas difíceis.
→Adicione uma etapa de crítico/reflexão que revise o rascunho em relação aos critérios e acione uma retry limitada antes de retornar.
Por quê: A autocrítica detecta erros de forma barata, mas limite as iterações para evitar loops descontrolados e custos.