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

# Variáveis

O bloco Variáveis atualiza as variáveis do fluxo de trabalho durante a execução. As variáveis devem ser inicializadas primeiro na seção Variáveis do seu fluxo de trabalho, depois você pode usar este bloco para atualizar seus valores enquanto seu fluxo de trabalho é executado.

<div className="flex justify-center my-6">
  <img src="https://mintcdn.com/aruroraai/ZEdOsJiaQfygoyWq/images/variables.png?fit=max&auto=format&n=ZEdOsJiaQfygoyWq&q=85&s=a189811de27148aa357c56d51b7a457c" alt="Variables" width="354" height="306" data-path="images/variables.png" />
</div>

<Callout>
  Acesse as variáveis em qualquer parte do seu fluxo de trabalho usando a sintaxe `<variable.variableName>`.
</Callout>

## Visão geral

O bloco Variáveis permite:

<Steps>
  <Step>
    <strong>Atualizar variáveis do fluxo de trabalho</strong>: Alterar valores
    de variáveis durante a execução
  </Step>

  <Step>
    <strong>Armazenar dados dinâmicos</strong>: Capturar saídas de blocos em
    variáveis
  </Step>

  <Step>
    <strong>Manter o estado</strong>: Acompanhar contadores, indicadores e
    resultados intermediários
  </Step>
</Steps>

## Como usar Variáveis

### 1. Inicializar em Variáveis do fluxo de trabalho

Primeiro, crie suas variáveis na seção Variáveis do fluxo de trabalho (acessível a partir da configuração do fluxo de trabalho):

```
customerEmail = ""
retryCount = 0
currentStatus = "pending"
```

### 2. Atualizar com o bloco Variáveis

Use o bloco Variáveis para atualizar esses valores durante a execução:

```
customerEmail = <api.email>
retryCount = <variable.retryCount> + 1
currentStatus = "processing"
```

### 3. Acessar de qualquer lugar

Referencie variáveis em qualquer bloco:

```
Agent prompt: "Send email to <variable.customerEmail>"
Condition: <variable.retryCount> < 5
API body: {"status": "<variable.currentStatus>"}
```

## Exemplos de casos de uso

### Contador de loop e estado

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">Cenário: Acompanhar o progresso através de iterações de loop</h4>

  <ol className="list-decimal pl-5 text-sm">
    <li>Inicializar no fluxo de trabalho: `itemsProcessed = 0`, `lastResult = ""`</li>
    <li>O loop itera sobre elementos</li>
    <li>Dentro do loop: O agente processa o elemento atual</li>
    <li>Dentro do loop: Variáveis atualiza `itemsProcessed = <variable.itemsProcessed> + 1`</li>
    <li>Dentro do loop: Variáveis atualiza `lastResult = <agent.content>`</li>
    <li>Próxima iteração: Acessa `<variable.lastResult>` para comparar com o resultado atual</li>
  </ol>
</div>

### Lógica de tentativas

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">Cenário: Acompanhar tentativas de retry de API</h4>

  <ol className="list-decimal pl-5 text-sm">
    <li>Inicializar no fluxo de trabalho: `retryCount = 0`</li>
    <li>O bloco API tenta realizar a solicitação</li>
    <li>Se falhar, Variáveis incrementa: `retryCount = <variable.retryCount> + 1`</li>
    <li>A condição verifica se `<variable.retryCount>` \< 3 para tentar novamente ou falhar</li>
  </ol>
</div>

### Configuração dinâmica

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">Cenário: Armazenar contexto de usuário para o fluxo de trabalho</h4>

  <ol className="list-decimal pl-5 text-sm">
    <li>Inicializar no fluxo de trabalho: `userId = ""`, `userTier = ""`</li>
    <li>A API obtém o perfil do usuário</li>
    <li>Variáveis armazena: `userId = <api.id>`, `userTier = <api.tier>`</li>
    <li>O agente personaliza a resposta usando `<variable.userTier>`</li>
    <li>A API usa `<variable.userId>` para registro</li>
  </ol>
</div>

## Saídas

* **`<variables.assignments>`**: Objeto JSON com todas as atribuições de variáveis deste bloco

## Melhores práticas

* **Inicializar na configuração do fluxo de trabalho**: Sempre crie variáveis na seção Variáveis do fluxo de trabalho antes de usá-las
* **Atualizar dinamicamente**: Use blocos de Variáveis para atualizar valores baseados em saídas de blocos ou cálculos
* **Usar em loops**: Perfeito para rastrear o estado através de iterações
* **Nomear descritivamente**: Use nomes claros como `currentIndex`, `totalProcessed`, ou `lastError`
