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

# Agente LLM

> Entenda como funcionam os agentes LLM e como configurá-los para diferentes casos de uso

## Visão Geral

O **Agente LLM** é o componente central do Evo AI, atuando como a parte "pensante" da sua aplicação. Ele aproveita o poder de um Large Language Model (LLM) para raciocínio, compreensão de linguagem natural, tomada de decisões, geração de respostas e interação com ferramentas.

Diferentemente dos agentes de workflow determinísticos que seguem caminhos de execução predefinidos, o comportamento do `Agente LLM` é não-determinístico. Ele usa o LLM para interpretar instruções e contexto, decidindo dinamicamente como proceder, quais ferramentas usar (se houver) ou se deve transferir controle para outro agente.

<Note>
  **Baseado no Google ADK**: Esta implementação segue os padrões estabelecidos pelo [Google Agent Development Kit](https://google.github.io/adk-docs/agents/llm-agents/), garantindo compatibilidade e melhores práticas.
</Note>

## Características Principais

<CardGroup cols={2}>
  <Card title="Raciocínio Dinâmico" icon="brain">
    Usa LLMs para interpretação contextual e tomada de decisões inteligentes
  </Card>

  <Card title="Uso de Ferramentas" icon="wrench">
    Integra com APIs, bancos de dados e serviços externos através de tools
  </Card>

  <Card title="Multi-turn" icon="comments">
    Mantém contexto em conversas longas e complexas
  </Card>

  <Card title="Flexibilidade" icon="arrow-right-arrow-left">
    Adapta-se a diferentes cenários sem reprogramação
  </Card>
</CardGroup>

## Criando seu Primeiro Agente LLM

### Passo a Passo na Plataforma

Vamos criar um agente LLM completo usando a interface do Evo AI:

<AccordionGroup>
  <Accordion icon="robot" title="1. Iniciar criação do agente">
    1. Na tela principal do Evo AI, clique em **"New Agent"**
    2. Você será direcionado para o formulário de criação

    <img src="https://mintcdn.com/evoai/aegF-STVJ9LMQ4Va/images/prints/quickstarter06_click_new_agent.png?fit=max&auto=format&n=aegF-STVJ9LMQ4Va&q=85&s=24634ce8f50c8fb964a7f9837282423b" alt="Clicando em New Agent" width="1646" height="955" data-path="images/prints/quickstarter06_click_new_agent.png" />
  </Accordion>

  <Accordion icon="gear" title="2. Configurar informações básicas">
    **Type:** Selecione **"LLM Agent"**

    **Name:** Nome único e descritivo

    ```
    Exemplo: assistente_vendas_tech
    ```

    **Description:** Resumo das capacidades (usado por outros agentes)

    ```
    Exemplo: Especialista em vendas de produtos de tecnologia, 
    com foco em notebooks, smartphones e acessórios
    ```

    **Role:** Papel específico que o agente desempenhará

    ```
    Exemplo: Consultor de vendas especializado em tecnologia
    ```

    **Goal:** Objetivo principal e mensurável

    ```
    Exemplo: Ajudar clientes a encontrar produtos tecnológicos 
    adequados às suas necessidades e orçamento, maximizando 
    a satisfação e conversão de vendas
    ```

    <img src="https://mintcdn.com/evoai/aegF-STVJ9LMQ4Va/images/prints/quickstarter07_form_agent.png?fit=max&auto=format&n=aegF-STVJ9LMQ4Va&q=85&s=9fe2575a4244c13bcac1077e21a7dc09" alt="Formulário de Criação do Agente" width="1262" height="1380" data-path="images/prints/quickstarter07_form_agent.png" />
  </Accordion>

  <Accordion icon="brain" title="3. Selecionar modelo e API Key">
    **API Key:** Selecione uma das API Keys já cadastradas

    **Model:** Escolha o modelo de IA baseado nas necessidades:

    | Modelo              | Características               | Melhor para                |
    | ------------------- | ----------------------------- | -------------------------- |
    | **GPT-4**           | Raciocínio avançado, criativo | Tarefas complexas, análise |
    | **GPT-3.5-turbo**   | Rápido, econômico             | Conversas gerais, suporte  |
    | **Claude-3-Sonnet** | Equilibrado, seguro           | Análise de documentos      |
    | **Gemini-Pro**      | Multimodal, rápido            | Processamento de imagens   |
    | **Llama2-70b**      | Open source, customizável     | Casos específicos          |

    ```
    Recomendação: GPT-4 para agentes de vendas complexos
    ```
  </Accordion>

  <Accordion icon="file" title="4. Definir instruções detalhadas">
    **Instructions:** O coração do seu agente - seja específico e claro

    ```markdown theme={null}
    # Assistente de Vendas Especializado em Tecnologia

    Você é um consultor de vendas experiente e amigável, especializado em produtos de tecnologia.

    ## Seu processo de atendimento:

    1. **Cumprimente** o cliente de forma calorosa e profissional
    2. **Identifique necessidades** através de perguntas estratégicas:
       - Que tipo de produto está procurando?
       - Qual o orçamento disponível?
       - Para que finalidade será usado?
       - Há preferências de marca ou especificações?
    3. **Analise o perfil** do cliente (iniciante, intermediário, avançado)
    4. **Apresente opções** adequadas com justificativas claras
    5. **Destaque benefícios** específicos para cada necessidade
    6. **Ofereça alternativas** dentro do orçamento
    7. **Finalize** com próximos passos claros

    ## Tom de voz:
    - Profissional mas amigável
    - Educado e prestativo
    - Focado em soluções
    - Transparente sobre limitações
    - Evite jargões técnicos excessivos

    ## Diretrizes importantes:
    - Sempre pergunte antes de assumir necessidades
    - Seja honesto sobre prós e contras dos produtos
    - Ofereça opções em diferentes faixas de preço
    - Mantenha foco na satisfação do cliente
    ```
  </Accordion>

  <Accordion icon="gear" title="5. Configurar Agent Settings">
    **Seção `Agent Settings` - Configure funcionalidades avançadas:**

    **Para nosso assistente de vendas, recomendamos:**

    **✅ Load Memory:**

    * Ative para lembrar preferências dos clientes
    * Permite personalização ao longo do tempo
    * Melhora experiência de clientes recorrentes

    **❌ Preload Memory:**

    * Não recomendado inicialmente (alto custo de tokens)
    * Considere apenas para clientes VIP com histórico longo

    **✅ Planner:**

    * Ative para processos de vendas estruturados
    * Ajuda a dividir tarefas complexas (análise + recomendação + fechamento)
    * Melhora organização do atendimento

    **✅ Load Knowledge:**

    * Ative para acesso ao catálogo de produtos
    * Configure tags: `produtos`, `tecnologia`, `precos`
    * Permite respostas atualizadas sobre especificações

    **✅ Output Schema:**

    * Configure para capturar dados estruturados do cliente:

    ```json theme={null}
    {
      "cliente_nome": {
        "type": "string",
        "description": "Nome do cliente"
      },
      "categoria_interesse": {
        "type": "string", 
        "description": "Categoria de produto de interesse"
      },
      "orcamento_range": {
        "type": "string",
        "description": "Faixa de orçamento (ex: 1000-3000)"
      },
      "urgencia": {
        "type": "string",
        "description": "Nível de urgência: baixa, média, alta"
      },
      "proximos_passos": {
        "type": "array",
        "description": "Lista de ações recomendadas"
      }
    }
    ```

    **💡 Dica:** Comece com configurações básicas e ajuste conforme necessidade. Monitore custos especialmente com Preload Memory ativado.
  </Accordion>

  <Accordion icon="check" title="6. Salvar e ativar">
    1. Revise todas as configurações cuidadosamente
    2. Clique em **"Save"** ou **"Criar Agente"**
    3. Aguarde a confirmação de criação
    4. Seu agente estará disponível na lista de agentes
    5. Status deve aparecer como "Ativo"
  </Accordion>
</AccordionGroup>

## Sistemas Multi-Agente (Sub-Agents)

### Conceitos Fundamentais

Baseado no [Google Agent Development Kit](https://google.github.io/adk-docs/agents/multi-agents/), sistemas multi-agente permitem criar aplicações complexas através da composição de múltiplos agentes especializados.

<Note>
  **Função transfer\_to\_agent**: Quando você configura sub-agentes para um agente LLM, automaticamente uma ferramenta `transfer_to_agent` é disponibilizada. Esta função permite que o agente principal delegue a execução da sessão para um dos seus sub-agentes especializados, transferindo o controle completo da conversa.
</Note>

<CardGroup cols={2}>
  <Card title="Hierarquia de Agentes" icon="sitemap">
    Estrutura pai-filho onde agentes coordenam sub-agentes especializados
  </Card>

  <Card title="Agentes de Workflow" icon="diagram-project">
    Orquestradores que gerenciam fluxo de execução entre sub-agentes
  </Card>

  <Card title="Comunicação" icon="comments">
    Mecanismos para compartilhar estado e delegar tarefas entre agentes
  </Card>

  <Card title="Especialização" icon="bullseye">
    Cada agente foca em uma responsabilidade específica
  </Card>
</CardGroup>

### Configurando Sub-Agentes na Plataforma

<AccordionGroup>
  <Accordion icon="tree" title="1. Hierarquia de Agentes (Parent-Child)">
    **Como configurar na interface:**

    1. **Crie os agentes especializados primeiro:**
       * Agente de cumprimentos
       * Agente de qualificação
       * Agente de demonstração
       * Agente de fechamento
    2. **Configure o agente coordenador:**
       * No formulário do agente principal
       * Seção **"Sub-Agents"**
       * Selecione os agentes criados anteriormente
       * Defina a ordem de prioridade
    3. **Defina as instruções de coordenação:**
       ```markdown theme={null}
       # Coordenador de Vendas

       Você gerencia uma equipe de especialistas:
       - greeter: Para cumprimentos iniciais
       - qualifier: Para qualificação de leads
       - demo_specialist: Para demonstrações
       - closer: Para fechamento de vendas

       Analise cada solicitação e direcione para o especialista adequado usando a função transfer_to_agent.

       Exemplo de uso:
       - Para cumprimentos e boas-vindas → transfer_to_agent("greeter")
       - Para qualificar necessidades → transfer_to_agent("qualifier") 
       - Para demonstrar produtos → transfer_to_agent("demo_specialist")
       - Para finalizar vendas → transfer_to_agent("closer")
       ```

    **Regras importantes:**

    * Cada agente pode ter apenas um pai
    * Configure hierarquia clara de responsabilidades
    * Use nomes descritivos para facilitar referências
  </Accordion>

  <Accordion icon="users" title="2. Exemplo Prático: Equipe de Vendas">
    **Estrutura recomendada:**

    **Agente 1: Qualificador de Leads**

    * **Name:** `lead_qualifier`
    * **Description:** `Qualifica leads e identifica orçamento e necessidades`
    * **Instructions:**

    ```markdown theme={null}
    Faça perguntas para qualificar o lead:
    1. Orçamento disponível
    2. Urgência da compra
    3. Autoridade de decisão
    4. Necessidades específicas

    Salve as informações coletadas para os próximos agentes.
    ```

    **Agente 2: Demonstrador de Produtos**

    * **Name:** `product_demo`
    * **Description:** `Demonstra produtos e explica benefícios técnicos`
    * **Instructions:**

    ```markdown theme={null}
    Com base nas informações do qualificador:
    1. Selecione produtos adequados ao perfil
    2. Explique benefícios específicos
    3. Faça demonstração virtual detalhada
    4. Responda objeções técnicas
    ```

    **Agente 3: Especialista em Fechamento**

    * **Name:** `closer`
    * **Description:** `Especialista em fechamento e negociação`
    * **Instructions:**

    ```markdown theme={null}
    Finalize a venda:
    1. Resuma benefícios apresentados
    2. Crie senso de urgência apropriado
    3. Negocie condições quando necessário
    4. Guie para próximos passos concretos
    ```

    **Coordenador Principal:**

    * **Name:** `sales_team_coordinator`
    * **Sub-Agents:** `lead_qualifier`, `product_demo`, `closer`
    * **Instructions:**

    ```markdown theme={null}
    Gerencie o processo de vendas:
    1. Avalie qual especialista deve atender
    2. Use transfer_to_agent() para delegar para o especialista adequado
    3. Monitore progresso de cada etapa
    4. Decida quando transferir entre agentes
    5. Mantenha contexto unificado

    Delegação por especialidade:
    - lead_qualifier: Para identificar necessidades e orçamento
    - product_demo: Para apresentar soluções e demonstrações
    - closer: Para negociação e fechamento final

    Exemplo: transfer_to_agent("lead_qualifier") quando cliente solicitar informações
    ```
  </Accordion>
</AccordionGroup>

### Mecanismos de Comunicação

<AccordionGroup>
  <Accordion icon="arrows-rotate" title="Função transfer_to_agent">
    **Como funciona:**

    * Disponibilizada automaticamente quando sub-agentes são configurados
    * Permite transferir controle completo da sessão para um sub-agente específico
    * O sub-agente assume a conversa e pode interagir diretamente com o usuário
    * Contexto e histórico são mantidos durante a transferência

    **Configuração na plataforma:**

    1. **Configure Sub-Agents** no agente coordenador
    2. **Use nas Instructions** orientações claras sobre quando transferir
    3. **Identifique por name** o sub-agente de destino

    **Sintaxe de uso:**

    ```markdown theme={null}
    transfer_to_agent("nome_do_agente")
    ```

    **Exemplo prático:**

    ```markdown theme={null}
    # Nas instruções do coordenador
    Quando identificar que o cliente quer:
    - Informações de produtos → transfer_to_agent("vendas_specialist")
    - Suporte técnico → transfer_to_agent("tech_support")
    - Questões financeiras → transfer_to_agent("billing_agent")
    ```

    **Vantagens:**

    * Especialização completa por área
    * Reduz complexidade das instruções
    * Melhora qualidade das respostas especializadas
    * Facilita manutenção e atualizações
  </Accordion>

  <Accordion icon="database" title="Estado Compartilhado">
    **Como funciona:**

    * Agentes compartilham informações via estado da sessão
    * Dados persistem durante toda a conversa
    * Permite continuidade entre diferentes agentes

    **Configuração na plataforma:**

    1. **Output Key:** Defina chave para salvar resultado
    2. **Instructions:** Use `{{user_input}}` para input inicial e `{{output_key}}` para dados salvos
    3. **Context:** Configure quais dados compartilhar

    **Exemplo prático:**

    * Agente 1 salva: `customer_name`, `budget`, `preferences`
    * Agente 2 usa: "Analise o pedido do usuário: `{{user_input}}` e use dados do cliente: `{{customer_data}}`"
    * Agente 3 acessa: Histórico completo da conversa
  </Accordion>

  <Accordion icon="share" title="Delegação Inteligente">
    **Como funciona:**

    * Agente coordenador analisa solicitação
    * Decide automaticamente qual especialista acionar
    * Transfere contexto completo para o agente escolhido

    **Configuração na plataforma:**

    1. **Sub-Agents:** Configure especialistas disponíveis
    2. **Instructions:** Defina critérios de roteamento
    3. **Descriptions:** Descreva bem cada especialista

    **Exemplo de instruções:**

    ```markdown theme={null}
    Analise a solicitação e direcione para:

    - TÉCNICO: problemas, configurações, instalação
    - VENDAS: produtos, preços, recomendações  
    - SUPORTE: reclamações, dúvidas, ajuda
    - FINANCEIRO: faturas, pagamentos, cobranças

    Use transfer_to_agent() quando necessário.
    ```
  </Accordion>

  <Accordion icon="wrench" title="Agentes como Ferramentas">
    **Como funciona:**

    * Um agente pode usar outro agente como ferramenta
    * Permite especialização ainda maior
    * Mantém responsabilidades bem definidas

    **Configuração na plataforma:**

    1. **Tools:** Adicione outros agentes como ferramentas
    2. **Instructions:** Explique quando usar cada agente-ferramenta
    3. **Permissions:** Configure acesso entre agentes

    **Exemplo:**

    * Agente de vendas usa "calculadora de preços" (outro agente)
    * Agente de suporte usa "consultor técnico" (especialista)
    * Agente principal usa "validador de dados" (verificador)
  </Accordion>
</AccordionGroup>

## Padrões Comuns de Multi-Agente

### 1. Padrão Coordenador/Dispatcher

<AccordionGroup>
  <Accordion icon="traffic-light" title="Configuração na Plataforma">
    **Objetivo:** Agente central que roteia solicitações para especialistas

    **Passo 1: Criar Especialistas**

    * **Agente Financeiro:** Questões de faturamento e cobrança
    * **Agente Técnico:** Suporte técnico e configurações
    * **Agente Comercial:** Vendas e produtos

    **Passo 2: Configurar Dispatcher**

    * **Name:** `customer_service_dispatcher`
    * **Sub-Agents:** Adicionar todos os especialistas
    * **Instructions:**

    ```markdown theme={null}
    Analise a solicitação do cliente e determine o especialista adequado:

    🏦 FINANCEIRO: faturas, pagamentos, cobranças, preços
    🔧 TÉCNICO: problemas técnicos, configurações, instalação  
    💼 COMERCIAL: produtos, vendas, recomendações

    Transfira para o agente apropriado ou responda diretamente se for simples.
    ```

    **Vantagens:**

    * Roteamento inteligente automático
    * Especialização por área
    * Escalabilidade fácil
  </Accordion>
</AccordionGroup>

### 2. Padrão Pipeline Sequencial

<AccordionGroup>
  <Accordion icon="arrow-right" title="Configuração na Plataforma">
    **Objetivo:** Processamento estruturado em etapas sequenciais

    **Exemplo: Pipeline de Análise de Leads**

    **Etapa 1: Enriquecimento de Dados**

    * **Name:** `data_enricher`
    * **Instructions:** "Enriqueça dados do lead com informações públicas"
    * **Output Key:** `enriched_data`

    **Etapa 2: Scoring**

    * **Name:** `lead_scorer`
    * **Instructions:** "Analise o pedido: `{{user_input}}` e calcule score baseado em: `{{enriched_data}}`"
    * **Output Key:** `lead_score`

    **Etapa 3: Classificação**

    * **Name:** `lead_classifier`
    * **Instructions:** "Classifique como HOT/WARM/COLD baseado em: `{{lead_score}}`"
    * **Output Key:** `lead_classification`

    **Etapa 4: Roteamento**

    * **Name:** `lead_router`
    * **Instructions:** "Direcione para vendedor adequado: `{{lead_classification}}`"
    * **Output Key:** `assignment_result`

    **Configuração do Pipeline:**

    * **Type:** Sequential Agent
    * **Sub-Agents:** Na ordem das etapas
    * **Instructions:** Critérios de passagem entre etapas
  </Accordion>
</AccordionGroup>

### 3. Padrão Gerador-Crítico

<AccordionGroup>
  <Accordion icon="scale-balanced" title="Configuração na Plataforma">
    **Objetivo:** Melhoria iterativa através de geração e crítica

    **Agente 1: Gerador de Conteúdo**

    * **Name:** `content_generator`
    * **Instructions:**

    ```markdown theme={null}
    Gere conteúdo de marketing baseado em:
    Baseado no pedido do usuário: `{{user_input}}`

    Use informações do produto salvas em: `{{product_info}}`
    Considere o público-alvo definido em: `{{target_audience}}`
    Mantenha o tom da marca configurado em: `{{brand_voice}}`
    ```

    * **Output Key:** `generated_content`

    **Agente 2: Crítico/Revisor**

    * **Name:** `content_critic`
    * **Instructions:**

    ```markdown theme={null}
    Analise o conteúdo gerado em {{generated_content}} e avalie:
    1. Clareza e persuasão (1-10)
    2. Adequação ao público-alvo (1-10)
    3. Consistência com marca (1-10)
    4. Gramática e estilo (1-10)

    Forneça feedback específico e score geral.
    ```

    * **Output Key:** `feedback`

    **Agente 3: Refinador**

    * **Name:** `content_refiner`
    * **Instructions:**

    ```markdown theme={null}
    Refine o conteúdo baseado no feedback recebido: {{feedback}}
    Mantenha pontos fortes, melhore pontos fracos.
    ```

    * **Output Key:** `refined_content`

    **Configuração do Loop:**

    * **Type:** Loop Agent
    * **Max Iterations:** 3
    * **Sub-Agents:** Gerador → Crítico → Refinador
    * **Stop Condition:** Score > 8 ou máximo de iterações
  </Accordion>
</AccordionGroup>

## Testando seu Agente

### Primeira Conversa

<AccordionGroup>
  <Accordion icon="comments" title="Acessar interface de chat">
    1. Vá para a **tela de chat** no menu principal
    2. Clique em **"New Chat"** para iniciar uma nova conversa

    <img src="https://mintcdn.com/evoai/aegF-STVJ9LMQ4Va/images/prints/quickstarter08_new_chat.png?fit=max&auto=format&n=aegF-STVJ9LMQ4Va&q=85&s=e83d081a0fe99b42a70e23514fb56bf1" alt="Iniciando Novo Chat" width="1034" height="675" data-path="images/prints/quickstarter08_new_chat.png" />
  </Accordion>

  <Accordion icon="user-robot" title="Selecionar o agente">
    1. Selecione o agente que você acabou de criar
    2. A interface de chat será carregada com o agente escolhido

    <img src="https://mintcdn.com/evoai/aegF-STVJ9LMQ4Va/images/prints/quickstarter09_select_agent_chat.png?fit=max&auto=format&n=aegF-STVJ9LMQ4Va&q=85&s=c0cbf92ffd4dd65205bf9c42e7180150" alt="Selecionando Agente para Chat" width="929" height="1080" data-path="images/prints/quickstarter09_select_agent_chat.png" />
  </Accordion>

  <Accordion icon="message" title="Testar cenários diversos">
    **Teste 1: Necessidade básica**

    ```
    "Olá! Preciso de um notebook para trabalho, orçamento até R$ 3000."
    ```

    **Teste 2: Necessidade complexa**

    ```
    "Estou montando um setup gamer completo. Tenho R$ 8000 para gastar. 
    Quero jogar em 4K com alta qualidade."
    ```

    **Teste 3: Comparação**

    ```
    "Qual a diferença entre iPhone 15 e Samsung Galaxy S24? 
    Qual você recomenda para fotografia?"
    ```

    **Teste 4: Orçamento limitado**

    ```
    "Preciso de um smartphone bom mas barato, até R$ 800. 
    O que você tem?"
    ```

    <img src="https://mintcdn.com/evoai/aegF-STVJ9LMQ4Va/images/prints/quickstarter10_chat.png?fit=max&auto=format&n=aegF-STVJ9LMQ4Va&q=85&s=39660d98807b7bf4fd60e240f0b7ba72" alt="Conversando com o Agente" width="2306" height="865" data-path="images/prints/quickstarter10_chat.png" />
  </Accordion>

  <Accordion icon="chart-line" title="Avaliar performance">
    **Critérios de avaliação:**

    ✅ **Compreensão:** Entende corretamente as necessidades?
    ✅ **Perguntas:** Faz perguntas relevantes para qualificar?
    ✅ **Recomendações:** Sugere produtos adequados ao orçamento?
    ✅ **Explicações:** Justifica suas recomendações?
    ✅ **Tom:** Mantém tom profissional e amigável?
    ✅ **Estrutura:** Segue processo definido nas instruções?

    **Se algo não estiver funcionando:**

    * Ajuste as instruções na interface
    * Adicione exemplos específicos
    * Refine o tom de voz
    * Teste novamente
  </Accordion>
</AccordionGroup>

## Componentes Essenciais na Interface

### 1. Identidade e Propósito

<AccordionGroup>
  <Accordion icon="tag" title="Nome (Obrigatório)">
    **Campo `Name` na interface:**

    * Identificador único do agente
    * Usado para referências internas e comunicação entre agentes
    * Deve ser descritivo e refletir a função do agente
    * Evite nomes reservados como `user`

    **Exemplos:**

    * `assistente_vendas`
    * `suporte_tecnico`
    * `analista_financeiro`
  </Accordion>

  <Accordion icon="file" title="Descrição (Recomendado)">
    **Campo `Description` na interface:**

    * Resumo conciso das capacidades do agente
    * Usado por outros agentes para determinar roteamento de tarefas
    * Deve ser específico o suficiente para diferenciá-lo de outros agentes

    **Exemplos:**

    * "Especialista em consultas sobre faturas e cobranças atuais"
    * "Analisa dados financeiros e gera relatórios de performance"
    * "Resolve problemas técnicos de conectividade e configuração"
  </Accordion>

  <Accordion icon="robot" title="Modelo (Obrigatório)">
    **Campo `Model` na interface:**

    * Especifica o LLM que alimentará o raciocínio do agente
    * Impacta capacidades, custo e performance
    * Selecione da lista de modelos disponíveis

    **Opções comuns:**

    * `gpt-4` - Raciocínio avançado
    * `claude-3-sonnet` - Equilibrado e seguro
    * `gemini-2.0-flash` - Rápido e multimodal
  </Accordion>
</AccordionGroup>

### 2. Instruções (Instructions)

<AccordionGroup>
  <Accordion icon="list-check" title="Elementos essenciais">
    **Campo `Instructions` na interface:**

    * **Tarefa principal ou objetivo**
    * **Personalidade ou persona**
    * **Restrições comportamentais**
    * **Formato de saída desejado**
    * **Processo passo a passo**
  </Accordion>

  <Accordion icon="lightbulb" title="Dicas para instruções eficazes">
    **Melhores práticas na interface:**

    * **Seja claro e específico**: Evite ambiguidades
    * **Use Markdown**: Melhore a legibilidade com cabeçalhos, listas
    * **Forneça exemplos**: Para tarefas complexas
    * **Defina tom de voz**: Profissional, amigável, técnico

    **Template recomendado:**

    ```markdown theme={null}
    # [Título do Agente]

    Você é um [papel/função] especializado em [área].

    ## Suas responsabilidades:
    1. [Responsabilidade 1]
    2. [Responsabilidade 2]
    3. [Responsabilidade 3]

    ## Tom de voz:
    - [Característica 1]
    - [Característica 2]

    ## Processo:
    1. [Passo 1]
    2. [Passo 2]
    3. [Passo 3]
    ```
  </Accordion>

  <Accordion icon="code" title="Variáveis dinâmicas e compartilhamento de estado">
    **Uso de variáveis na interface:**

    Use a sintaxe `{{var}}` para inserir valores dinâmicos nas instruções do agente:

    **Variáveis automáticas disponíveis:**

    * `{{user_input}}` - A mensagem completa do usuário que iniciou a conversa
    * `{{output_key_name}}` - Resultado salvo por outros agentes (onde output\_key\_name é o nome da chave configurada)

    **Como funciona o compartilhamento de estado:**

    * Quando um agente tem um Output Key configurado, sua resposta é automaticamente salva no estado compartilhado
    * Outros agentes podem usar essa informação nas suas instruções através de placeholders
    * O estado persiste durante toda a conversa ou workflow
    * Permite que agentes trabalhem em conjunto, cada um contribuindo com sua especialidade
    * É especialmente útil em workflows sequenciais, loops e sistemas multi-agente

    **Exemplo prático:**
    Se um agente anterior salvou dados com Output Key "analise\_cliente", você pode usar:
    "Baseado na análise do cliente: `{{analise_cliente}}`, agora faça uma recomendação personalizada."
  </Accordion>
</AccordionGroup>

### 3. Configurações Avançadas

<AccordionGroup>
  <Accordion icon="gear" title="Agent Settings">
    **Seção `Agent Settings` na interface:**

    **Load Memory:**

    * Quando ativado, o agente carregará e usará sua memória de longo prazo
    * Mantém contexto e informações aprendidas nas sessões anteriores
    * Permite continuidade e personalização ao longo do tempo
    * Útil para agentes que precisam "lembrar" preferências do usuário

    **Preload Memory:**

    * Carrega automaticamente o histórico de conversas ao iniciar nova sessão
    * Fornece acesso imediato às interações e conhecimentos anteriores
    * **⚠️ Aviso de consumo:** Aumenta significativamente o uso de tokens
    * Monitore custos da API ao usar este recurso
    * Recomendado apenas para sessões que realmente precisam do contexto completo

    **Planner:**

    * Ativa recursos avançados de planejamento para tarefas complexas
    * O agente divide automaticamente tarefas grandes em etapas menores
    * Melhora a organização e execução de processos multi-etapas
    * Ideal para agentes que lidam com workflows complexos

    **Load Knowledge:**

    * Habilita acesso à base de conhecimento da organização
    * Adiciona automaticamente uma ferramenta de busca no conhecimento
    * **Filtro de Tags:** Seleciona documentos específicos por tags
    * Se nenhuma tag for especificada, usa todos os documentos disponíveis
    * Melhora qualidade das respostas com informações organizacionais

    **Output Schema:**

    * Define estrutura específica para as respostas do agente
    * Garante formato consistente e padronizado de saídas
    * Configura campos com nome, tipo e descrição
    * **Tipos disponíveis:** string, number, boolean, array, object
    * Útil para integrações e processamento automático de respostas

    **Exemplo de Output Schema:**

    ```json theme={null}
    {
      "cliente_nome": {
        "type": "string",
        "description": "Nome completo do cliente"
      },
      "necessidade_identificada": {
        "type": "string", 
        "description": "Necessidade principal identificada"
      },
      "orcamento_estimado": {
        "type": "number",
        "description": "Orçamento em reais"
      },
      "produtos_recomendados": {
        "type": "array",
        "description": "Lista de produtos sugeridos"
      },
      "urgencia": {
        "type": "boolean",
        "description": "Se a necessidade é urgente"
      }
    }
    ```
  </Accordion>

  <Accordion icon="sliders" title="Parâmetros de Geração">
    **Seção `Advanced Settings` na interface:**

    **Temperature (0.0 - 1.0):**

    * `0.0`: Respostas determinísticas
    * `0.7`: Balanceado (recomendado)
    * `1.0`: Máxima criatividade

    **Max Tokens:**

    * Limite de tokens na resposta
    * Controla tamanho da resposta
    * Considere custo vs. completude

    **Top P (0.0 - 1.0):**

    * `0.1`: Respostas focadas
    * `0.9`: Mais diversidade
  </Accordion>

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

    O Output Key permite que o agente LLM salve sua resposta em uma variável específica no estado compartilhado, tornando o resultado disponível para outros agentes ou iterações futuras.

    **Como funciona:**

    * Configure o campo `Output Key` com um nome descritivo
    * A resposta do agente será salva 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: "resultado_vendas"
    → Salva em state.resultado_vendas

    Output Key: "analise_tecnica" 
    → Salva em state.analise_tecnica

    Output Key: "proposta_final"
    → Salva em state.proposta_final
    ```

    **Uso em outros agentes:**

    ```markdown theme={null}
    # Nas instruções de agentes subsequentes:
    "Baseado na análise anterior: {{analise_tecnica}}"
    "Refine esta proposta: {{proposta_final}}"
    "Considere os resultados: {{resultado_vendas}}"
    ```

    **Controle automático de loops:**

    * Quando um agente LLM é usado dentro de um Loop Agent, o sistema automaticamente adiciona a ferramenta `exit_loop`
    * O agente pode usar essa ferramenta para sinalizar quando o loop deve parar
    * Isso é útil para processos iterativos como refinamento de conteúdo ou análise até atingir qualidade desejada

    **Boas práticas:**

    * Use snake\_case: `resultado_analise`, `dados_processados`
    * Seja descritivo: `feedback_qualidade` em vez de `feedback`
    * Evite conflitos com variáveis existentes no estado
    * Documente o formato esperado nas instruções
    * Em loops, instrua claramente quando o agente deve usar `exit_loop`
  </Accordion>
</AccordionGroup>

## Casos de Uso Comuns

<CardGroup cols={2}>
  <Card title="Atendimento ao Cliente" icon="headset">
    **Configuração recomendada:**

    * Model: GPT-3.5-turbo (rápido)
    * Temperature: 0.3 (consistente)
    * Sub-agents: Especialistas por área
    * Tools: Base de conhecimento
    * **Agent Settings:**
      * Load Memory: ✅ (lembrar preferências)
      * Load Knowledge: ✅ (FAQ e políticas)
      * Output Schema: ✅ (tickets estruturados)
  </Card>

  <Card title="Assistente de Vendas" icon="chart-line">
    **Configuração recomendada:**

    * Model: GPT-4 (raciocínio avançado)
    * Temperature: 0.7 (criativo)
    * Sub-agents: Qualificador, demonstrador
    * Tools: Catálogo de produtos
    * **Agent Settings:**
      * Load Memory: ✅ (histórico cliente)
      * Planner: ✅ (processo vendas)
      * Output Schema: ✅ (dados estruturados)
  </Card>

  <Card title="Análise de Dados" icon="chart-bar">
    **Configuração recomendada:**

    * Model: Claude-3-Sonnet (analítico)
    * Temperature: 0.2 (preciso)
    * Sub-agents: Coletores de dados
    * Tools: APIs de dados
    * **Agent Settings:**
      * Planner: ✅ (análises complexas)
      * Output Schema: ✅ (relatórios padronizados)
      * Load Knowledge: ✅ (metodologias)
  </Card>

  <Card title="Assistente Pessoal" icon="user-tie">
    **Configuração recomendada:**

    * Model: Gemini-Pro (multimodal)
    * Temperature: 0.5 (equilibrado)
    * Sub-agents: Agenda, tarefas
    * Tools: Calendário, email
    * **Agent Settings:**
      * Load Memory: ✅ (preferências pessoais)
      * Preload Memory: ✅ (contexto completo)
      * Planner: ✅ (organização tarefas)
  </Card>
</CardGroup>

## Melhores Práticas

<AccordionGroup>
  <Accordion icon="bullseye" title="Definição clara de objetivos">
    **Na interface da plataforma:**

    * **Seja específico** no campo Description
    * **Defina limites** claros nas Instructions
    * **Estabeleça critérios** mensuráveis no Goal
    * **Documente casos de uso** no campo Notes
  </Accordion>

  <Accordion icon="comments" title="Otimização de conversas">
    **Configurações recomendadas:**

    * **Use Output Keys** para rastrear progresso
    * **Configure Sub-Agents** para especialização
    * **Implemente fallbacks** nas instruções
    * **Monitore performance** via logs
  </Accordion>

  <Accordion icon="gear" title="Agent Settings - Boas Práticas">
    **Load Memory:**

    * ✅ Use para agentes de atendimento personalizado
    * ✅ Ative para assistentes que precisam lembrar preferências
    * ❌ Evite para agentes que processam dados sensíveis
    * ❌ Não use se a privacidade for crítica

    **Preload Memory:**

    * ✅ Ideal para continuação de sessões complexas
    * ⚠️ **Cuidado:** Monitore custos - aumenta uso de tokens significativamente
    * ✅ Use apenas quando contexto histórico for essencial
    * ❌ Evite para agentes de alta frequência/baixo contexto

    **Planner:**

    * ✅ Essencial para tarefas multi-etapas complexas
    * ✅ Use em agentes de análise e relatórios
    * ✅ Ideal para workflows de vendas estruturados
    * ❌ Desnecessário para respostas simples/diretas

    **Load Knowledge:**

    * ✅ Configure tags específicas para filtrar conhecimento relevante
    * ✅ Use para agentes que precisam de informações organizacionais
    * ✅ Combine com instruções claras sobre quando buscar conhecimento
    * ❌ Sem tags pode tornar respostas lentas em bases grandes

    **Output Schema:**

    * ✅ Essencial para integrações com outros sistemas
    * ✅ Use para padronizar dados estruturados
    * ✅ Defina descrições claras para cada campo
    * ✅ Teste o schema antes de usar em produção
    * ❌ Não use para conversas naturais simples
  </Accordion>

  <Accordion icon="shield" title="Segurança e confiabilidade">
    **Configurações de segurança:**

    * **Valide entradas** nas instruções
    * **Limite escopo** de cada agente
    * **Configure rate limiting** se disponível
    * **Monitore custos** via dashboard
    * **⚠️ Atenção especial:** Preload Memory aumenta custos significativamente
    * **Gerencie acesso** à base de conhecimento via tags apropriadas
  </Accordion>
</AccordionGroup>

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Agentes de Workflow" icon="sitemap" href="/agents/workflow">
    Aprenda sobre agentes determinísticos para processos estruturados
  </Card>

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

  <Card title="Protocolo A2A" icon="network-wired" href="/a2a-protocol">
    Integre com outros sistemas usando o protocolo Agent-to-Agent
  </Card>

  <Card title="Ferramentas Personalizadas" icon="wrench" href="/configurations/custom_tools">
    Crie ferramentas específicas para suas necessidades
  </Card>
</CardGroup>

***

Os agentes LLM são a base para criar experiências de IA verdadeiramente inteligentes e adaptáveis. Com a configuração adequada via interface da plataforma, você pode construir assistentes poderosos que atendem às necessidades específicas do seu negócio.
