Multi-agent patterns
Implemente um supervisor que recebe duas estimativas de prazo e aplica uma política explícita para o conflito. Depois, acrescente um planner e um reviewer locais que trabalham sobre contratos verificáveis. O laboratório usa dados fictícios e não envia propostas comerciais. Sua entrega será o histórico de contribuições e a razão da decisão ou da pendência.
Você vai testar concordância, divergência e premissas incompatíveis. O objetivo é demonstrar que a coordenação termina e que a regra de resolução pode ser revisada por outra pessoa. Não basta produzir uma frase final. Um fluxo com vários agentes precisa apresentar quem recebeu qual trabalho e qual evidência justificou a conclusão.
AgentesAo terminar esta aula
- Responsabilidades devem ser visíveis nos contratos e no estado.
- Uma divergência com premissas diferentes requer correção, não votação.
- Limites de rodada tornam a revisão um mecanismo controlado.
Antes de continuar: Leitura: Multi-agent patterns
Desenhe responsabilidades antes das chamadas
FundamentosCrie uma solicitação com item I2, destino Cuiaba e data de referência. Defina o planner como produtor de duas subtarefas de consulta, e não como autorizado a enviar proposta. O executor devolve estimativas com esses mesmos campos e fonte. O reviewer compara campos obrigatórios e premissas. O supervisor decide se os resultados podem ser combinados e aplica a regra de autoridade. Essa divisão permite localizar uma falha: ausência de destino vem do contrato, divergência legítima vem das fontes e envio indevido vem da fronteira de efeito.
Salve coordenacao.cjs e execute as duas estimativas do exemplo. Registre que a fonte contratual venceu e conserve ambas as contribuições no histórico. Mude a fonte da primeira para estimativa e execute novamente. Agora o resultado deve ficar pendente. Essa mudança demonstra que o supervisor não está escolhendo o primeiro elemento ou o menor número por acidente. Guarde a regra no README como uma decisão do caso e descreva em que circunstâncias ela deveria ser revista.
Provoque conflitos que não podem ser votados
FundamentosAltere destino de uma contribuição para outra cidade. O sistema deve rejeitar premissas diferentes antes da escolha por fonte. Altere o item e confirme a mesma defesa. Acrescente data ao contrato e crie uma observação antiga; estabeleça uma política de validade para recusá-la ou solicitar nova consulta. Não invente um prazo universal de validade: escolha uma regra didática e explique que o sistema real depende da atualização da fonte. A evidência é a correspondência entre regra definida e comportamento observado.
Faça o reviewer devolver um defeito específico, como data ausente, e limite a correção a uma rodada. O executor deve preencher o campo com uma observação real ou declarar que não possui a informação. Se ele apenas copia a data atual, o formato pode passar enquanto a evidência continua falsa. Esse teste reforça que validação estrutural e validação de fonte são diferentes. Depois da rodada permitida, o supervisor encerra pendente; ele não pede revisões até obter uma aprovação por cansaço.
Compare handoff e especialista como ferramenta
FundamentosDescreva duas versões do atendimento: uma em que o supervisor consulta o especialista jurídico e sintetiza a resposta; outra em que transfere o turno para ele fazer perguntas adicionais. Escreva quem será o agente ativo depois da contribuição e qual contexto atravessa a fronteira. Use um objeto de estado com agenteAtual para tornar a transferência visível na simulação. Em ambos os desenhos, a ferramenta de envio da proposta permanece restrita. Alterar o agente ativo não altera as permissões do usuário.
Acrescente um limite de chamadas e um limite de rodadas de revisão ao supervisor. Simule um planner que devolve a mesma subtarefa sem progresso e confirme o encerramento por orçamento. Conte consultas concluídas, não apenas mensagens trocadas. Para uma futura versão com modelos, compare a solução centralizada com a multiagente usando os mesmos casos. Registre custo real somente quando houver execução; a simulação não permite estimar tokens ou afirmar melhoria de qualidade de um provedor.
Produza uma decisão revisável
FundamentosApresente o desenho de responsabilidades, os contratos e os quatro resultados: regra aplicada, pendência, premissa incompatível e orçamento. Explique por que a fonte contratual foi escolhida e qual aprovação seria necessária antes de enviar uma proposta real. A decisão arquitetural deve reconhecer o custo de coordenação e justificar o ganho de separar consulta e revisão. Se um controlador simples resolver os mesmos casos com clareza e menos chamadas, essa é uma conclusão válida, desde que baseada nas evidências comparáveis.
Exercício aplicado
Dois especialistas estimam três e cinco dias para I2 em Cuiaba. O supervisor deve verificar as premissas e preferir a fonte contratual quando disponível; caso contrário, deve declarar pendência.
- Execute o conflito nominal e registre o critério.
- Remova a fonte prioritária e observe pendência.
- Altere destino e confirme rejeição de premissas.
- Acrescente planner/reviewer com uma rodada de correção e limite de chamadas.
Abrir resolução comentada
O supervisor normaliza o caso, valida premissas e aplica a fonte prioritária. A contribuição sem prioridade permanece no histórico e não é apagada. Quando a fonte prioritária falta, o fluxo encerra pendente, tornando a insuficiência de evidência visível. A incompatibilidade de destino lança um erro antes de qualquer escolha de prazo.
Planner e reviewer acrescentam valor somente se produzirem plano consumível e defeitos específicos. Limitar uma rodada de correção impede looping de aprovação. O exercício de handoff deve mostrar a mudança de agente ativo, enquanto o especialista como ferramenta devolve ao supervisor. Nenhum caminho envia uma proposta externa no protótipo.
function resolver(a,b) {
if (a.item!==b.item || a.destino!==b.destino) throw new Error('premissas diferentes');
const escolhido=[a,b].find(x=>x.fonte==='contratual');
if (!escolhido) return {status:'pendente',motivo:'fonte prioritaria ausente',contribuicoes:[a,b]};
return {status:'recomendacao',dias:escolhido.dias,criterio:'fonte contratual',contribuicoes:[a,b]};
}
const a={item:'I2',destino:'Cuiaba',dias:3,fonte:'contratual'};
const b={item:'I2',destino:'Cuiaba',dias:5,fonte:'estimativa'};
console.log(resolver(a,b));
console.log(resolver({...a,fonte:'estimativa'},b));
try { resolver(a,{...b,destino:'Outra'}); } catch(e) { console.log(e.message); }Como conferir seu resultado
- A decisão conserva as duas contribuições e explica o critério.
- Dados de casos diferentes não são combinados.
- A revisão termina por sucesso, pendência ou orçamento explícito.
Aplique em um problema novo
Primeiro resolva sem consultar a resposta. Explique suas decisões e guarde a evidência. A conclusão de leitura é independente desta autoavaliação.
Confira seus pré-requisitos
- Distinguir router/supervisor/reviewer.
- Definir prioridade de evidência.
Supervisor recebe item I8/destino D, fontes: estimativa 2 dias e contrato 6 dias para outro destino E. Reviewer tem uma rodada; a correção remove a fonte contratual sem substituição. Resolva.
Conferir raciocínio e critérios de domínio
Contrato de E é descartado por premissa diferente antes da prioridade; fonte contratual não vence quando fala de outro destino.
Sem contrato válido, a decisão final é pendente. A estimativa 2 pode aparecer como hipótese, não prazo garantido.
O reviewer aponta o destino divergente; após uma rodada sem evidência nova, o workflow encerra pendente. Outra rodada idêntica só aumenta custo.
Evidências para autoavaliação ou revisão por pares
- Compatibilidade da fonte: Contrato de E é descartado por premissa diferente antes da prioridade; fonte contratual não vence quando fala de outro destino.
- Decisão sustentada: Sem contrato válido, a decisão final é pendente. A estimativa 2 pode aparecer como hipótese, não prazo garantido.
- Reviewer e parada: O reviewer aponta o destino divergente; após uma rodada sem evidência nova, o workflow encerra pendente. Outra rodada idêntica só aumenta custo.
Um erro frequente
Reviewer sempre aprovando melhora qualidade.
Reviewer precisa apontar defeitos e evidência de correção.
Teste sua compreensão
Responda com suas palavras antes de abrir o comentário. Saber explicar uma decisão é parte do domínio.
1. Maioria entre agentes prova o prazo?
Não. É necessário comparar premissas e fontes.
Agentes podem compartilhar a mesma evidência errada.
2. O que distingue router de supervisor?
O router encaminha; o supervisor coordena contribuições e conserva a decisão.
O comportamento concreto importa mais que o nome do padrão.
3. Um reviewer deve revisar sem limite?
Não. Defina rodadas e critérios de progresso.
Repetições sem evidência nova aumentam custo sem garantir correção.
Seu progresso fica salvo neste navegador. Concluir a leitura não substitui demonstrar o domínio nos exercícios.
Referências e aprofundamento
Documentação oficial e trabalhos originais. As referências registram o escopo e as limitações para você conferir o que sustentam.
- Subagents
LangChain • consulta: 2026-10-06
AgentesSupervisor, router, especialistas, contexto isolado/forked e contratos de entrada/saída.
Limites: Isolamento reduz contexto mas pode repetir trabalho; não compartilhar histórico e segredos sem necessidade.
- Workflows and agents
LangChain • consulta: 2026-10-06
AgentesAutomaçãoRouting, parallelization, orchestrator-workers e evaluator-optimizer.
Limites: Planner/executor/reviewer é adaptação didática dos padrões; limitar ciclos e avaliar contra baseline.
- Orchestration and handoffs
OpenAI • consulta: 2026-10-06
OpenAIAgentesHandoffs transferem responsabilidade; agents-as-tools mantêm o gestor responsável; especialistas e custos de divisão.
Limites: Não demonstra superioridade universal de múltiplos agentes; medir qualidade, custo e latência.
- Graph API overview
LangChain • consulta: 2026-10-06
APIsStateGraph, nós, arestas, condicionais e reducers para combinar atualizações.
Limites: Reducers resolvem combinação de dados; conflitos semânticos de agentes precisam de regra editorial/negocial explícita.