> ## Documentation Index
> Fetch the complete documentation index at: https://docs.evo-ai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Parallel Agent

> Configure agentes que executam sub-agentes simultaneamente para máxima eficiência e velocidade

## Visão Geral

O **Parallel Agent** é um tipo de agente de workflow que executa múltiplos sub-agentes simultaneamente, permitindo processamento paralelo de tarefas independentes. Diferentemente do Sequential Agent, todos os sub-agentes são iniciados ao mesmo tempo e executam de forma concorrente.

Este tipo de agente é ideal quando você tem tarefas que não dependem umas das outras e podem ser executadas em paralelo, resultando em significativa redução do tempo total de processamento.

<Note>
  **Baseado no Google ADK**: Implementação seguindo os padrões do [Google Agent Development Kit](https://google.github.io/adk-docs/agents/multi-agents/) para agentes paralelos.
</Note>

## Características Principais

<CardGroup cols={2}>
  <Card title="Execução Simultânea" icon="arrow-right-arrow-left">
    Todos os sub-agentes executam ao mesmo tempo, independentemente
  </Card>

  <Card title="Redução de Tempo" icon="clock">
    Tempo total é determinado pelo sub-agente mais lento, não pela soma
  </Card>

  <Card title="Independência" icon="arrows-split-up-and-left">
    Sub-agentes não dependem uns dos outros para executar
  </Card>

  <Card title="Agregação de Resultados" icon="layer-group">
    Combina resultados de todos os sub-agentes no final
  </Card>
</CardGroup>

## Quando Usar Parallel Agent

<AccordionGroup>
  <Accordion icon="check" title="Cenários Ideais">
    **✅ Use Parallel Agent quando:**

    * **Tarefas independentes**: Sub-agentes não precisam de dados uns dos outros
    * **Coleta de informações**: Buscar dados de múltiplas fontes simultaneamente
    * **Análises paralelas**: Diferentes tipos de análise no mesmo conjunto de dados
    * **Validações múltiplas**: Verificações que podem ser feitas em paralelo
    * **Processamento de lotes**: Dividir trabalho grande em partes menores

    **Exemplos práticos:**

    * Análise de produto (preço + reviews + especificações)
    * Verificação de dados (formato + conteúdo + compliance)
    * Pesquisa de mercado (concorrentes + tendências + preços)
    * Validação de usuário (email + telefone + documentos)
    * Geração de relatórios (vendas + marketing + financeiro)
  </Accordion>

  <Accordion icon="x" title="Quando NÃO usar">
    **❌ Evite Parallel Agent quando:**

    * **Dependências sequenciais**: Uma tarefa precisa do resultado da outra
    * **Recursos limitados**: Sistema não suporta múltiplas execuções simultâneas
    * **Ordem importa**: Sequência de execução é crítica
    * **Estado compartilhado**: Sub-agentes modificam os mesmos dados
    * **Tarefas muito rápidas**: Overhead de paralelização não compensa
  </Accordion>
</AccordionGroup>

## Criando um Parallel Agent

### Passo a Passo na Plataforma

<AccordionGroup>
  <Accordion icon="robot" title="1. Iniciar criação">
    1. Na tela principal do Evo AI, clique em **"New Agent"**
    2. No campo **"Type"**, selecione **"Parallel Agent"**
    3. Você verá campos específicos para configuração paralela

    <img src="https://mintlify.s3.us-west-1.amazonaws.com/evoai/images/prints/parallel_agent_creation.png" alt="Criando Parallel Agent" />
  </Accordion>

  <Accordion icon="gear" title="2. Configurar informações básicas">
    **Name:** Nome descritivo do agente paralelo

    ```
    Exemplo: analise_produto_completa
    ```

    **Description:** Resumo do processamento paralelo

    ```
    Exemplo: Análise completa de produto coletando informações 
    de preços, reviews, especificações e disponibilidade simultaneamente
    ```

    **Goal:** Objetivo do processamento paralelo

    ```
    Exemplo: Fornecer análise abrangente de produtos em tempo mínimo, 
    coletando dados de múltiplas fontes simultaneamente
    ```
  </Accordion>

  <Accordion icon="layer-group" title="3. Configurar sub-agentes paralelos">
    **Sub-Agents:** Adicione todos os agentes que executarão em paralelo

    **💡 Dica:** A ordem não importa, pois todos executam simultaneamente

    **Exemplo de análise de produto:**

    * **Analisador de Preços** - Compara preços em diferentes lojas
    * **Coletor de Reviews** - Busca avaliações de clientes
    * **Verificador de Especificações** - Coleta dados técnicos
    * **Checker de Estoque** - Verifica disponibilidade

    <img src="https://mintlify.s3.us-west-1.amazonaws.com/evoai/images/prints/parallel_sub_agents.png" alt="Configurando Sub-Agentes Paralelos" />
  </Accordion>

  <Accordion icon="file" title="4. Definir instruções de coordenação">
    **Instructions:** Como o agente deve coordenar a execução paralela

    ```markdown theme={null}
    # Análise Completa de Produto

    Execute todos os sub-agentes simultaneamente para análise abrangente:

    ## Sub-agentes paralelos:
    - **Preços**: Analise preços em múltiplas lojas
    - **Reviews**: Colete e analise avaliações de clientes
    - **Especificações**: Obtenha dados técnicos detalhados
    - **Estoque**: Verifique disponibilidade em tempo real

    ## Regras de execução:
    - Inicie todos os sub-agentes simultaneamente
    - Aguarde conclusão de todos antes de finalizar
    - Combine resultados em relatório unificado
    - Continue mesmo se um sub-agente falhar (opcional)

    ## Formato de saída:
    Combine todos os resultados em um relatório estruturado com:
    - Resumo executivo
    - Dados de cada análise
    - Recomendações baseadas em todos os dados
    ```
  </Accordion>

  <Accordion icon="gear" title="5. Configurações avançadas">
    **Timeout Global:** Tempo limite para todo o processamento paralelo

    ```
    Recomendado: 600 segundos (10 minutos)
    ```

    **Failure Policy:** Como tratar falhas de sub-agentes

    ```
    - Fail if Any Fails (mais rigoroso)
    - Continue if Some Succeed (mais flexível)
    - Always Continue (mais resiliente)
    ```

    **Concurrency Limit:** Limite de sub-agentes simultâneos

    ```
    - No Limit (padrão)
    - Max 5 Concurrent
    - Max 10 Concurrent
    ```

    **Result Aggregation:** Como combinar resultados

    ```
    - Merge All Results
    - Structured Report
    - Custom Aggregation
    ```
  </Accordion>
</AccordionGroup>

## Exemplos Práticos

### 1. Análise Completa de Produto

<AccordionGroup>
  <Accordion icon="magnifying-glass" title="Estrutura do Agente Paralelo">
    **Objetivo:** Analisar produto coletando dados de múltiplas fontes

    **Sub-Agentes executando em paralelo:**

    **1. Analisador de Preços**

    * **Name:** `price_analyzer`
    * **Description:** `Compara preços do produto em diferentes lojas online`
    * **Instructions:**

    ```markdown theme={null}
    Analise o pedido {{user_input}} e pesquise preços do produto {{produto_nome}}:
    - Busque em principais e-commerces
    - Compare preços e condições
    - Identifique melhor custo-benefício
    - Verifique promoções ativas
    ```

    * **Output Key:** `price_analysis`

    **2. Coletor de Reviews**

    * **Name:** `review_collector`
    * **Description:** `Coleta e analisa avaliações de clientes`
    * **Instructions:**

    ```markdown theme={null}
    Baseado no pedido {{user_input}}, colete reviews do produto {{produto_nome}}:
    - Busque avaliações em múltiplas plataformas
    - Analise sentimento geral
    - Identifique pontos fortes e fracos
    - Calcule score médio de satisfação
    ```

    * **Output Key:** `review_analysis`

    **3. Verificador de Especificações**

    * **Name:** `spec_checker`
    * **Description:** `Coleta especificações técnicas detalhadas`
    * **Instructions:**

    ```markdown theme={null}
    Considerando o pedido {{user_input}}, colete especificações do produto {{produto_nome}}:
    - Dados técnicos completos
    - Comparação com produtos similares
    - Certificações e padrões
    - Compatibilidade e requisitos
    ```

    * **Output Key:** `spec_analysis`

    **4. Verificador de Disponibilidade**

    * **Name:** `availability_checker`
    * **Description:** `Verifica estoque e disponibilidade`
    * **Instructions:**

    ```markdown theme={null}
    Para o pedido {{user_input}}, verifique disponibilidade do produto {{produto_nome}}:
    - Status de estoque em lojas
    - Prazos de entrega
    - Regiões de disponibilidade
    - Alternativas se indisponível
    ```

    * **Output Key:** `availability_analysis`
  </Accordion>
</AccordionGroup>

### 2. Verificação Completa de Usuário

<AccordionGroup>
  <Accordion icon="user-check" title="Estrutura do Agente Paralelo">
    **Objetivo:** Verificar dados de usuário em múltiplas dimensões

    **Sub-Agentes executando em paralelo:**

    **1. Validador de Email**

    * **Name:** `email_validator`
    * **Description:** `Valida formato e existência do email`
    * **Output Key:** `email_validation`

    **2. Verificador de Telefone**

    * **Name:** `phone_verifier`
    * **Description:** `Verifica formato e validade do telefone`
    * **Output Key:** `phone_validation`

    **3. Analisador de Documentos**

    * **Name:** `document_analyzer`
    * **Description:** `Analisa e valida documentos fornecidos`
    * **Output Key:** `document_validation`

    **4. Verificador de Endereço**

    * **Name:** `address_verifier`
    * **Description:** `Valida e normaliza endereço`
    * **Output Key:** `address_validation`

    **5. Checker de Antecedentes**

    * **Name:** `background_checker`
    * **Description:** `Verifica histórico e reputação`
    * **Output Key:** `background_check`
  </Accordion>
</AccordionGroup>

### 3. Pesquisa de Mercado Abrangente

<AccordionGroup>
  <Accordion icon="chart-line" title="Estrutura do Agente Paralelo">
    **Objetivo:** Realizar pesquisa completa de mercado

    **Sub-Agentes executando em paralelo:**

    **1. Analisador de Concorrentes**

    * Analisa principais concorrentes e estratégias

    **2. Pesquisador de Tendências**

    * Identifica tendências de mercado e consumo

    **3. Analisador de Preços**

    * Mapeia faixas de preço e posicionamento

    **4. Coletor de Feedback**

    * Coleta opiniões e feedback de clientes

    **5. Analisador de Oportunidades**

    * Identifica gaps e oportunidades de mercado
  </Accordion>
</AccordionGroup>

## Monitoramento e Performance

### Acompanhando Execução Paralela

<AccordionGroup>
  <Accordion icon="chart-line" title="Dashboard de Monitoramento">
    **Métricas específicas para execução paralela:**

    * **Progresso individual**: Status de cada sub-agente em tempo real
    * **Tempo de execução**: Duração de cada sub-agente
    * **Eficiência paralela**: Speedup obtido vs. execução sequencial
    * **Utilização de recursos**: CPU, memória, rede durante execução
    * **Taxa de sucesso**: Quantos sub-agentes completam com sucesso

    **Visualização em tempo real:**

    ```
    Sub-Agent Status:
    ├── price_analyzer     [RUNNING]    45s
    ├── review_collector   [COMPLETED]  32s ✓
    ├── spec_checker       [RUNNING]    51s
    └── availability_check [FAILED]     28s ✗

    Overall Progress: 75% (3/4 completed)
    Estimated Time Remaining: 15s
    ```
  </Accordion>

  <Accordion icon="gauge" title="Análise de Performance">
    **Métricas de eficiência:**

    **Speedup Calculation:**

    ```
    Tempo Sequencial: 180s (45+32+51+52)
    Tempo Paralelo: 52s (máximo entre todos)
    Speedup: 3.46x (180/52)
    Eficiência: 86.5% (3.46/4)
    ```

    **Gargalos identificados:**

    * Sub-agente mais lento determina tempo total
    * Recursos compartilhados podem causar contenção
    * Network I/O pode ser limitante

    **Otimizações sugeridas:**

    * Balancear carga entre sub-agentes
    * Otimizar sub-agente mais lento
    * Considerar cache para dados frequentes
  </Accordion>

  <Accordion icon="bug" title="Debugging de Problemas">
    **Problemas comuns em execução paralela:**

    **1. Contenção de Recursos**

    ```
    Sintoma: Todos os sub-agentes lentos
    Causa: Competição por CPU/memória/rede
    Solução: Reduzir concorrência ou otimizar recursos
    ```

    **2. Falhas Intermitentes**

    ```
    Sintoma: Sub-agentes falham aleatoriamente
    Causa: Rate limiting ou timeouts
    Solução: Implementar retry e backoff
    ```

    **3. Resultados Inconsistentes**

    ```
    Sintoma: Resultados variam entre execuções
    Causa: Condições de corrida ou dados dinâmicos
    Solução: Sincronização ou snapshot de dados
    ```
  </Accordion>
</AccordionGroup>

## Configurações Avançadas

### Controle de Concorrência

<AccordionGroup>
  <Accordion icon="sliders" title="Limitação de Recursos">
    **Configurações de concorrência:**

    **Max Concurrent Agents:** Limite de sub-agentes simultâneos

    ```
    - Unlimited (padrão)
    - 5 concurrent (para recursos limitados)
    - 10 concurrent (balanceado)
    - 20 concurrent (alta capacidade)
    ```

    **Resource Allocation:** Alocação de recursos por sub-agente

    ```
    - CPU Limit: 1 core per agent
    - Memory Limit: 512MB per agent
    - Network Bandwidth: 10Mbps per agent
    ```

    **Queue Management:** Gerenciamento de fila quando há limite

    ```
    - FIFO (First In, First Out)
    - Priority-based (baseado em prioridade)
    - Round-robin (distribuição equilibrada)
    ```
  </Accordion>

  <Accordion icon="shield" title="Tratamento de Falhas">
    **Políticas de falha:**

    **Fail Fast Policy:**

    ```markdown theme={null}
    Se qualquer sub-agente falhar:
    - Pare todos os outros imediatamente
    - Retorne erro para o usuário
    - Use para operações críticas
    ```

    **Best Effort Policy:**

    ```markdown theme={null}
    Se alguns sub-agentes falharem:
    - Continue com os que funcionam
    - Retorne resultados parciais
    - Indique quais falharam
    ```

    **Retry Policy:**

    ```markdown theme={null}
    Para falhas temporárias:
    - Retry automático 1-3 vezes
    - Backoff exponencial
    - Timeout progressivo
    ```
  </Accordion>

  <Accordion icon="layer-group" title="Agregação de Resultados">
    **Estratégias de combinação:**

    **Simple Merge:**

    ```json theme={null}
    {
      "price_analysis": {...},
      "review_analysis": {...},
      "spec_analysis": {...},
      "availability_analysis": {...}
    }
    ```

    **Structured Report:**

    ```json theme={null}
    {
      "summary": "Análise completa do produto...",
      "details": {
        "pricing": {...},
        "reviews": {...},
        "specifications": {...},
        "availability": {...}
      },
      "recommendations": [...]
    }
    ```

    **Custom Aggregation:**

    ```markdown theme={null}
    Defina lógica personalizada para combinar resultados:
    - Priorize dados mais confiáveis
    - Resolva conflitos entre fontes
    - Calcule métricas derivadas
    - Gere insights combinados
    ```
  </Accordion>

  <Accordion icon="key" title="Output Key - Resultado Agregado">
    **Campo `Output Key` na interface:**

    O Output Key permite que o Parallel Agent salve o resultado agregado de todos os sub-agentes executados em paralelo em uma variável específica no estado compartilhado.

    **Como funciona:**

    * Configure o campo `Output Key` com um nome descritivo
    * Os resultados de todos os sub-agentes são coletados e agregados
    * O resultado final agregado é salvo automaticamente na variável especificada
    * Outros agentes podem acessar usando placeholders `{{output_key_name}}`

    **Exemplos de configuração:**

    ```markdown theme={null}
    Output Key: "analise_completa_produto"
    → Salva resultado agregado em state.analise_completa_produto

    Output Key: "verificacao_usuario_completa"
    → Salva resultado agregado em state.verificacao_usuario_completa

    Output Key: "pesquisa_mercado_consolidada"
    → Salva resultado agregado em state.pesquisa_mercado_consolidada
    ```

    **Estrutura do resultado agregado:**

    ```json theme={null}
    {
      "execution_summary": {
        "total_agents": 4,
        "successful": 4,
        "failed": 0,
        "execution_time": "45s"
      },
      "results": {
        "price_analysis": {...},
        "review_analysis": {...},
        "spec_analysis": {...},
        "availability_analysis": {...}
      },
      "aggregated_insights": "Insights combinados de todos os agentes"
    }
    ```

    **Uso em outros agentes:**

    ```markdown theme={null}
    # Nas instruções de agentes subsequentes:
    "Analise o pedido: {{user_input}} e use a análise completa: {{analise_completa_produto}}"
    "Baseado na verificação: {{verificacao_usuario_completa}}"
    "Considere a pesquisa: {{pesquisa_mercado_consolidada}}"
    ```

    **Boas práticas:**

    * Use snake\_case: `resultado_paralelo`, `analise_agregada`
    * Seja específico: `verificacao_multipla_usuario` em vez de `verificacao`
    * Documente estrutura do resultado agregado
    * Considere incluir metadados de execução
    * Use nomes que reflitam a natureza paralela do processo
  </Accordion>
</AccordionGroup>

## Melhores Práticas

<AccordionGroup>
  <Accordion icon="lightbulb" title="Design de Sub-Agentes">
    **Princípios para execução paralela:**

    * **Independência**: Sub-agentes não devem depender uns dos outros
    * **Idempotência**: Execução múltipla deve ser segura
    * **Timeouts apropriados**: Evite que um sub-agente trave todos
    * **Granularidade adequada**: Nem muito pequenos nem muito grandes
    * **Balanceamento**: Sub-agentes com tempo similar de execução
  </Accordion>

  <Accordion icon="rocket" title="Otimização de Performance">
    **Estratégias para máxima eficiência:**

    * **Profile primeiro**: Meça antes de otimizar
    * **Identifique gargalos**: Sub-agente mais lento determina tempo total
    * **Cache inteligente**: Evite reprocessar dados idênticos
    * **Batch operations**: Agrupe operações similares
    * **Resource pooling**: Reutilize conexões e recursos
  </Accordion>

  <Accordion icon="shield-check" title="Confiabilidade">
    **Garantindo execução robusta:**

    * **Circuit breakers**: Evite cascata de falhas
    * **Health checks**: Monitore saúde dos sub-agentes
    * **Graceful degradation**: Continue com funcionalidade reduzida
    * **Retry logic**: Tente novamente apenas para falhas temporárias
    * **Monitoring**: Alertas para problemas de performance
  </Accordion>
</AccordionGroup>

## Casos de Uso Comuns

<CardGroup cols={2}>
  <Card title="Análise de Dados" icon="chart-bar">
    **Processamento Paralelo:**

    * Múltiplas análises no mesmo dataset
    * Coleta de dados de várias fontes
    * Validações independentes
  </Card>

  <Card title="Verificação de Usuários" icon="user-check">
    **Validação Múltipla:**

    * Email, telefone, documentos
    * Verificações de background
    * Validação de endereços
  </Card>

  <Card title="Pesquisa de Mercado" icon="magnifying-glass">
    **Coleta Abrangente:**

    * Análise de concorrentes
    * Tendências de mercado
    * Feedback de clientes
  </Card>

  <Card title="Monitoramento" icon="eye">
    **Vigilância Contínua:**

    * Múltiplas métricas
    * Diferentes sistemas
    * Alertas paralelos
  </Card>
</CardGroup>

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Sequential Agent" icon="arrow-right" href="/agents/sequential">
    Aprenda sobre execução sequencial ordenada
  </Card>

  <Card title="Loop Agent" icon="recycle" href="/agents/loop">
    Explore agentes que executam em loop iterativo
  </Card>

  <Card title="Agente LLM" icon="brain" href="/agents/llm">
    Volte aos fundamentos dos agentes inteligentes
  </Card>

  <Card title="Configurações" icon="gear" href="/configurations/index">
    Explore configurações avançadas de agentes
  </Card>
</CardGroup>

***

O Parallel Agent é essencial para maximizar eficiência quando você tem tarefas independentes. Use-o para reduzir drasticamente o tempo total de processamento executando múltiplas operações simultaneamente.
