Subagentes em Cascata (Subagent Recursion) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Abusos de controle. Subagentes criam subagentes sem limite de profundidade nem de custo.
Uma ferramenta de pesquisa interna recebeu a pergunta “qual a política de reembolso para viagens internacionais?”. O trace (anonimizado e resumido):
agent[0] delegate("pesquisar política de reembolso") agent[1] delegate("pesquisar política de viagens") agent[2] delegate("pesquisar política de viagens internacionais") agent[3] delegate("verificar câmbio aplicável") agent[4] delegate("pesquisar cotação do dólar") ... agent[1] delegate("pesquisar exceções de reembolso") ...total: 140 subagentes, 2.300 chamadas ao modelo, 47 minutosresposta: um parágrafo que estava na primeira página da wiki
Cada agente podia criar subagentes, e cada subagente também. Nenhum tinha limite de profundidade, e cada um recebia um orçamento novo.
A conta ilustrativa deixa o formato visível. Suponha 3 filhos por nó e profundidade 5: 1 + 3 + 9 + 27 + 81 = 121 agentes antes de contar o sexto nível. Se cada um faz 10 chamadas ao modelo, você já passou de mil chamadas. A pergunta cabia em uma busca.
Sinais de Subagentes em Cascata:
Subagentes têm a mesma ferramenta de delegação que o agente principal.
Não há limite de profundidade nem de número total de agentes por tarefa.
Cada subagente recebe um orçamento próprio, em vez de dividir o do pai.
O trace tem árvores profundas para perguntas simples.
O custo de uma tarefa varia em ordens de grandeza entre execuções parecidas.
flowchart TD
A(["1. Agente"]):::llm --> B(["2. Subagente"]):::llm
A --> C(["2. Subagente"]):::llm
B --> D(["3. Sub-subagente"]):::llm
B --> E(["3. Sub-subagente"]):::llm
C --> F(["3. Sub-subagente"]):::llm
D --> G(["4. e assim por diante"]):::llm
O agente principal decide delegar.
Cada subagente pode delegar também.
A árvore cresce a cada nível.
Sem limite, o crescimento é exponencial, e cada nó tem seu próprio loop.
O desenho parece pesquisa em equipe. Na prática, o modelo parte a pergunta em fatias cada vez mais estreitas (“câmbio”, “dólar”, “PTAX”) em vez de ler a wiki. Cada fatia ganha um agente novo, com histórico próprio e teto próprio.
Por que acontece
Delegação recursiva parece elegante. “O agente pode criar quantos agentes precisar” soa flexível. Flexível sem teto é ilimitado.
A mesma configuração serve para todos. O subagente é uma cópia do principal, com todas as ferramentas, inclusive delegate. Quem pode criar filhos cria netos.
Orçamento por agente, não por tarefa. Cada nó tem um teto razoável; o total não tem. Três níveis de 20 passos parecem 20. Não são.
Modelos tendem a delegar quando podem. Com a ferramenta disponível, eles usam. Partir o trabalho é o jeito mais óbvio de “ser um orquestrador”.
O limite do framework engana.recursion_limit no LangGraph e max_turns no OpenAI Agents SDK cortam o loop de um grafo ou de um agente. Não cortam a profundidade de uma árvore de processos separados.
O guia “Building effective agents”, da Anthropic (dez. 2024), recomenda condições de parada (número máximo de iterações) em loops de agente. O mesmo princípio vale para a árvore: profundidade, largura e custo total.
Quanto custa ignorar
Custo explosivo. Uma tarefa simples pode custar centenas de vezes o normal. Com 2.300 chamadas, mesmo um modelo barato some com a cota do dia.
Latência. Mesmo em paralelo, árvores profundas levam muito tempo. Quarenta e sete minutos para um parágrafo da wiki.
Qualidade. Cada nível resume o nível de baixo. Depois de quatro resumos, o detalhe da política de reembolso virou um parágrafo genérico, e o câmbio que ninguém pediu entrou no meio.
Cota. Centenas de chamadas simultâneas esgotam o rate limit de todo o sistema. Outras tarefas inocentes falham com 429.
Diagnóstico. Um trace com 140 ramos quase não se lê. Você acha o parágrafo final e não acha o caminho que o produziu.
Sempre. Um orçamento por tarefa, compartilhado pela árvore inteira, com limite de profundidade e de número de agentes. Destinos: Condições de Parada e Orçamento de Custo.
Pesquisa interna de política quase nunca precisa de árvore. Um agente com busca na wiki, no padrão de Delegação a Subagentes usado com trabalhadores sem delegate, já basta. A cascata é o abuso desse padrão.
O que você ganha
Custo máximo por tarefa definido por você.
Árvores rasas, com delegação só onde ela isola contexto ou paraleliza trabalho.
Respostas que passam por menos resumos intermediários.
Quando ignorar
Nunca deixe a recursão sem limite. Delegação em dois níveis, com orçamento compartilhado e trabalhadores sem delegate, é um desenho legítimo. Pesquisa ampla em paralelo (várias fontes ao mesmo tempo) cabe nesse desenho. Subagentes sem a ferramenta de delegação resolvem a maioria dos casos.
É esse smell?
Perguntas rápidas
O que é Subagentes em Cascata?
Subagentes em Cascata (Subagent Recursion) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Abusos de controle. Subagentes criam subagentes sem limite de profundidade nem de custo.