> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Workflows

## Visão geral

Os Workflows de Agentes oferecem uma interface visual avançada para projetar fluxos de conversa complexos no ElevenAgents. Em vez de depender de caminhos lineares de conversa, os workflows permitem criar grafos de conversa sofisticados e ramificados que se adaptam dinamicamente às necessidades do usuário.

![Visão geral do workflow](/docs/_fern-img/0b5b2cf9754c67ef469c08af5d13786f70ca8e0018d10e92595861abb4ed32cb.webp)

## Criação de workflows

O painel é a forma recomendada de criar workflows devido ao editor visual de grafos. Os workflows são armazenados no campo `workflow` de nível superior do agente, portanto você também pode baixar, editar e enviar o JSON pela CLI ou atualizá-lo pelo SDK — o que é útil para controle de versão e CI/CD.

#### Criar pelo painel

Abra seu agente no painel, acesse a aba **Workflow** e use o editor visual para adicionar nós, configurar o comportamento dos subagentes e conectar arestas. Salve suas alterações.

#### Atualizar pela CLI

#### Baixe a configuração do agente

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Edite \`agent_configs/\<agent-name>.json\`

O grafo do workflow fica na chave `workflow` de nível superior. `nodes` e `edges` são objetos identificados por ID. Abaixo está um workflow mínimo de três nós que direciona o nó inicial para um subagente de suporte e, em seguida, para um nó final:

```json
{
  "workflow": {
    "nodes": {
      "start_node": {
        "type": "start",
        "edge_order": ["start_to_support"]
      },
      "support_agent": {
        "type": "override_agent",
        "label": "Support agent",
        "additional_prompt": "Help the user with their support request, then transition to the end node when resolved.",
        "edge_order": ["support_to_end"]
      },
      "end_node": {
        "type": "end"
      }
    },
    "edges": {
      "start_to_support": {
        "source": "start_node",
        "target": "support_agent",
        "forward_condition": { "type": "unconditional" }
      },
      "support_to_end": {
        "source": "support_agent",
        "target": "end_node",
        "forward_condition": {
          "type": "llm",
          "condition": "The support request has been resolved."
        }
      }
    }
  }
}
```

A maioria das equipes projeta os workflows primeiro no painel e depois envia o JSON resultante para o controle de versão.

#### Envie suas alterações

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### Atualizar pela API

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    workflow={
        "nodes": {
            "start_node": {
                "type": "start",
                "edge_order": ["start_to_support"],
            },
            "support_agent": {
                "type": "override_agent",
                "label": "Support agent",
                "additional_prompt": "Help the user with their support request, then transition to the end node when resolved.",
                "edge_order": ["support_to_end"],
            },
            "end_node": {"type": "end"},
        },
        "edges": {
            "start_to_support": {
                "source": "start_node",
                "target": "support_agent",
                "forward_condition": {"type": "unconditional"},
            },
            "support_to_end": {
                "source": "support_agent",
                "target": "end_node",
                "forward_condition": {
                    "type": "llm",
                    "condition": "The support request has been resolved.",
                },
            },
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  workflow: {
    nodes: {
      start_node: {
        type: "start",
        edgeOrder: ["start_to_support"],
      },
      support_agent: {
        type: "override_agent",
        label: "Support agent",
        additionalPrompt:
          "Help the user with their support request, then transition to the end node when resolved.",
        edgeOrder: ["support_to_end"],
      },
      end_node: { type: "end" },
    },
    edges: {
      start_to_support: {
        source: "start_node",
        target: "support_agent",
        forwardCondition: { type: "unconditional" },
      },
      support_to_end: {
        source: "support_agent",
        target: "end_node",
        forwardCondition: {
          type: "llm",
          condition: "The support request has been resolved.",
        },
      },
    },
  },
});
```

## Tipos de nós

Os workflows são compostos por diferentes tipos de nós, cada um com uma finalidade específica no fluxo da sua conversa.

![Tipos de nós](/docs/_fern-img/b169065e0f229623a4cd57861802fa30ecd463a142599f5fd60f6fc1b8a6223e.webp)

### Nós de subagente

Os nós de subagente permitem modificar o comportamento do agente em pontos específicos do workflow. Essas modificações são aplicadas sobre a configuração do agente base ou podem substituir completamente a configuração do agente atual, oferecendo controle detalhado sobre cada fase da conversa.
Qualquer configuração do agente, ferramentas disponíveis e itens anexados à base de conhecimento podem ser atualizados/substituídos.

#### Geral

![Configuração adicional do agente do subagente](/docs/_fern-img/8ca72df8768a03adc0064281c906ab0f5710153249d17f7e7d51f465da7e9e94.webp)

Modifique as configurações principais do agente para este nó específico:

* **Prompt de sistema**: Adicione ou substitua instruções do sistema para orientar o comportamento do agente
* **Seleção de LLM**: Escolha outro modelo de linguagem (por exemplo, mude do Gemini 2.0 Flash para um modelo mais avançado em tarefas complexas de raciocínio)
* **Configuração de voz**: Altere as configurações de voz, incluindo velocidade, tom ou até mesmo uma voz diferente

**Casos de uso:**

* Use um LLM mais avançado para nós de tomada de decisão complexa
* Aplique diretrizes de conversa mais rigorosas durante a coleta de informações sensíveis
* Altere as características da voz para diferentes fases da conversa
* Modifique a personalidade do agente para tipos específicos de interação

#### Base de conhecimento

![Base de conhecimento adicional do subagente](/docs/_fern-img/168a56fc316596983275999c53bbbe391c4c30a05abedc17cb6a4566eff7773f.webp)

Adicione conhecimento específico do nó sem afetar a base de conhecimento global:

* **Incluir base de conhecimento global**: Defina se a base de conhecimento principal do agente deve ser incluída
* **Documentos adicionais**: Adicione documentos específicos desta fase da conversa
* **Conhecimento dinâmico**: Insira informações contextuais com base no estado do workflow

**Casos de uso:**

* Adicione documentação específica do produto durante conversas de vendas
* Inclua diretrizes de conformidade durante a autenticação
* Forneça guias de solução de problemas para fluxos de suporte
* Adicione informações de preço somente após a qualificação

#### Ferramentas

![Ferramentas adicionais do subagente](/docs/_fern-img/9af53c3227661fd88bec57cb21197eb289760d33a874b56152d507373e51bac1.webp)

Gerencie quais ferramentas estão disponíveis para o agente neste nó:

* **Incluir ferramentas globais**: Defina se as ferramentas da configuração principal do agente devem ser incluídas
* **Ferramentas adicionais**: Adicione ferramentas específicas deste nó do workflow (por exemplo, ferramentas de webhook como `book_meeting`)
* **Tipo de ferramenta**: Especifique se as ferramentas são webhooks, chamadas de API ou outras integrações

**Casos de uso:**

* Adicione ferramentas de autenticação apenas após a qualificação inicial
* Ative ferramentas de processamento de pagamentos nos nós de checkout
* Forneça acesso ao CRM após a verificação do usuário
* Adicione ferramentas de agendamento para fases de marcação de compromissos
* Inclua ferramentas de webhook para ações específicas, como agendar reuniões

### Nó de fala

Um nó de fala faz o agente dizer uma mensagem em um ponto específico do workflow e então continuar por suas arestas de saída. Use-o quando a redação de uma mensagem for importante e não deva ser deixada a um subagente, por exemplo, em uma saudação, uma declaração legal ou uma confirmação lida para o usuário.

Cada nó de fala envia sua mensagem em um de dois modos:

* **Literal**: o agente diz o texto exato que você inserir, com uma tradução opcional para cada idioma configurado.
* **Prompt**: o LLM gera a mensagem a partir de uma descrição que você escreve.

### Nó de ferramenta de execução

Os nós de ferramenta executam uma chamada de ferramenta específica durante o fluxo da conversa. Ao contrário das ferramentas em subagentes, os nós de ferramenta são pontos de execução dedicados que garantem que a ferramenta seja chamada.

![Arestas de resultado do nó de ferramenta](/docs/_fern-img/6b60603e56dfb25e89cdfe4223826f635af874e034af8936d74d3b428611e17b.webp)

**Configuração especial de arestas:**
Os nós de ferramenta têm um tipo único de aresta que permite direcionar para um novo nó com base no resultado da execução da ferramenta. Você pode definir:

* **Caminho de sucesso**: Para onde direcionar quando a ferramenta é executada com sucesso
* **Caminho de falha**: Para onde direcionar quando a ferramenta falha ou retorna um erro

No futuro, serão fornecidas outras condições de ramificação.

### Nó de atualização de estado

Um nó de atualização de estado atribui uma ou mais [variáveis dinâmicas](/docs/pt/eleven-agents/customization/personalization/dynamic-variables) sempre que o workflow passa por ele, usando as mesmas expressões da ferramenta Atualizar estado. Ao contrário da ferramenta, que é executada quando o LLM decide chamá-la, o nó sempre aplica suas atualizações naquele ponto do grafo e então continua pelas arestas de saída.

Saiba mais [aqui](/docs/pt/eleven-agents/customization/tools/system-tools/update-state).

### Nó de transferência de agente

O nó de transferência de agente facilita a transferência da conversa entre diferentes agentes conversacionais. Saiba mais [aqui](/docs/pt/eleven-agents/customization/tools/system-tools/agent-transfer).

### Nó de transferência para número

Os nós de transferência para número fazem a transição de uma conversa com um agente de IA para um agente humano por sistemas telefônicos. Saiba mais [aqui](/docs/pt/eleven-agents/customization/tools/system-tools/transfer-to-number)

### Nó de encerramento

Os nós de encerramento de chamada finalizam o fluxo da conversa de forma adequada. Saiba mais [aqui](/docs/pt/eleven-agents/customization/tools/system-tools/transfer-to-number#:~:text=System%20tools-,End%20call,-Language%20detection)

## Arestas e controle de fluxo

As arestas definem como as conversas fluem entre os nós do seu workflow. Elas oferecem suporte a uma lógica de roteamento sofisticada que possibilita caminhos de conversa dinâmicos e sensíveis ao contexto.

![Arestas do workflow](/docs/_fern-img/02d664c9211bb8cf5452b80ab865f26b8d0b723a6acff75141ea1e9c43f7dbab.webp)

#### Arestas de avanço

As arestas de avanço movem a conversa para os nós seguintes do workflow. Elas representam o fluxo principal da sua conversa.

![Configuração da aresta de avanço](/docs/_fern-img/2400c66bf6f60b0d4262ecd828dea93847197f7cc00d9c8964e6486419bc90be.webp)

#### Arestas de retorno

As arestas de retorno permitem que as conversas voltem a nós anteriores, possibilitando interações iterativas e lógica de repetição.

![Configuração da aresta de retorno](/docs/_fern-img/e211da75e56c826fd763ae4d8149604a866d3ec63271c572e177d52bb9a80e14.webp)

**Casos de uso:**

* Tentar novamente autenticações que falharam
* Voltar para coletar informações adicionais
* Fazer uma nova qualificação após mudanças nos requisitos do usuário
* Processos iterativos de solução de problemas

#### Condição do LLM

Use condições do LLM para criar fluxos de conversa dinâmicos com base em avaliação por linguagem natural. O LLM avalia as condições em tempo real para determinar o caminho adequado.

![Condição do LLM para transferência de agente](/docs/_fern-img/507885879d781f291ab35b7dda84e760767a5544ffb6bf7b455e7a1cc19b78b7.webp)

**Opções de configuração:**

* **Rótulo**: Descrição legível da condição da aresta (não processada pelo LLM)
* **Condição do LLM**: Condição em linguagem natural avaliada pelo LLM

#### Expressão

Use expressões para criar lógica condicional com base em variáveis e dados estruturados.

![Expressão para transferência de agente](/docs/_fern-img/712fc40d707906a7c6ccb4b0a76f0fd3857278176606d441bfb5245f5f6e0ffe.webp)

**Opções de configuração:**

* **Rótulo**: Descrição legível da condição da aresta (não processada pelo LLM)
* **Expressão**: Critérios de avaliação determinísticos com base na estrutura dos dados

#### Nenhuma

As transições incondicionais movem automaticamente a conversa para o próximo nó, sem nenhuma condição.

![Transferência incondicional de agente](/docs/_fern-img/73b70ce7c783277e64ba533f6d69c84e2ed3120f1fd03dbdebcd4d4f5358eb5b.webp)

**Casos de uso:**

* Etapas sequenciais que sempre ocorrem uma após a outra
* Progressão automática após concluir uma ação
* Caminhos alternativos padrão

## Análises

![Aba de análises do workflow mostrando entradas por nó, durações, encerramentos e fluxo de arestas sobrepostos
ao grafo do workflow](/docs/_fern-img/a758029a005f0327c1e6319708577efd617399c72cec63d5c342d3af2f0db2a3.webp)

Quando um workflow está ativo, a aba **Workflow** no [painel de análises](/docs/pt/eleven-agents/dashboard#workflow-analytics) sobrepõe os dados de uso ao grafo: entradas por nó, tempo médio gasto e encerramentos, além da distribuição das arestas de entrada e saída de cada nó. Pelo inspetor de nós, você também pode acessar diretamente as conversas correspondentes no histórico pelo filtro **Nó acessado**.