Coordenação de agentes é o mecanismo que organiza a ação coletiva de agentes autônomos, definindo quem faz o quê, em que ordem e com qual informação.
Você já deve ter montado dois ou três agentes para resolver uma tarefa, viu um travar esperando o outro, outro repetir o mesmo passo, e a conta de tokens subindo sem resultado. O problema raramente está no modelo de linguagem; está em como você desenhou a colaboração.
A coordenação é uma camada separada da inteligência individual, com seus próprios protocolos, topologias e modos de falha. Entender essa camada é o que separa um experimento confuso de um sistema que entrega valor.
- Coordenação de agentes define alocação de tarefas, ordem de execução, troca de informação e resolução de conflito em sistemas multiagentes.
- Os três pilares operacionais são decomposição, alocação e síntese; em sistemas com LLMs, soma-se a validação de saída.
- Nas malhas multiagentes maduras, tokens de coordenação costumam representar entre 40% e 60% do consumo total de inferência.
- Os mecanismos clássicos por trás da orquestração: Contract Net, blackboard e protocolos de comunicação.
- Topologias centralizadas e descentralizadas: critérios para escolher em cada projeto.
- Modos de falha típicos de malha multiagente e como evitá-los antes de escrever código.
- Como saber se um único agente resolve melhor que uma malha inteira?
A camada técnica que decide se seus agentes vão trabalhar em equipe ou se atrapalhar
Muita gente descobre sistemas multiagentes depois de uma frustração: dois agentes autônomos, cada um competente sozinho, juntos geram retrabalho, espera infinita e resultado duplicado. O erro de leitura é achar que inteligência individual resolve trabalho em grupo.
Coordenação não é um recurso do agente, é um sistema de regras que conecta agentes. Ela decide quem inicia, quem espera, quem valida e quem paga o preço quando algo dá errado. Sem essa camada explícita, cada agente otimiza o próprio caminho e a equipe inteira perde.
Antes de escrever prompts, escreva a lista de tarefas e marque quem depende de quem. Se você não consegue desenhar essa dependência, o sistema também não vai conseguir negociar.
O que é coordenação de agentes e por que ela existe?

Coordenação de agentes é o mecanismo que organiza a ação coletiva de agentes autônomos, definindo alocação de tarefas, ordem de execução, troca de informação e resolução de conflito. Ela existe porque autonomia gera interdependência: nenhum agente enxerga o problema inteiro, então alguém precisa combinar as ações.
Em um sistema multiagente, cada agente tem objetivos, percepções e habilidades limitadas. Sem coordenação, eles competem por recursos, repetem trabalho e deixam lacunas. A coordenação é a camada que transforma um bando de especialistas em um time.
Autonomia gera interdependência: o problema que a coordenação resolve

Quando você dá autonomia a um agente, ele decide o que fazer com base no que vê. Mas, em um sistema com vários agentes, essa liberdade individual cria dependências ocultas: um agente precisa da saída do outro, dois querem acessar o mesmo recurso, ou um terceiro age antes da hora e invalida o trabalho alheio. A coordenação existe para tornar essas interdependências explícitas e gerenciáveis.
Sem isso, o sistema entra em comportamentos emergentes indesejados: espera ativa, duplicação, conflito de escrita. O coordenador, humano ou algorítmico, precisa enxergar o fluxo completo e ajustar as ações em tempo real.
Cooperação não é coordenação: a diferença que muda a arquitetura

Cooperação é quando agentes compartilham um objetivo e trocam informações para alcançá-lo. Coordenação é a organização dessa cooperação: quem faz o quê, em que ordem, com qual informação e sob qual restrição. Um time pode ser cooperativo, mas descoordenado, e isso gera retrabalho.
Na prática, cooperação resolve o alinhamento de intenções; coordenação resolve o alinhamento de ações. Você pode ter dois agentes que querem ajudar, mas se ambos escrevem no mesmo arquivo ao mesmo tempo, a cooperação não impede a colisão. A arquitetura precisa de regras de acesso, filas e precedência.
Os três pilares operacionais: decomposição, alocação e síntese
Ver essa foto no Instagram
Todo sistema de coordenação de agentes, do mais clássico ao mais moderno, se apoia em três passos: dividir o problema, decidir quem executa cada parte e juntar os resultados em uma solução coerente. Esses pilares funcionam como um ciclo contínuo durante a execução, não apenas no início do projeto.
Decomposição: dividir o problema em subtarefas com granularidade útil
Decomposição de tarefas é o processo de quebrar um objetivo grande em subtarefas que um agente consegue executar de forma independente. A granularidade certa não é nem tão fina que multiplique a comunicação, nem tão grossa que um agente fique sobrecarregado. Uma boa decomposição reduz dependências e permite paralelismo.
Se a tarefa é escrever um relatório, decompor em coleta de dados, análise e redação faz sentido. Decompor em buscar cada palavra no dicionário não faz. O arquiteto precisa entender as dependências entre as subtarefas antes de distribuí-las.
Alocação: quem faz o quê, por habilidade, custo ou negociação
Alocação de tarefas entre agentes é o mecanismo que escolhe qual agente executa cada subtarefa. Os critérios podem ser habilidade declarada, custo computacional, disponibilidade ou resultado de uma negociação. Em sistemas clássicos, a alocação pode ser estática; em sistemas dinâmicos, ela acontece em tempo de execução.
Quando há muitos agentes e muitas tarefas, a alocação vira um problema de otimização. Leilões e protocolos de negociação, como o Contract Net, surgem para resolver isso de forma descentralizada, permitindo que o agente mais adequado se candidate e assuma a tarefa.
Síntese: reintegrar as soluções parciais em um resultado único
Síntese é o processo de combinar as saídas parciais dos agentes em um resultado final consistente. Não basta colar os pedaços; é preciso resolver conflitos de formato, eliminar redundâncias e garantir que a soma das partes atenda à especificação original.
Em um sistema com LLMs, a síntese frequentemente usa um agente validador que confere a saída contra o contrato. Se a síntese falha, o sistema entrega inconsistências que se propagam para o usuário final, gerando retrabalho e perda de confiança.
Relações entre ações: pré-requisito, incompatibilidade, redundância e complementaridade
Nem todas as tarefas podem ser executadas em paralelo. Algumas dependem de outras, outras conflitam, outras se repetem e outras se potencializam. Entender essas relações é o que permite desenhar um grafo de execução sem becos sem saída.
Quando uma ação depende de outra (pré-requisito)
Uma relação de pré-requisito existe quando a saída de uma tarefa é entrada obrigatória para outra. Por exemplo, a análise de dados só pode começar depois que a coleta termina. Em um grafo acíclico, essa aresta indica ordem estrita. Violar um pré-requisito gera resultados baseados em dados incompletos.
O coordenador precisa rastrear essas dependências e só liberar a execução de uma tarefa quando todos os seus pré-requisitos estiverem satisfeitos. Em sistemas modernos, isso pode ser modelado explicitamente na especificação do fluxo.
Conflitos e redundâncias: o que evitar na orquestração
Duas ações são incompatíveis quando não podem acontecer ao mesmo tempo porque acessam o mesmo recurso ou produzem efeitos contraditórios. Redundância ocorre quando duas tarefas fazem o mesmo trabalho, desperdiçando recursos. Ambas são falhas de coordenação que geram custo sem valor.
A detecção de conflito entre agentes exige que cada agente declare quais recursos pretende usar e quais efeitos produz. Sem isso, o coordenador não tem como impedir dois agentes de gravar no mesmo banco de dados ou de enviar respostas conflitantes ao usuário.
Complementaridade: combinando ações para um resultado maior
Ações complementares são aquelas que, feitas em conjunto, produzem um resultado superior à soma das partes. Um agente coleta dados, outro analisa, outro redige. Nenhum sozinho entrega o valor final, mas coordenados, formam uma cadeia produtiva.
Identificar complementaridades permite desenhar pipelines eficientes e evitar gargalos. O coordenador deve priorizar a ordem que maximiza o uso de resultados parciais, reduzindo tempo total e consumo de tokens.
Modelos clássicos de coordenação: do quadro negro ao mercado de tarefas
Ver essa foto no Instagram
Blackboard: espaço compartilhado de hipóteses (ex.: HEARSAY-II)
Blackboard é uma arquitetura de coordenação centralizada onde vários agentes especialistas leem e escrevem em um quadro negro comum. O quadro guarda hipóteses parciais e resultados intermediários; um mecanismo de controle decide qual especialista é acionado a cada momento. O HEARSAY-II, sistema de reconhecimento de fala dos anos 1970, usou essa ideia para combinar pistas acústicas, sintáticas e semânticas.
Nesse modelo, os agentes não conversam diretamente entre si. Eles observam o quadro, contribuem quando têm algo relevante e deixam que o controlador arbitre os conflitos. É simples de implementar e útil quando o problema é incremental e as contribuições são independentes.
Hierarquia: supervisor e subordinados
Na coordenação hierárquica, um agente supervisor comanda um conjunto de agentes subordinados. O supervisor decompõe a tarefa, distribui as subtarefas, monitora o progresso e faz a síntese. Os subordinados executam e reportam. Essa topologia é intuitiva e fácil de auditar, mas concentra o ponto único de falha.
Em sistemas com muitos níveis, a latência de decisão aumenta e o supervisor pode virar gargalo. Ainda assim, é a topologia mais comum em orquestração multiagente de LLMs, com um coordenador, vários executores e um validador.
Mercado e leilões: o Contract Net Protocol na prática
O Contract Net Protocol é um protocolo de negociação de tarefas inspirado em licitações. Um agente gerente anuncia uma tarefa; os agentes potenciais avaliam se podem executá-la e enviam lances com custo e prazo; o gerente escolhe a melhor proposta e concede o contrato. Foi proposto por Reid Smith em 1980 para negociação de tarefas em rede.
Esse modelo descentraliza a alocação e permite que o sistema se adapte a mudanças de disponibilidade. A FIPA padronizou o protocolo de interação correspondente, tornando-o uma referência para sistemas multiagentes clássicos.
Enxame (swarm): coordenação descentralizada por regras simples
No modelo de enxame, não há coordenador central. Cada agente segue regras locais simples, como manter distância, alinhar direção e seguir vizinhos. A coordenação emerge do comportamento coletivo. Esse modelo é robusto a falhas individuais, mas difícil de projetar para tarefas que exigem sequência estrita.
Em robótica e otimização, enxames resolvem problemas de exploração e cobertura. Em sistemas de LLM, o modelo aparece em votação por maioria ou em múltiplos agentes que geram em paralelo e depois se comparam.
Protocolos de comunicação: como agentes conversam (FIPA-ACL, KQML e A2A)
Para que a coordenação funcione, os agentes precisam de uma linguagem comum. Essa linguagem define não só o conteúdo da mensagem, mas também a intenção: pedir, informar, propor, aceitar, recusar. Os protocolos clássicos nasceram da teoria dos atos de fala.
FIPA-ACL: a linguagem padronizada dos agentes
FIPA-ACL é a linguagem de comunicação entre agentes padronizada pela Foundation for Intelligent Physical Agents. Ela define um conjunto de atos comunicativos, como inform, request, propose, accept e refuse, cada um com semântica formal. A FIPA também publicou protocolos de interação, incluindo versões do Contract Net.
Plataformas como JADE usam FIPA-ACL para trocar mensagens e gerenciar o ciclo de vida de agentes. A padronização permite que agentes de implementações diferentes conversem entre si, algo essencial para sistemas abertos.
KQML: o precursor baseado em atos de fala
KQML, Knowledge Query and Manipulation Language, foi uma linguagem precursora do FIPA-ACL, baseada na teoria dos atos de fala de Searle e Austin. Ela estruturava a mensagem em camadas: conteúdo, comunicação e mensagem. Cada mensagem KQML inclui uma performativa, como ask, tell, achieve ou subscribe.
Embora tenha caído em desuso, suas ideias influenciaram diretamente os protocolos modernos. A separação entre intenção e conteúdo ainda está presente nos formatos de mensagem de agentes atuais.
Protocolos modernos: A2A e a descoberta de capacidades em tempo de execução
Os protocolos modernos de comunicação entre agentes, como A2A e Model Context Protocol, permitem que um agente descubra as capacidades de outro em tempo de execução, em vez de depender de configuração fixa. Isso é crucial em sistemas dinâmicos, onde novos agentes e ferramentas entram e saem constantemente.
Um agente coordenador pode consultar um diretório de serviços, descobrir que existe um executor especializado em análise de sentimento e negociar diretamente com ele. Esse desacoplamento reduz a manutenção e aumenta a flexibilidade da malha.
Arquitetura BDI: crenças, desejos e intenções como base de decisão
Arquitetura BDI modela o agente com três componentes: crenças (o que ele acredita sobre o mundo), desejos (o que ele quer alcançar) e intenções (o que ele está comprometido a fazer agora). Essa separação permite raciocínio deliberativo e revisão de planos quando as crenças mudam.
Como o BDI orienta a coordenação em agentes clássicos
Num sistema BDI, cada agente decide suas intenções com base em suas crenças e desejos. A coordenação emerge quando os agentes comunicam crenças, negociam intenções e ajustam planos. Por exemplo, um agente que descobre que outro já está executando uma subtarefa pode abandonar a intenção duplicada.
O ciclo de raciocínio BDI inclui a revisão de intenções: se uma crença se torna falsa ou um desejo deixa de ser relevante, o agente pode abandonar a intenção corrente. Isso evita que agentes persistam em ações que não fazem mais sentido para o time.
Plataformas que implementam BDI: JADE, SPADE, Jason, JaCaMo
JADE, SPADE, Jason e JaCaMo são plataformas acadêmicas e de referência para sistemas multiagentes BDI. JADE é middleware Java que implementa FIPA-ACL; SPADE é baseado em Python e XMPP; Jason é um interpretador de AgentSpeak; JaCaMo combina Jason, CArtAgO e Moise para programação de organizações.
Essas plataformas permitem construir agentes deliberativos com comunicação assíncrona e protocolos de interação padronizados. Embora não sejam focadas em LLM, seus conceitos de crenças e intenções influenciam o design de agentes modernos com memória e plano de ação.
Sincronização, deadlock e contenção: quando a coordenação trava
Em qualquer sistema concorrente, a coordenação pode falhar. Em malhas de agentes, as falhas típicas não são alucinações, mas travamentos, duplicação e cascata de erro. Reconhecer esses padrões é o primeiro passo para a correção.
Detecção de deadlock: o que fazer quando os agentes esperam uns pelos outros
Deadlock ocorre quando dois ou mais agentes ficam esperando uns pelos outros indefinidamente. Por exemplo, o agente A espera o resultado do B, enquanto B espera o resultado do A. Nenhum dos dois avança. Em um sistema de LLMs, isso aparece quando um coordenador espera a resposta de um executor que está aguardando uma nova instrução do coordenador.
A detecção de deadlock pode ser feita analisando o grafo de dependências: se houver um ciclo, há risco de deadlock. A prevenção exige quebrar o ciclo com tempos limite e mensagens de cancelamento. Na prática, todo wait deve ter timeout.
Trabalho duplicado e cascata de erro: os novos padrões de falha
Trabalho duplicado acontece quando dois agentes executam a mesma subtarefa sem saber um do outro. Isso consome tokens e gera conflito na síntese. Cascata de erro é quando uma saída incorreta de um agente é usada como entrada por outro, propagando e amplificando o erro.
Para evitar duplicação, o coordenador deve manter uma lista única de tarefas com status. Para evitar cascata, cada agente deve validar a entrada antes de processar, e o validador final deve reprovar saídas que não atendam à especificação.
Estratégias para evitar contenção e manter o fluxo
Contenção de recursos ocorre quando muitos agentes querem acessar o mesmo recurso ao mesmo tempo. Filas, semáforos e alocação exclusiva por tarefa são estratégias clássicas. Em sistemas com LLM, limitar o número de chamadas simultâneas ao mesmo modelo e isolar contextos por executor reduz a contenção.
Outra prática é o backoff exponencial: quando um agente encontra conflito, ele espera um tempo aleatório antes de tentar de novo. Isso distribui as tentativas e reduz colisões. Monitorar métricas de latência e taxa de conflito ajuda a ajustar esses parâmetros.
Coordenação de agentes na era dos LLMs: contexto isolado, custo de tokens e validação
Com modelos de linguagem, a coordenação ganhou novos desafios: cada agente consome tokens não só para executar, mas também para coordenar. O contexto de cada agente precisa ser isolado para evitar contaminação. E a validação de saída virou um pilar obrigatório.
Por que coordenação consome tanto token (40% a 60% do total)
Em malhas multiagentes maduras, os tokens gastos em coordenação costumam responder por algo entre 40% e 60% do consumo total de inferência. Isso inclui mensagens entre agentes, negociação, planejamento, monitoramento e validação. Muita gente orça apenas a execução e se surpreende com a conta.
O custo de coordenação cresce com o número de agentes e com a quantidade de interações. Para reduzir, use protocolos enxutos, evite reenviar contexto completo e consolide mensagens. Não é raro que uma malha com 10 agentes gaste mais tokens coordenando do que executando as tarefas.
Contexto isolado por agente: requisito de qualidade, não detalhe
Contexto isolado por agente significa que cada executor tem seu próprio histórico e estado, sem compartilhar informações irrelevantes com os outros. Isso reduz interferência entre agentes, evita confusão de papéis e melhora a qualidade da saída. Em sistemas com LLMs, contexto contaminado é uma das principais causas de desvio de comportamento.
Na prática, cada agente deve receber apenas as informações necessárias para sua tarefa. O coordenador decide o que envia, e o executor mantém sua própria memória de trabalho. Esse isolamento é um requisito de qualidade, não uma otimização opcional.
Validação de saída: o quarto pilar em sistemas com LLM
Validação de saída é o processo de conferir se a saída de um agente atende à especificação antes de integrá-la ao resultado final. Em sistemas clássicos, a síntese já resolvia parte disso. Com LLMs, a saída pode ser incorreta, ambígua ou fora de formato, então um agente validador dedicado se tornou necessário.
O validador pode checar tipos de dados, range de valores, conformidade com schema e até mesmo consistência semântica. Se reprovar, ele devolve ao executor com feedback ou aciona fallback. Esse ciclo de verificação evita que erros se propaguem para o usuário.
Governança e observabilidade: auditando a decisão de um agente coordenador
Quando vários agentes decidem em conjunto, o arquiteto precisa conseguir reconstruir o que houve, por quê e com que custo. Governança de malha de agentes envolve trilhas de auditoria, limites de orçamento e detecção de desvio. Sem isso, fica impossível depurar e justificar decisões.
Trilhas de auditoria e rastreabilidade de decisão
Trilha de auditoria registra cada mensagem trocada, cada tarefa alocada, cada lance em leilão e cada validação. Com essa trilha, você pode reconstruir a conversa completa da malha e identificar onde a coordenação falhou. Em um log linear, isso se perde; em sistemas multiagentes, é essencial.
Ferramentas de observabilidade de agentes capturam não apenas logs, mas também o grafo de dependências, tempos de execução e tokens consumidos por interação. A rastreabilidade de decisão permite responder: por que o agente coordenador escolheu o executor B em vez do A? A resposta deve estar registrada, não inferida.
Limite de orçamento por subtarefa e detecção de desvio
Definir limite de orçamento por subtarefa impede que um agente gaste tokens demais em uma atividade de baixo valor. O coordenador monitora o consumo e interrompe a execução se o limite for ultrapassado. Isso é governança de custo aplicada à coordenação.
Detecção de desvio compara o comportamento atual do agente com a especificação ou com o padrão esperado. Se o agente sair do trilho, o sistema gera alerta e pode acionar rollback ou intervenção humana. Essa malha de controle fecha o ciclo de confiança.
Eu preciso confessar uma coisa: já perdi uma tarde inteira tentando descobrir por que dois agentes não saíam do lugar. O log mostrava os dois esperando. O código estava certo, os prompts estavam certos. O problema era o desenho: uma dependência circular entre tarefas que eu não tinha percebido no papel. Foi aí que entendi que coordenação de agentes não é um detalhe de implementação, é a espinha dorsal do sistema.
Na prática, a diferença entre um time enxuto que resolve e uma malha que só consome token é o quanto você pensou nas interações antes de ativar os agentes. Vamos ao que costuma dar errado e como evitar.
Dicas práticas para aproveitar coordenação de agentes no dia a dia
Se você está montando uma malha com agentes de linguagem, comece pequeno. Dois ou três agentes bem coordenados entregam mais que dez desorganizados. Um bom ponto de partida é o padrão coordenador, executor e validador: o coordenador desenha o grafo, o executor resolve cada nó e o validador confere a saída contra a especificação.
Outra aplicação comum no mercado brasileiro é a triagem de atendimento: um agente classifica a demanda, outro consulta base de conhecimento, um terceiro redige a resposta. A coordenação aqui é mais sobre roteamento do que sobre criatividade.
Uma curiosidade histórica: os mesmos problemas de coordenação que você vê hoje com LLMs foram estudados por décadas em robótica e sistemas distribuídos. O Contract Net, por exemplo, surgiu para negociar tarefas em rede antes da internet comercial. Os mitos de que multiagente é coisa de laboratório ou de big tech não se sustentam: times pequenos conseguem adotar padrões simples e obter ganho real com paralelização.
Erros comuns e como evitá-los
O erro mais frequente é usar vários agentes para um problema linear, onde uma única cadeia de prompts resolveria. Se as tarefas são sequenciais e sem paralelismo, um agente único com instruções claras é mais barato e mais simples.
Outro erro é não definir o protocolo de comunicação. Agentes que falam em formato livre geram ambiguidade e retrabalho. Use mensagens estruturadas, com papel, tarefa e payload claros. E não se esqueça do timeout: sem ele, um agente esperando outro vira deadlock silencioso.
Por fim, evite compartilhar todo o contexto entre todos. Cada executor deve receber apenas o necessário. Isso reduz custo de tokens e melhora a qualidade, como vimos na fase anterior.
O que fazer hoje para começar com coordenação de agentes
Guia Rápido · Pontos-Chave
- 01A Escolha Certa: Se o fluxo de tarefas for linear e sem paralelismo, um único agente com instruções bem definidas custa menos e entrega mais previsibilidade do que uma malha inteira.
- 02Ponto de Atenção: Cooperação não elimina a necessidade de coordenação. Agentes que querem ajudar podem se atropelar; regras de ordem e acesso são obrigatórias.
- 03Na Prática: Desenhe as subtarefas como nós e as dependências como setas em um papel. Se surgirem ciclos, você encontrou um deadlock antes de escrever o primeiro prompt.
Outra camada que costuma passar despercebida é o custo real da coordenação: em malhas maduras, os tokens de coordenação frequentemente respondem por 40% a 60% do consumo total de inferência. Quem planeja apenas a execução estoura o orçamento no primeiro dia.
A coordenação de agentes não é um luxo de big tech. É uma disciplina de arquitetura que qualquer profissional de tecnologia pode aplicar, desde que entenda as regras do jogo.
Comece pequeno, desenhe o fluxo, defina papéis e valide cada saída. A diferença entre um sistema que trava e um que entrega está na clareza das interdependências que você decide gerenciar.
Não existe bala de prata. Existe desenho honesto, protocolos claros e a coragem de simplificar quando um agente único resolve melhor.
O que pouca gente sabe: Um teste de mesa de coordenação, desenhando as subtarefas como nós e as dependências como setas, revela se a coordenação é dispensável. Se o desenho não tiver nenhuma aresta cruzando, um agente único basta. Se surgirem ciclos, você achou o deadlock antes de gastar token. Essa checagem separa projeto de experimento.

