---
title: Variablen
---

import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Image } from '@/components/ui/image'

Der Variablen-Block aktualisiert Workflow-Variablen während der Ausführung. Variablen müssen zuerst im Variablen-Bereich deines Workflows initialisiert werden, dann kannst du diesen Block verwenden, um ihre Werte während der Ausführung deines Workflows zu aktualisieren.

<div className="flex justify-center">
  <Image
    src="/static/blocks/variables.png"
    alt="Variablen-Block"
    width={500}
    height={350}
    className="my-6"
  />
</div>

<Callout>
  Greife überall in deinem Workflow auf Variablen zu, indem du die `<variable.variableName>` Syntax verwendest.
</Callout>

## Überblick

Der Variablen-Block ermöglicht dir:

<Steps>
  <Step>
    <strong>Workflow-Variablen aktualisieren</strong>: Ändere Variablenwerte während der Ausführung
  </Step>
  <Step>
    <strong>Dynamische Daten speichern</strong>: Erfasse Block-Ausgaben in Variablen
  </Step>
  <Step>
    <strong>Zustand beibehalten</strong>: Verfolge Zähler, Flags und Zwischenergebnisse
  </Step>
</Steps>

## Wie man Variablen verwendet

### 1. Im Workflow-Variablenbereich initialisieren

Erstelle zunächst deine Variablen im Variablen-Bereich des Workflows (zugänglich über die Workflow-Einstellungen):

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

### 2. Mit dem Variablen-Block aktualisieren

Verwende den Variablen-Block, um diese Werte während der Ausführung zu aktualisieren:

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

### 3. Überall zugreifen

Referenziere Variablen in jedem Block:

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

## Beispielanwendungsfälle

### Schleifenzähler und Zustand

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">Szenario: Fortschritt durch Schleifeniterationen verfolgen</h4>
  <ol className="list-decimal pl-5 text-sm">
    <li>Im Workflow initialisieren: `itemsProcessed = 0`, `lastResult = ""`</li>
    <li>Schleife iteriert über Elemente</li>
    <li>Innerhalb der Schleife: Agent verarbeitet aktuelles Element</li>
    <li>Innerhalb der Schleife: Variablen aktualisieren `itemsProcessed = <variable.itemsProcessed> + 1`</li>
    <li>Innerhalb der Schleife: Variablen aktualisieren `lastResult = <agent.content>`</li>
    <li>Nächste Iteration: Auf `<variable.lastResult>` zugreifen, um mit aktuellem Ergebnis zu vergleichen</li>
  </ol>
</div>

### Wiederholungslogik

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">Szenario: API-Wiederholungsversuche verfolgen</h4>
  <ol className="list-decimal pl-5 text-sm">
    <li>Im Workflow initialisieren: `retryCount = 0`</li>
    <li>API-Block versucht Anfrage</li>
    <li>Bei Fehlschlag erhöht Variablen: `retryCount = <variable.retryCount> + 1`</li>
    <li>Bedingung prüft, ob `<variable.retryCount>` \< 3 ist, um zu wiederholen oder abzubrechen</li>
  </ol>
</div>

### Dynamische Konfiguration

<div className="mb-4 rounded-md border p-4">
  <h4 className="font-medium">Szenario: Benutzerkontext für Workflow speichern</h4>
  <ol className="list-decimal pl-5 text-sm">
    <li>Im Workflow initialisieren: `userId = ""`, `userTier = ""`</li>
    <li>API ruft Benutzerprofil ab</li>
    <li>Variablen speichern: `userId = <api.id>`, `userTier = <api.tier>`</li>
    <li>Agent personalisiert Antwort mit `<variable.userTier>`</li>
    <li>API verwendet `<variable.userId>` für Logging</li>
  </ol>
</div>

## Ausgaben

- **`<variables.assignments>`**: JSON-Objekt mit allen Variablenzuweisungen aus diesem Block

## Bewährte Praktiken

- **Im Workflow-Einstellungen initialisieren**: Erstellen Sie Variablen immer im Workflow-Variablenbereich, bevor Sie sie verwenden
- **Dynamisch aktualisieren**: Verwenden Sie Variablenblöcke, um Werte basierend auf Blockausgaben oder Berechnungen zu aktualisieren
- **In Schleifen verwenden**: Perfekt für die Zustandsverfolgung über Iterationen hinweg
- **Beschreibend benennen**: Verwenden Sie klare Namen wie `currentIndex`, `totalProcessed` oder `lastError`
