Coordenação
Times de agentes: Roteador, Orquestrador, Paralelo, Sub-Workflow, Debate, Hub de Mensagens, Sequencial e Votação.
Atualizado em 01 de set. de 2026
Os cards de coordenação organizam vários agentes num só workflow: roteando, paralelizando, debatendo e votando. Vários deles aceitam participantes estáticos (definidos no modal) ou dinâmicos (vindos de uma coleção do Início via {{colecao.* | filtros}}).
router · classifica e direcionaUm classificador com LLM que lê a mensagem e escolhe um dos caminhos conectados (route-N). Descreva bem cada rota — é o critério da decisão.
namestringpadrão: 'router'Nome do nó (sanitizado).
modelstringModelo que decide a rota. Vazio = modelo padrão do agente.
routesobjectobrigatórioPor handle: `{target_node_id, target_name, description}` — a descrição orienta a escolha.
default_routestringRota usada quando a confiança fica abaixo do limiar.
confidence_thresholdnumberpadrão: 0.7Confiança mínima para aceitar a decisão do modelo.
include_historybooleanpadrão: trueConsidera o histórico da conversa ao rotear (não só a última mensagem).
routing_promptstringInstruções extras de roteamento.
orchestrator · divide e delegaQuebra a tarefa em subtarefas e as delega aos workers conectados nos slots, iterando até concluir. Bom para tarefas compostas ("pesquise, compare e escreva o relatório").
namestringpadrão: 'Orchestrator'Nome do nó.
modelstringModelo do orquestrador.
orchestrator_promptstringComo planejar e dividir o trabalho.
worker_promptstringPrompt base aplicado aos workers.
max_iterationsnumberpadrão: 10Rodadas máximas de planejamento.
worker_max_iterationsnumberpadrão: 10Rodadas máximas de cada worker.
parallel · ramos simultâneosDispara os ramos conectados (branch-N) ao mesmo tempo e agrega os resultados. Também conecta como ferramenta a um Agent — o modelo decide quando disparar o paralelismo. Cada ramo pode receber variáveis próprias.
namestringpadrão: 'parallel'Nome do nó (sanitizado).
instructionstringO que cada ramo deve fazer com a entrada.
branchesobjectobrigatórioPor handle: `{target_node_id, target_name, variables[]}` — variáveis injetadas naquele ramo.
aggregation_modeconcat | merge | first | votepadrão: concatComo juntar os resultados: concatenar, mesclar, o primeiro que terminar, ou votar no melhor.
wait_allbooleanpadrão: trueEspera todos os ramos antes de agregar.
timeout_secondsnumberTeto de espera pelos ramos.
sub_workflow · workflow dentro de workflowExecuta outro agente publicado como um passo deste workflow, mapeando variáveis na entrada e na saída.
namestringpadrão: 'Sub-Workflow'Nome do nó.
sub_workflow_idstringobrigatórioO agente a executar.
input_mappingobjectDe variável local → variável do sub-workflow.
output_mappingobjectDe variável do sub-workflow → variável local, ao voltar.
debate · perspectivas em conflitoVários agentes discutem um tema em rodadas, cada um vendo as falas anteriores, com síntese ao final. Participantes fixos no modal ou dinâmicos de uma coleção.
namestringpadrão: 'debate'Nome do nó (sanitizado).
debate_topicstringobrigatórioO tema. Aceita `{{variaveis}}` (ex.: `Analisem o caso: {{caso}}`).
max_roundsnumberpadrão: 3Rodadas de discussão.
consensus_thresholdnumberpadrão: 0.7Grau de acordo que encerra o debate antes do teto.
moderator_promptstringInstruções do moderador/síntese.
agent_behaviorstringDiretriz de comportamento anexada a todos os participantes.
debate_agents{name, system_prompt}[]Modo estático: os participantes e suas personas.
debate_agents_sourcestringModo dinâmico: fonte `{{colecao.* | filtros}}`.
agent_name_fieldstringpadrão: nameCampo do item que dá o nome do participante (dinâmico).
agent_prompt_templatestringTemplate de persona com `{{campos}}` do item (dinâmico).
msg_hub · conversa privadaCria um canal onde só os participantes listados veem as mensagens uns dos outros — conversas paralelas invisíveis para o resto do workflow (o padrão MsgHub do AgentScope).
namestringpadrão: 'Msg Hub'Nome do nó.
hub_idstringpadrão: geradoIdentificador do canal.
participantsstring[]obrigatórioNomes dos agentes que participam.
announcementstringMensagem de abertura anunciada no canal.
inherit_parent_hubbooleanpadrão: falseOs participantes enxergam as mensagens do canal pai.
share_to_parentbooleanpadrão: falseAs mensagens deste canal sobem para o canal pai.
sequential · um após o outroExecuta uma fila de agentes em ordem, cada um podendo ver o que os anteriores produziram. Participantes estáticos (com modelo por participante) ou dinâmicos de uma coleção, com filtros e mapeamento de modelos.
namestringpadrão: 'sequencia'Nome do nó (sanitizado).
source_modedynamic | staticobrigatórioDe onde vêm os participantes.
pass_contextbooleanpadrão: trueCada participante vê as respostas dos anteriores.
agent_behaviorstringDiretriz comum a todos.
static_participants{id, name, instructions, model?}[]Modo estático: a fila, com persona e modelo opcionais por participante.
agents_sourcestringModo dinâmico: fonte `{{colecao.* | filtros}}`.
agent_name_fieldstringpadrão: nameCampo do item que dá o nome (dinâmico).
agent_prompt_templatestringTemplate de persona com `{{campos}}` do item (dinâmico).
model_mapping / default_modelobject / stringModelo por participante e fallback (dinâmico).
filters{field, operator, value}[]Filtra os itens da coleção (`equals`, `contains`, `not_equals`).
max_participantsnumberTeto de participantes por execução.
vote · decisão coletivaCada votante escolhe em segredo entre as opções; o resultado sai com contagem, vencedor e maioria. O on_result grava o vencedor de volta numa variável ou coleção — é o que fecha o ciclo com o While e o Se/Senão.
namestringpadrão: 'vote'Nome do nó (sanitizado).
vote_promptstringpadrão: 'Cast your vote.'A instrução de voto. Aceita `{{variaveis}}`.
vote_agentsstring[]Modo estático: os votantes.
vote_agents_sourcestringModo dinâmico: `{{colecao.* | filtros}}` ou `{{no-debate.participants.*}}` para reusar os participantes de um Debate.
voter_id_field / voter_name_fieldstringpadrão: id / nameCampos do item que dão id e nome do votante (dinâmico).
voter_prompt_templatestringPersona do votante com `{{campos}}` do item; sem template, o campo `instructions` do item vira a persona.
vote_optionsstring[]Modo estático: as opções.
vote_options_sourcestringModo dinâmico: opções vindas de coleção (`option_value_field`/`option_label_field`).
exclude_selfbooleanVotante não pode votar em si (opções dinâmicas).
require_majoritybooleanpadrão: falseExige maioria absoluta para declarar vencedor.
allow_abstainbooleanpadrão: falsePermite abstenção.
on_resultobject`{update_collection, match_field, update_field, update_value}` — grava o vencedor. Se o alvo é uma variável-objeto (ex.: `votos`), incrementa a chave do vencedor.
on_tieobject`{action: none | revote | random, max_retries, reduce_options, fallback}` — o que fazer em empate.
agent_behaviorstringDiretriz comum aos votantes.
O padrão júri
Debate + Votação + While: os jurados debatem (debate-jur), votam (vote_agents_source: {{debate-jur.participants.*}}), o on_result incrementa {{votos}} e o While decide se há nova rodada ({{votos.culpado}} < 2 AND ...). É exatamente o template "Tribunal do Júri" da plataforma.

