> ## 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.

# Task Agent

> Atribua tarefas específicas a agentes com prompts estruturados e outputs esperados, inspirado no CrewAI

## Visão Geral

O **Task Agent** é inspirado na funcionalidade de tarefas do **CrewAI**, permitindo atribuir tarefas específicas e bem definidas a agentes individuais. Cada Task Agent encapsula uma única tarefa com prompt estruturado, expected output e agente responsável, criando uma unidade de trabalho clara e focada.

Este padrão é fundamental para criar sistemas de agentes organizados, onde cada agente tem responsabilidades específicas e bem definidas, similar ao conceito de "tasks" no CrewAI que permite orquestração eficiente de equipes de agentes especializados.

<Note>
  **Inspirado no CrewAI**: Implementação baseada no conceito de [Tasks do CrewAI](https://docs.crewai.com/core-concepts/Tasks/) para atribuição estruturada de tarefas a agentes especializados.
</Note>

## Características Principais

<CardGroup cols={2}>
  <Card title="Uma Tarefa por Agent" icon="bullseye">
    Cada Task Agent encapsula exatamente uma tarefa específica
  </Card>

  <Card title="Prompt Estruturado" icon="file">
    Prompt de tarefa claro e detalhado para o agente atribuído
  </Card>

  <Card title="Expected Output" icon="bullseye">
    Definição clara do resultado esperado da tarefa
  </Card>

  <Card title="Agente Atribuído" icon="user-tag">
    Seleção de agente específico responsável pela execução
  </Card>
</CardGroup>

## Quando Usar Task Agent

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

    * **Tarefas bem definidas**: Você tem uma tarefa específica e clara
    * **Responsabilidade única**: Um agente deve ser responsável por uma tarefa
    * **Output estruturado**: Você sabe exatamente o que esperar como resultado
    * **Especialização**: Agente tem expertise específica para a tarefa
    * **Orquestração simples**: Tarefa faz parte de um processo maior

    **Exemplos práticos:**

    * Análise de sentimento de um texto específico
    * Geração de resumo executivo de um relatório
    * Validação de dados de entrada
    * Tradução de conteúdo para idioma específico
    * Extração de informações de documentos
  </Accordion>

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

    * **Múltiplas tarefas**: Precisa executar várias tarefas relacionadas
    * **Workflow complexo**: Requer lógica condicional ou loops
    * **Interação entre agentes**: Agentes precisam colaborar diretamente
    * **Processo dinâmico**: Fluxo de trabalho muda baseado em resultados
    * **Tarefa muito simples**: Pode ser resolvida com prompt direto
  </Accordion>
</AccordionGroup>

## Criando um Task 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 **"Task Agent"**
    3. Você verá campos específicos para configuração de tarefa

    <img src="https://mintcdn.com/evoai/Aa4kqZ7vw51IF__0/images/prints/task_form.png?fit=max&auto=format&n=Aa4kqZ7vw51IF__0&q=85&s=9ed1feb14f21f30e6b70c8112c03c16f" alt="Criando Task Agent" width="1256" height="732" data-path="images/prints/task_form.png" />
  </Accordion>

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

    ```
    Exemplo: analise_sentimento_reviews
    ```

    **Description:** Resumo da tarefa específica

    ```
    Exemplo: Analisa sentimento de reviews de produtos para 
    identificar satisfação dos clientes e pontos de melhoria
    ```

    **Goal:** Objetivo específico da tarefa

    ```
    Exemplo: Fornecer análise precisa de sentimento com score 
    numérico e insights acionáveis sobre reviews de produtos
    ```
  </Accordion>

  <Accordion icon="user-tag" title="3. Selecionar agente responsável">
    **Assigned Agent:** Escolha o agente que executará a tarefa

    **Opções disponíveis:**

    * Agentes LLM existentes na plataforma
    * Agentes A2A configurados
    * Agentes especializados criados anteriormente

    **Critérios de seleção:**

    * Especialização do agente na área da tarefa
    * Capacidades técnicas necessárias
    * Performance histórica em tarefas similares
    * Disponibilidade e recursos

    **Exemplo:**

    ```
    Assigned Agent: sentiment_analysis_specialist
    - Especializado em análise de sentimento
    - Treinado em dados de e-commerce
    - Alta precisão em classificação emocional
    ```

    <img src="https://mintcdn.com/evoai/Aa4kqZ7vw51IF__0/images/prints/task_config.png?fit=max&auto=format&n=Aa4kqZ7vw51IF__0&q=85&s=ff2936e93d71e2c6da43e00c522d4a79" alt="Configuração Completa do Task Agent" width="1199" height="1031" data-path="images/prints/task_config.png" />
  </Accordion>

  <Accordion icon="file" title="4. Definir prompt da tarefa">
    **Task Prompt:** Prompt detalhado e específico para a tarefa

    **Estrutura recomendada:**

    ```markdown theme={null}
    # Análise de Sentimento de Reviews

    ## Contexto:
    Você é um especialista em análise de sentimento focado em reviews de produtos.

    ## Tarefa:
    Analise o sentimento dos reviews fornecidos e forneça insights detalhados.

    ## Input:
    - Reviews de produtos em formato texto
    - Metadados do produto (categoria, preço, etc.)

    ## Processo:
    1. Leia cada review cuidadosamente
    2. Identifique sentimentos: positivo, negativo, neutro
    3. Calcule score de sentimento (-1 a +1)
    4. Identifique temas principais mencionados
    5. Extraia insights acionáveis

    ## Critérios de qualidade:
    - Precisão na classificação de sentimento
    - Identificação de nuances emocionais
    - Insights relevantes para melhoria do produto
    - Análise contextual considerando categoria do produto

    ## Formato de análise:
    Para cada review, forneça:
    - Score de sentimento
    - Classificação (positivo/negativo/neutro)
    - Temas principais
    - Aspectos específicos mencionados
    ```
  </Accordion>

  <Accordion icon="bullseye" title="5. Definir expected output">
    **Expected Output:** Descrição clara e detalhada do resultado esperado

    **Estrutura do output esperado:**

    ```json theme={null}
    {
      "task_summary": {
        "total_reviews": 150,
        "analysis_date": "2024-01-15",
        "product_category": "electronics"
      },
      "sentiment_analysis": {
        "overall_sentiment": {
          "score": 0.65,
          "classification": "positive",
          "confidence": 0.89
        },
        "distribution": {
          "positive": 65,
          "neutral": 20,
          "negative": 15
        }
      },
      "detailed_insights": {
        "positive_themes": [
          "qualidade do produto",
          "entrega rápida",
          "bom custo-benefício"
        ],
        "negative_themes": [
          "problemas de durabilidade",
          "atendimento ao cliente"
        ],
        "improvement_suggestions": [
          "Melhorar controle de qualidade",
          "Treinamento da equipe de suporte"
        ]
      },
      "individual_reviews": [
        {
          "review_id": "rev_001",
          "sentiment_score": 0.8,
          "classification": "positive",
          "key_aspects": ["qualidade", "preço"],
          "summary": "Cliente satisfeito com qualidade e preço"
        }
      ]
    }
    ```

    **Especificações do output:**

    * **Formato**: JSON estruturado
    * **Campos obrigatórios**: Todos os campos principais devem estar presentes
    * **Tipos de dados**: Especificar tipos (string, number, array, object)
    * **Validação**: Critérios para validar se output está correto
    * **Exemplos**: Exemplos concretos do formato esperado
  </Accordion>

  <Accordion icon="gear" title="6. Configurações avançadas">
    **Timeout:** Tempo limite para execução da tarefa

    ```
    Recomendado: 120-300 segundos (dependendo da complexidade)
    ```

    **Retry Policy:** Política de tentativas em caso de falha

    ```
    Opções:
    - No Retry (para tarefas críticas)
    - Retry Once (padrão)
    - Retry with Validation (retry se output não atender expected)
    ```

    **Output Validation:** Validação automática do resultado

    ```
    - Schema Validation (JSON Schema)
    - Content Validation (verificar campos obrigatórios)
    - Quality Checks (verificar qualidade do conteúdo)
    ```

    **Context Injection:** Injeção de contexto adicional

    ```
    - Previous Task Results (resultados de tarefas anteriores)
    - System Context (informações do sistema)
    - User Context (dados do usuário)
    ```
  </Accordion>

  <Accordion icon="database" title="7. Output Key - Compartilhamento de Estado">
    **Campo `Output Key` na interface:**

    O Output Key permite que o Task Agent salve o resultado da tarefa em uma variável específica no estado compartilhado, tornando-o disponível para outros agentes ou tarefas subsequentes.

    **Como funciona:**

    * Configure o campo `Output Key` com um nome descritivo
    * O resultado da tarefa será salvo automaticamente nessa variável
    * Outros agentes podem acessar usando placeholders `{{output_key_name}}`
    * Funciona em workflows, loops e sistemas multi-agente

    **Exemplos de configuração:**

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

    Output Key: "resumo_executivo"
    → Salva resultado em state.resumo_executivo

    Output Key: "dados_validados"
    → Salva resultado em state.dados_validados
    ```

    **Uso em tarefas subsequentes:**

    ```markdown theme={null}
    # Em Task Prompts de outras tarefas:
    "Analise o pedido: {{user_input}} e baseie-se na análise: {{analise_sentimento}}"
    "Use este resumo: {{resumo_executivo}}"
    "Processe os dados: {{dados_validados}}"
    ```

    **Boas práticas:**

    * Use snake\_case: `resultado_tarefa`, `dados_processados`
    * Seja específico: `validacao_formulario` em vez de `validacao`
    * Evite conflitos com outras variáveis no estado
    * Documente o formato do output nas instruções
    * Use nomes que reflitam o conteúdo da tarefa
  </Accordion>
</AccordionGroup>

## Exemplos Práticos

### 1. Análise de Sentimento de Reviews

<AccordionGroup>
  <Accordion icon="star" title="Configuração Completa">
    **Cenário:** Analisar sentimento de reviews de produtos para e-commerce

    **Configuração do Task Agent:**

    **Basic Information:**

    * **Name:** `sentiment_analysis_task`
    * **Description:** `Análise detalhada de sentimento em reviews de produtos`
    * **Goal:** `Fornecer insights acionáveis sobre satisfação dos clientes`

    **Agent Assignment:**

    * **Assigned Agent:** `sentiment_specialist_v2`
    * **Agent Type:** LLM Agent especializado
    * **Specialization:** Análise de sentimento em português

    **Task Prompt:**

    ```markdown theme={null}
    # Tarefa: Análise de Sentimento de Reviews

    Você é um especialista em análise de sentimento para e-commerce.

    ## Input recebido:
    - Lista de reviews de produtos
    - Metadados do produto (nome, categoria, preço)

    ## Sua missão:
    1. Analise cada review individualmente
    2. Calcule score de sentimento (-1 a +1)
    3. Classifique como positivo/neutro/negativo
    4. Identifique aspectos específicos mencionados
    5. Extraia insights para melhoria do produto

    ## Foque em:
    - Precisão na classificação
    - Identificação de nuances
    - Insights acionáveis
    - Análise contextual
    ```

    **Expected Output:**

    ```json theme={null}
    {
      "summary": {
        "total_reviews": "number",
        "overall_sentiment": "number (-1 to 1)",
        "classification": "positive|neutral|negative"
      },
      "insights": {
        "positive_aspects": ["array of strings"],
        "negative_aspects": ["array of strings"],
        "improvement_suggestions": ["array of strings"]
      },
      "detailed_analysis": [
        {
          "review_id": "string",
          "sentiment_score": "number",
          "classification": "string",
          "key_aspects": ["array"],
          "summary": "string"
        }
      ]
    }
    ```
  </Accordion>
</AccordionGroup>

### 2. Geração de Resumo Executivo

<AccordionGroup>
  <Accordion icon="file" title="Configuração Completa">
    **Cenário:** Gerar resumo executivo de relatórios longos

    **Configuração do Task Agent:**

    **Basic Information:**

    * **Name:** `executive_summary_task`
    * **Description:** `Geração de resumos executivos concisos e informativos`
    * **Goal:** `Criar resumos que capturem pontos-chave para tomada de decisão`

    **Agent Assignment:**

    * **Assigned Agent:** `document_summarizer_pro`
    * **Specialization:** Sumarização de documentos corporativos

    **Task Prompt:**

    ```markdown theme={null}
    # Tarefa: Geração de Resumo Executivo

    Você é um especialista em criar resumos executivos para liderança corporativa.

    ## Input:
    - Relatório completo (texto longo)
    - Contexto do negócio
    - Audiência-alvo (C-level, gerentes, etc.)

    ## Objetivo:
    Criar resumo executivo que permita tomada de decisão rápida e informada.

    ## Estrutura obrigatória:
    1. **Situação Atual** (2-3 frases)
    2. **Principais Descobertas** (3-5 pontos)
    3. **Recomendações** (2-4 ações específicas)
    4. **Próximos Passos** (timeline e responsáveis)

    ## Critérios:
    - Máximo 300 palavras
    - Linguagem executiva (clara e direta)
    - Foco em ações e resultados
    - Dados quantitativos quando relevantes
    ```

    **Expected Output:**

    ```json theme={null}
    {
      "executive_summary": {
        "current_situation": "string (2-3 sentences)",
        "key_findings": [
          "string (finding 1)",
          "string (finding 2)",
          "string (finding 3)"
        ],
        "recommendations": [
          {
            "action": "string",
            "priority": "high|medium|low",
            "impact": "string",
            "effort": "string"
          }
        ],
        "next_steps": [
          {
            "action": "string",
            "timeline": "string",
            "responsible": "string"
          }
        ]
      },
      "metadata": {
        "word_count": "number",
        "reading_time": "string",
        "confidence_score": "number"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

### 3. Validação de Dados de Entrada

<AccordionGroup>
  <Accordion icon="shield-check" title="Configuração Completa">
    **Cenário:** Validar dados de formulários antes do processamento

    **Configuração do Task Agent:**

    **Basic Information:**

    * **Name:** `data_validation_task`
    * **Description:** `Validação inteligente de dados de entrada`
    * **Goal:** `Garantir qualidade e completude dos dados antes do processamento`

    **Agent Assignment:**

    * **Assigned Agent:** `data_validator_agent`
    * **Specialization:** Validação e limpeza de dados

    **Task Prompt:**

    ```markdown theme={null}
    # Tarefa: Validação de Dados de Entrada

    Você é um especialista em validação e qualidade de dados.

    ## Input:
    - Dados de formulário (JSON)
    - Schema de validação
    - Regras de negócio específicas

    ## Validações obrigatórias:
    1. **Formato**: Verificar tipos de dados e formatos
    2. **Completude**: Identificar campos obrigatórios faltantes
    3. **Consistência**: Verificar lógica entre campos
    4. **Qualidade**: Detectar dados suspeitos ou inválidos
    5. **Segurança**: Identificar possíveis ameaças

    ## Para cada erro encontrado:
    - Identifique o campo específico
    - Descreva o problema
    - Sugira correção quando possível
    - Classifique severidade (crítico/alto/médio/baixo)
    ```

    **Expected Output:**

    ```json theme={null}
    {
      "validation_result": {
        "is_valid": "boolean",
        "overall_score": "number (0-100)",
        "total_errors": "number",
        "total_warnings": "number"
      },
      "field_validation": {
        "field_name": {
          "is_valid": "boolean",
          "errors": ["array of error messages"],
          "warnings": ["array of warning messages"],
          "suggestions": ["array of suggestions"]
        }
      },
      "errors": [
        {
          "field": "string",
          "type": "format|required|consistency|quality|security",
          "severity": "critical|high|medium|low",
          "message": "string",
          "suggestion": "string"
        }
      ],
      "cleaned_data": {
        "description": "Data with automatic fixes applied",
        "data": "object with cleaned values"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## Integração com Outros Agentes

### Usando Task Agents em Workflows

<AccordionGroup>
  <Accordion icon="sitemap" title="Em Sequential Workflows">
    **Exemplo: Pipeline de Processamento de Conteúdo**

    ```markdown theme={null}
    Sequential Workflow:

    1. **Task Agent: Extração de Dados**
       - Agent: data_extractor
       - Task: Extrair informações de documento
       - Output: structured_data

    2. **Task Agent: Validação**
       - Agent: data_validator
       - Task: Validar dados extraídos
       - Input: {{structured_data}}
       - Output: validation_result

    3. **Task Agent: Enriquecimento**
       - Agent: data_enricher
       - Task: Enriquecer com dados externos
       - Input: {{structured_data}}
       - Output: enriched_data

    4. **Task Agent: Geração de Relatório**
       - Agent: report_generator
       - Task: Gerar relatório final
       - Input: {{enriched_data}}
       - Output: final_report
    ```
  </Accordion>

  <Accordion icon="arrow-right-arrow-left" title="Em Parallel Workflows">
    **Exemplo: Análise Completa de Produto**

    ```markdown theme={null}
    Parallel Workflow:

    Executar simultaneamente:

    - **Task Agent: Análise de Preços**
      - Agent: price_analyzer
      - Task: Analisar competitividade de preços

    - **Task Agent: Análise de Reviews**
      - Agent: sentiment_analyzer
      - Task: Analisar sentimento dos clientes

    - **Task Agent: Análise de Especificações**
      - Agent: spec_analyzer
      - Task: Comparar especificações técnicas

    - **Task Agent: Análise de Disponibilidade**
      - Agent: availability_checker
      - Task: Verificar estoque e disponibilidade

    Resultados são agregados em relatório unificado.
    ```
  </Accordion>

  <Accordion icon="sitemap" title="Em Workflow Agents">
    **Exemplo: Workflow Visual Complexo**

    ```markdown theme={null}
    Workflow com Task Agents como nodes:

    Start → Task Agent (Extração) → Condition (Dados Válidos?)
      ↓                                    ↓
    Task Agent (Validação)           Task Agent (Correção)
      ↓                                    ↓
    Task Agent (Processamento) ← ← ← ← ← ← ← ←
      ↓
    Task Agent (Relatório) → End

    Cada Task Agent tem responsabilidade específica e bem definida.
    ```
  </Accordion>
</AccordionGroup>

## Monitoramento e Performance

### Acompanhando Task Agents

<AccordionGroup>
  <Accordion icon="chart-line" title="Métricas de Performance">
    **Métricas específicas para Task Agents:**

    **Execution Metrics:**

    ```
    Task Agent: sentiment_analysis_task

    Performance Overview:
    ├── Total Executions: 2,847
    ├── Success Rate: 97.2%
    ├── Avg Execution Time: 4.3s
    ├── Avg Output Quality: 8.7/10
    └── Last 24h: 156 executions

    Output Validation:
    ├── Schema Compliance: 99.1%
    ├── Content Quality: 94.5%
    ├── Expected Format: 98.8%
    └── Validation Failures: 2.8%

    Agent Performance:
    ├── Agent: sentiment_specialist_v2
    ├── Specialization Match: 95%
    ├── Task Completion Rate: 97.2%
    └── Quality Consistency: 92.1%
    ```
  </Accordion>

  <Accordion icon="bug" title="Debugging e Troubleshooting">
    **Problemas comuns com Task Agents:**

    **1. Output Format Mismatch**

    ```
    Sintoma: Agent retorna formato diferente do esperado
    Causa: Prompt não específico o suficiente
    Solução: Refinar prompt com exemplos concretos
    ```

    **2. Task Scope Creep**

    ```
    Sintoma: Agent executa além do escopo da tarefa
    Causa: Prompt muito amplo ou ambíguo
    Solução: Definir limites claros na tarefa
    ```

    **3. Quality Inconsistency**

    ```
    Sintoma: Qualidade varia entre execuções
    Causa: Agent não especializado ou prompt inconsistente
    Solução: Usar agent mais especializado ou melhorar prompt
    ```

    **4. Performance Degradation**

    ```
    Sintoma: Tempo de execução aumentando
    Causa: Agent sobrecarregado ou tarefa muito complexa
    Solução: Otimizar tarefa ou usar agent mais poderoso
    ```
  </Accordion>
</AccordionGroup>

## Melhores Práticas

<AccordionGroup>
  <Accordion icon="lightbulb" title="Design de Tarefas Eficazes">
    **Princípios para Task Agents eficazes:**

    * **Responsabilidade única**: Uma tarefa específica e bem definida
    * **Prompt claro**: Instruções precisas e sem ambiguidade
    * **Output estruturado**: Formato de saída bem especificado
    * **Agent adequado**: Escolha agent com especialização apropriada
    * **Validação robusta**: Critérios claros para validar resultado
  </Accordion>

  <Accordion icon="bullseye" title="Especialização de Agentes">
    **Matching tarefa-agente:**

    * **Análise de texto**: Use agents especializados em NLP
    * **Processamento de dados**: Use agents com capacidades analíticas
    * **Geração de conteúdo**: Use agents criativos e especializados
    * **Validação**: Use agents focados em qualidade e precisão
    * **Tradução**: Use agents multilíngues especializados
  </Accordion>

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

    * **Testing**: Teste tarefas com diferentes inputs
    * **Validation**: Implemente validação automática de outputs
    * **Monitoring**: Monitore performance e qualidade continuamente
    * **Feedback loop**: Use resultados para melhorar prompts
    * **Version control**: Mantenha histórico de mudanças em tarefas
  </Accordion>
</AccordionGroup>

## Casos de Uso Comuns

<CardGroup cols={2}>
  <Card title="Análise de Conteúdo" icon="magnifying-glass">
    **Tarefas Analíticas:**

    * Análise de sentimento
    * Extração de entidades
    * Classificação de texto
    * Sumarização de documentos
  </Card>

  <Card title="Processamento de Dados" icon="database">
    **Tarefas de Dados:**

    * Validação de entrada
    * Limpeza de dados
    * Transformação de formatos
    * Enriquecimento de informações
  </Card>

  <Card title="Geração de Conteúdo" icon="pencil">
    **Tarefas Criativas:**

    * Geração de resumos
    * Criação de relatórios
    * Tradução de textos
    * Formatação de documentos
  </Card>

  <Card title="Verificação e Qualidade" icon="shield-check">
    **Tarefas de Controle:**

    * Verificação de compliance
    * Controle de qualidade
    * Auditoria de dados
    * Validação de regras
  </Card>
</CardGroup>

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Workflow Agent" icon="sitemap" href="/agents/workflow">
    Use Task Agents em workflows visuais complexos
  </Card>

  <Card title="Sequential Agent" icon="arrow-right" href="/agents/sequential">
    Combine Task Agents em sequências ordenadas
  </Card>

  <Card title="Agente LLM" icon="brain" href="/agents/llm">
    Entenda os agentes que executam as tarefas
  </Card>

  <Card title="A2A Agent" icon="network-wired" href="/agents/a2a">
    Use agentes externos como executores de tarefas
  </Card>
</CardGroup>

***

O Task Agent é perfeito para criar unidades de trabalho bem definidas e especializadas. Use-o quando quiser atribuir responsabilidades específicas a agentes especializados, seguindo o padrão do CrewAI para organização eficiente de equipes de agentes.
