Como Funciona a Delegação Automática de Tarefas Entre Agentes no CrewAI

No CrewAI, a delegação automática ocorre quando um agente com allow_delegation=True decide por conta própria transferir uma subtarefa para outro agente mais qualificado — comportamento habilitado por padrão no modo Process.hierarchical com um manager agent configurado.

A delegação é um dos recursos mais poderosos do CrewAI — e também um dos mais frequentemente mal compreendidos. Saber quando e como configurá-la corretamente determina se o crew vai executar de forma eficiente ou travar em loops de comunicação improdutivos.
Sequential vs Hierarchical: A Diferença Fundamental
O CrewAI oferece dois modos principais de execução de tarefas: Process.sequential (padrão) e Process.hierarchical. A escolha entre eles define o modelo de delegação disponível:
| Característica | Process.sequential | Process.hierarchical |
|---|---|---|
| Ordem de execução | Fixa (tarefa 1 → 2 → 3) | Dinâmica (manager decide) |
| Delegação automática | Não | Sim |
| Manager agent | Não | Obrigatório |
| Flexibilidade | Baixa | Alta |
| Custo de tokens | Menor | Maior |
| Casos de uso | Pipelines simples e lineares | Workflows complexos e dinâmicos |
Como Funciona o Manager Agent
No modo hierarchical, o manager agent age como um gerente de projeto — recebe a lista de tarefas e agentes disponíveis, analisa cada tarefa, e delega para o agente mais adequado com base nos papéis (role) e objetivos (goal) definidos. O manager não executa tarefas diretamente — apenas coordena.
O manager agent é automaticamente criado pelo CrewAI quando process=Process.hierarchical é definido, usando o LLM padrão do crew. Para mais controle, é possível definir um manager agent customizado com manager_agent=Agent(...) na instância do Crew.
Exemplo Completo com 3 Agentes e Delegação
O exemplo abaixo demonstra um crew de produção de conteúdo onde o manager delega automaticamente para o agente mais adequado:
from crewai import Agent, Task, Crew, Process
# Definindo agentes especializados
pesquisador = Agent(
role="Pesquisador de Mercado",
goal="Coletar e sintetizar dados de mercado",
backstory="Especialista em pesquisa com acesso a múltiplas fontes",
allow_delegation=False, # Agentes folha não delegam
verbose=True
)
redator = Agent(
role="Redator Sênior",
goal="Criar conteúdo de alta qualidade a partir de pesquisas",
backstory="Jornalista com 8 anos de experiência em conteúdo técnico",
allow_delegation=False,
verbose=True
)
revisor = Agent(
role="Editor e Revisor",
goal="Revisar e aprimorar o conteúdo produzido",
backstory="Editor com olho clínico para precisão e clareza",
allow_delegation=True, # Pode delegar revisões específicas
verbose=True
)
# Definindo tarefas
tarefa_pesquisa = Task(
description="Pesquise as tendências de IA generativa em 2026 para criadores de conteúdo",
expected_output="Relatório de 500 palavras com dados, tendências e fontes",
agent=pesquisador
)
tarefa_redacao = Task(
description="Escreva um artigo de blog de 1500 palavras baseado na pesquisa fornecida",
expected_output="Artigo completo com introdução, desenvolvimento e conclusão",
agent=redator,
context=[tarefa_pesquisa]
)
tarefa_revisao = Task(
description="Revise o artigo para precisão factual, clareza e SEO",
expected_output="Artigo revisado com comentários sobre cada mudança",
agent=revisor,
context=[tarefa_redacao]
)
# Crew com modo hierarchical
crew = Crew(
agents=[pesquisador, redator, revisor],
tasks=[tarefa_pesquisa, tarefa_redacao, tarefa_revisao],
process=Process.hierarchical,
verbose=True
)
resultado = crew.kickoff()
Dica DomineTec: Definir allow_delegation=False para agentes "folha" (que executam tarefas específicas sem precisar subdelegar) evita que o LLM tente delegar tarefas desnecessariamente, reduzindo o custo de tokens e evitando loops.

Quando Usar Delegação vs Tasks Simples
A delegação automática não é sempre a melhor escolha — o modo sequential com tasks bem definidas é mais eficiente e previsível para a maioria dos projetos simples. A hierarquia faz sentido quando as tarefas têm dependências dinâmicas, quando o fluxo de trabalho pode variar dependendo dos resultados intermediários, ou quando diferentes subtarefas exigem agentes com habilidades muito distintas.
Para projetos de produção de conteúdo linear (pesquisa → redação → revisão), o Process.sequential é a escolha mais eficiente. O Process.hierarchical com delegação se justifica em sistemas de automação complexos, assistentes de decisão com múltiplas fontes de dados, ou quando a ordem das tarefas precisa ser dinâmica.
Debugging de Delegações que Falham
Delegações que travam ou entram em loop são um problema comum em crews hierárquicos. As causas mais frequentes são: roles e goals de agentes muito similares (o manager não consegue decidir qual delegar), tasks com expected_output muito ambíguo, ou agentes sem as ferramentas necessárias para executar a tarefa delegada.
Para diagnosticar, ativar verbose=True tanto no crew quanto nos agentes expõe o raciocínio do manager em tempo real. Verificar os logs de execução permite identificar em qual ponto a delegação falhou e ajustar os prompts de backstory e goal para diferenciar melhor os agentes.
Para entender como configurar o ambiente do CrewAI desde o início, veja o guia de instalação do CrewAI com CLI. Também é possível combinar delegação com memória de agentes para resultados ainda mais sofisticados.
Perguntas Frequentes
1. O allow_delegation=True é necessário para todos os agentes no modo hierarchical?
Não. Apenas o manager agent (criado automaticamente pelo crew) precisa ter allow_delegation habilitado.
Os agentes trabalhadores podem ter allow_delegation=False, o que é recomendado para evitar subdelegações desnecessárias.
2. O manager agent consume tokens extras do LLM?
Sim. No modo hierarchical, o manager agent faz chamadas adicionais ao LLM para planejar a delegação de cada tarefa.
Esse custo é geralmente 20-40% maior em tokens do que o mesmo crew em modo sequential.
3. Posso usar um modelo de LLM diferente para o manager agent?
Sim. É possível definir um manager_agent customizado com um LLM específico — por exemplo, usar GPT-4o para o manager e modelos mais baratos (Groq Llama) para os agentes trabalhadores, equilibrando qualidade e custo.
4. Como evitar que agentes delegem tarefas entre si indefinidamente (loop)?
A principal proteção é definir allow_delegation=False nos agentes folha. Também é útil especificar claramente no backstory de cada agente quais tipos de tarefa estão dentro do seu escopo, evitando ambiguidade que leva ao loop de delegação.
Conclusão
A delegação automática no CrewAI é uma funcionalidade poderosa que, quando configurada corretamente, permite construir workflows de agentes muito mais sofisticados do que o modo sequential permite. A chave está em definir roles, goals e backstories suficientemente distintos para cada agente, garantindo que o manager tome decisões de delegação claras e eficientes.
Para a maioria dos projetos iniciais, começar com Process.sequential e migrar para hierarchical somente quando a complexidade do workflow justificar é a abordagem mais sensata — evitando custos de token desnecessários e comportamentos imprevisíveis durante o desenvolvimento.



