Orquestrador e trabalhadores
Coordenação hierárquica.
Orquestrador e trabalhadores é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.
O padrão do orquestrador
No padrão de orquestrador e executores, um único agente orquestrador é responsável pelo plano e pelo objetivo; os agentes executores realizam subtarefas com escopo definido e informam os resultados. O orquestrador divide, distribui, integra e decide quando a tarefa está concluída.
- Orquestrador: planejamento, roteamento, síntese e fluxo de controle.
- Executores: execução focada dentro de um contrato rigoroso.
Essa hierarquia concentra o julgamento em um só lugar e distribui o trabalho paralelizável entre muitos agentes.
Separação entre planejamento e execução
A disciplina fundamental é manter o planejamento separado da execução. O orquestrador raciocina sobre a estratégia usando um contexto pequeno e de alto nível; os executores trabalham com um contexto detalhado, porém restrito. Misturar os dois recria o generalista sobrecarregado.
O orquestrador raramente deve lidar diretamente com a saída bruta das ferramentas — ele raciocina sobre os resumos dos executores.
plan = orchestrator.decompose(goal) # high-level
results = [worker.run(sub) for sub in plan] # detailed, scoped
final = orchestrator.integrate(results) # over summariesA qualidade da divisão determina tudo
O sistema só é tão bom quanto a divisão feita pelo orquestrador. As subtarefas devem ser suficientemente independentes para permitir paralelismo, ter escopo definido o bastante para uma transferência clara e, em conjunto, cobrir toda a tarefa. Faça o orquestrador emitir um plano explícito que possa ser inspecionado antes de qualquer executor usar run.
- Subtarefas independentes -> execução paralela.
- Cobertura completa -> nenhuma lacuna na resposta final.
plan = {
'subtasks': [
{'id': 1, 'goal': '...', 'inputs': [...], 'depends_on': []},
{'id': 2, 'goal': '...', 'inputs': [...], 'depends_on': [1]}
]
}Distribua com contratos rigorosos
Cada distribuição fornece a um executor exatamente seu objetivo, suas entradas e o esquema de saída esperado — nada além disso. Um executor que conhece apenas sua parte não pode se distrair com o objetivo mais amplo e retorna um formato previsível que o orquestrador pode usar com integrate.
A mensagem de distribuição é um contrato: entrega clara, formato claro e critérios claros de conclusão.
dispatch = {
'goal': 'Summarize doc 7 risks',
'context': doc7,
'output_schema': {'risks': [{'text': str, 'severity': str}]},
'done_when': 'all risk clauses covered'
}Isolamento de contexto entre executores
Por padrão, os executores não devem ver todo o contexto uns dos outros. O isolamento impede que erros ou alucinações de um executor contaminem outro e mantém pequena e armazenável em cache a instrução de cada executor. O orquestrador é o único componente com a visão global.
Compartilhe informações entre executores somente por meio dos resumos revisados pelo orquestrador, nunca por comunicação direta e bruta.
Subtarefas paralelas versus sequenciais
Subtarefas independentes usam run em paralelo para reduzir a latência; as dependentes devem respeitar a ordem. O plano do orquestrador codifica um grafo de dependências, e o ambiente de execução organiza as tarefas de acordo com ele — distribua as folhas independentes e depois faça a junção.
- Distribuição: envie todas as subtarefas prontas simultaneamente.
- Junção: aguarde as dependências antes de distribuir a tarefa dependente.
def schedule(plan):
ready = [t for t in plan if not t['depends_on']]
run_parallel(ready)
# then unlock tasks whose deps are now doneIntegração e resolução de conflitos
Integração não é concatenação. O orquestrador deve reconcile saídas de executores que se sobreponham, sejam contraditórias ou tenham baixa confiança em um único resultado coerente, decidindo em quais confiar e destacando os conflitos não resolvidos.
Dê ao orquestrador uma etapa explícita de reconciliação com regras: prefira a maior confiança, sinalize contradições e solicite um novo run quando a cobertura estiver incompleta.
merged = orchestrator.reconcile(
results,
rules='prefer higher confidence; flag contradictions; re-dispatch on gaps'
)O orquestrador como controlador
O orquestrador também é responsável pelo fluxo de controle: decidir quando parar, quando repetir uma tentativa com um executor que falhou, quando refazer o plano e quando escalar o problema. Isso faz dele o local ideal para impor limites — número máximo de iterações, gasto máximo e profundidade máxima — evitando ciclos intermináveis.
Sem um orquestrador controlador, os sistemas multiagentes entram em espiral.
if iterations > MAX_ITERS or spend > BUDGET:
return orchestrator.best_effort_answer()Divisão recursiva
Um executor pode ser ele próprio um orquestrador de um subproblema, formando uma hierarquia. Isso lida com tarefas profundas, mas acrescenta latência e profundidade à propagação de erros. Limite a profundidade da recursão e exija que cada nível retorne um resumo claro, para que os níveis superiores nunca se afoguem em detalhes dos níveis inferiores.
Contenção de falhas
Projete o sistema para que a falha de um único executor degrade o resultado de forma controlada. O orquestrador deve detectar uma saída malformada ou vazia do executor, repetir a tentativa com um contrato esclarecido e recorrer a um fallback em vez de falhar. Os executores falham de forma isolada; o orquestrador absorve a falha e a contorna.
- Valide cada retorno de executor em relação ao seu esquema.
- Nova tentativa e fallback, nunca propague a falha bruta para níveis superiores.
def collect(worker, dispatch):
out = worker.run(dispatch)
if not valid(out, dispatch['output_schema']):
out = worker.run(clarify(dispatch))
return out or fallback(dispatch)Um plano de orquestração
O plano é o seguinte: o orquestrador divide a tarefa em um plano de grafo de dependências que pode ser inspecionado, distribui contratos rigorosos a executores isolados, usa run em paralelo para subtarefas independentes, valida e reconcilia os resultados com regras explícitas de conflito, impõe limites e condições de parada e contém as falhas dos executores com nova tentativa seguida de fallback. O julgamento permanece centralizado; o trabalho permanece distribuído.
Verificação rápida
Você está projetando um sistema de orquestrador e trabalhadores para uma tarefa de pesquisa com vários subtópicos independentes.
Recapitulação: orquestrador e trabalhadores
Concentre o planejamento, o roteamento, a integração e o controle em um único orquestrador; delegue a execução focada a trabalhadores isolados, sob contratos rigorosos. Decomponha o trabalho em um grafo de dependências inspecionável, execute subtarefas independentes em paralelo, concilie resultados com regras explícitas de conflito, imponha orçamentos e condições de parada e contenha falhas dos trabalhadores com validação–nova tentativa–alternativa. O orquestrador raciocina sobre resumos, nunca sobre conversas cruzadas brutas, mantendo a hierarquia coerente e controlável.
Perguntas Frequentes
A aula “Orquestrador e trabalhadores” é grátis?
Sim — o texto completo de “Orquestrador e trabalhadores” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que vou aprender em “Orquestrador e trabalhadores”?
Coordenação hierárquica. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Prompt Engineering?
Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Orquestrador e trabalhadores”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Prompt Engineering?
Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Papéis e especialização
- Orquestrador e trabalhadores
- Comunicação entre agentes
- Agentes de debate e votação