> ## Documentation Index
> Fetch the complete documentation index at: https://revolai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# KI-Agenten

> Erstellen Sie intelligente KI-Assistenten mit individuellen Workflows, Wissensdatenbanken, Sprachfunktionen und Multi-Channel-Bereitstellung

## Was sind KI-Agenten?

KI-Agenten in Revol sind intelligente Assistenten, die Kundeninteraktionen über mehrere Kanäle hinweg verarbeiten — Ihr Website-Widget, Telefonanrufe, Telegram, WhatsApp und Instagram. Jeder Agent hat seine eigene Persönlichkeit, Wissensdatenbank, Gesprächs-Workflow und eine Reihe von Werkzeugen.

### Betriebsmodi

Agenten können je nach Ihren geschäftlichen Anforderungen in drei Modi betrieben werden:

| Modus      | Wer kommuniziert | Rolle des Agenten                                                                                                                                                                                                                                   |
| ---------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Aktiv**  | KI-Agent         | Der Agent übernimmt die gesamte Kundenkommunikation — beantwortet Nachrichten, ruft Werkzeuge auf, folgt dem Workflow und löst Anfragen eigenständig                                                                                                |
| **Passiv** | Ihr Team         | Ihr Team übernimmt die gesamte Kundenkommunikation. Der Agent überwacht jede Konversation im Hintergrund — prüft die Einhaltung von Kommunikationsstandards, verfolgt Qualitätskennzahlen und liefert Analysen, ohne jemals den Kunden zu antworten |
| **Hybrid** | Beide            | Die KI übernimmt Routineinteraktionen (FAQ, Produktanfragen, Terminplanung), während Ihr Team komplexe oder sensible Fälle bearbeitet. Der Agent analysiert kontinuierlich alle Konversationen, unabhängig davon, wer antwortet                     |

<Tip>
  Der **passive Modus** ist leistungsstark für Teams, die bereits etablierte Kommunikationsprozesse haben. Der Agent wird zu einem ständig aktiven Qualitätsprüfer — er überprüft, ob Mitarbeiter Skripte befolgen, identifiziert verpasste Chancen, überwacht Antwortzeiten und liefert Gesprächseinblicke. Alle Analysen, Speicherextraktion und Tracking funktionieren genauso wie im aktiven Modus.
</Tip>

***

## Einen Agenten erstellen

Klicken Sie auf **Agent erstellen**, um einen 2-Schritte-Assistenten zu starten:

**Schritt 1** — Geben Sie den Agentennamen ein (mindestens 3 Zeichen) und optional eine erste Nachricht (Begrüßungstext).

**Schritt 2** — Wählen Sie einen Anwendungsfall: Kundensupport, Outbound-Vertrieb, Lead-Qualifizierung, Anrufbeantworter, Terminbuchung, Kundenaufnahme, Serviceempfehlungen, Terminplanung, Rechnungsanfragen, Projektaktualisierungen, Ressourcenbibliothek, Lernen & Entwicklung oder Sonstiges. Dies ist rein visuell — der gewählte Anwendungsfall beeinflusst weder das Verhalten noch die Konfiguration des Agenten.

Nach der Erstellung startet der Agent im Status **Entwurf** mit einem bereits erstellten [Standard-Workflow](#standard-workflow).

### Agentenstatus

| Status      | Verhalten                                                                                                                                    |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Entwurf** | Nicht aktiv. Verwenden Sie ihn während der Konfiguration.                                                                                    |
| **Aktiv**   | Live, antwortet auf Nachrichten. **Nur ein Agent pro Unternehmen kann aktiv sein** — die Aktivierung eines Agenten deaktiviert alle anderen. |
| **Inaktiv** | Pausiert. Behält alle Konfigurationen bei.                                                                                                   |

***

## Agenten-Editor

Der Agenten-Editor ist ein Vollbild-Modal mit **7 Tabs**: Agent, Wissensdatenbank, Analyse, Werkzeuge, Widget, Kanäle, Workflow.

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/revolai/B4zPwXpQ9Qvk4wCE/images/agent-editor-light.png?fit=max&auto=format&n=B4zPwXpQ9Qvk4wCE&q=85&s=11cb7710b8f38a37ccbd473d30cbe430" alt="Agenten-Editor" width="2870" height="1557" data-path="images/agent-editor-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/revolai/B4zPwXpQ9Qvk4wCE/images/agent-editor-dark.png?fit=max&auto=format&n=B4zPwXpQ9Qvk4wCE&q=85&s=9b604bc33d074938f528f71d19f82a8a" alt="Agenten-Editor" width="2880" height="1556" data-path="images/agent-editor-dark.png" />
</Frame>

### Kopfzeile

Die Kopfzeile ist immer sichtbar und zeigt:

* Agentenname (zum Umbenennen anklicken)
* Status-Badge (Aktiv / Inaktiv)
* **Einbettungscode** — das Widget-`<script>`-Snippet erhalten
* **Werkzeug-Protokolle** — alle Werkzeugausführungen und Kanalereignisse einsehen
* **Vorschau** — Link zur Website des Kunden, auf der das Widget installiert ist, um es aus Besuchersicht zu sehen
* **Veröffentlichen** — im Marketplace veröffentlichen (öffentlich oder privat)

***

## Agent-Tab

Der Hauptkonfigurations-Tab, in dem Sie die Kerneinstellungen des Agenten festlegen — System-Prompt, Persönlichkeit, LLM-Anbieter und Gesprächsspeicher.

### Linke Spalte

**System-Prompt** — die Kernanweisungen, die das Verhalten des Agenten definieren. Wenn leer gelassen, wird ein Standard-Prompt aus Ihrem Firmennamen mit grundlegenden Kommunikationsregeln generiert.

<Tip>
  Ein Sicherheitsblock wird automatisch an jeden System-Prompt angehängt. Er verhindert Prompt-Injection — der Agent wird niemals seine Anweisungen preisgeben, Sicherheitsregeln ignorieren oder Aufforderungen zur Rollenänderung befolgen. Sie müssen dies nicht manuell hinzufügen.
</Tip>

**Erste Nachricht** — Begrüßungstext, den Besucher sehen, wenn der Chat geöffnet wird.

**Gesprächsspeicher** — strukturierte Felder, die der Agent während Konversationen erfassen soll. Jedes Feld hat:

| Eigenschaft     | Beschreibung                                                     |
| --------------- | ---------------------------------------------------------------- |
| **Schlüssel**   | Maschinenlesbarer Bezeichner (Kleinbuchstaben, nur Unterstriche) |
| **Bezeichnung** | Menschenlesbarer Name, der in der Analyse angezeigt wird         |
| **Typ**         | Text, Telefon, E-Mail, Nummer oder Auswahl                       |
| **Optionen**    | Für den Typ Auswahl — kommagetrennte Werte                       |

Speicherfelder werden für die Workflow-Weiterleitung (Zustandsbedingungen an Kanten) verwendet und erscheinen im Info-Tab der Konversation. Sie können beispielsweise Felder wie `name`, `email`, `budget` definieren — der Agent wird versuchen, diese während des Gesprächs auf natürliche Weise zu erfassen, und Sie können Workflow-Kanten basierend darauf weiterleiten, ob sie ausgefüllt sind.

**Wie die Speicherextraktion funktioniert:** Nachdem jeder benutzerdefinierte Knoten eine Antwort generiert hat, führt das System einen leichtgewichtigen LLM-Aufruf durch, der die letzten Nachrichten analysiert und Werte für die konfigurierten Felder extrahiert. Extrahierte Werte werden sofort gespeichert, sodass nachfolgende Knoten im selben Durchlauf den aktualisierten Speicher bereits sehen — dies ermöglicht zustandsbasiertes Routing innerhalb eines einzelnen Gesprächsdurchlaufs.

### Rechte Spalte

**Persönlichkeit** — 5 Regler (1–10), die den Kommunikationsstil formen:

| Regler               | Niedrig (1–3)                     | Hoch (7–10)                        |
| -------------------- | --------------------------------- | ---------------------------------- |
| **Antwortlänge**     | Kurze, prägnante Antworten        | Ausführliche, umfassende Antworten |
| **Humor**            | Streng professionell              | Leichter Humor erlaubt             |
| **Formalität**       | Lockerer, umgangssprachlicher Ton | Formelle, geschäftliche Sprache    |
| **Klarheit**         | Standarderklärungen               | Besonders klar, schrittweise       |
| **Emoji-Verwendung** | Keine Emojis                      | Emojis in Antworten verwendet      |

**LLM-Anbieter & Modell** — siehe [LLM-Anbieter](#llm-anbieter).

**Temperatur** — steuert die Zufälligkeit der Antworten: 0 = deterministisch (gleiche Frage → gleiche Antwort), 1 = kreativ (variierte Antworten). Standard: 0,7.

***

## LLM-Anbieter

4 Anbieter, jeweils mit einem Standard-Modell (schneller, günstiger) und einem Premium-Modell (höhere Qualität):

| Anbieter          | Standard             | Premium                 |
| ----------------- | -------------------- | ----------------------- |
| **OpenAI**        | GPT-4o Mini          | GPT-4o                  |
| **Anthropic**     | Claude 3.5 Haiku     | Claude 3.5 Sonnet       |
| **Google Gemini** | Gemini 2.0 Flash     | Gemini 2.5 Pro          |
| **Groq**          | Llama 3.1 8B Instant | Llama 3.3 70B Versatile |

<Note>
  Premium-Modelle erfordern einen erweiterten Tarif. Bei Standardtarifen sind Premium-Modelle mit einem Upgrade-Hinweis gesperrt.
</Note>

Alle Anbieter unterstützen Function Calling (Werkzeuge), Streaming, Circuit Breaker (automatisches Failover bei Anbieterausfall) und Wiederholung mit exponentiellem Backoff bei Ratenbegrenzungen.

Das LLM wird global im Agent-Tab festgelegt, kann aber **pro Workflow-Knoten überschrieben werden** — verwenden Sie beispielsweise ein schnelles Modell für die Produktsuche und ein Premium-Modell für die abschließende Antwortformatierung.

***

## Workflow

Der Workflow-Tab ist eine visuelle Arbeitsfläche, auf der Sie die Gesprächslogik des Agenten entwerfen. Anstelle eines einzelnen Prompts teilt der Workflow die Verarbeitung auf **Knoten** auf — jeder mit eigenem Prompt, eigenen Werkzeugen und eigener Wissensdatenbank — verbunden durch **Kanten** mit Weiterleitungsbedingungen.

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/revolai/B4zPwXpQ9Qvk4wCE/images/agent-workflow-light.png?fit=max&auto=format&n=B4zPwXpQ9Qvk4wCE&q=85&s=4d108a836bee8a8d9fa255a4ec5463dc" alt="Workflow-Editor" width="2867" height="1553" data-path="images/agent-workflow-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/revolai/B4zPwXpQ9Qvk4wCE/images/agent-workflow-dark.png?fit=max&auto=format&n=B4zPwXpQ9Qvk4wCE&q=85&s=35782e7838c7f60e8298d7db2533c303" alt="Workflow-Editor" width="2879" height="1554" data-path="images/agent-workflow-dark.png" />
</Frame>

### Standard-Workflow

Jeder neue Agent startet mit diesem vorgefertigten Workflow:

```
[Spracheingabe*] → [Start] → [Produktagent] ──→ [Formatierer] → [Sprachausgabe*]
                              → [Medienagent]   ──↗
                              → [Firmenagent]  ──↗
```

*Sprachknoten sind standardmäßig inaktiv — sie werden aktiviert, wenn Sie Sprache einschalten.*

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/revolai/NOERXHD6sNh6Rtlx/images/agent-default-workflow-light.png?fit=max&auto=format&n=NOERXHD6sNh6Rtlx&q=85&s=fce42112cc57cfdeffbaa32208b70955" alt="Standard-Workflow" width="1780" height="783" data-path="images/agent-default-workflow-light.png" />

  <img className="hidden dark:block" src="https://mintcdn.com/revolai/NOERXHD6sNh6Rtlx/images/agent-default-workflow-dark.png?fit=max&auto=format&n=NOERXHD6sNh6Rtlx&q=85&s=5797ff31e018f88788e8b92948cf6620" alt="Standard-Workflow" width="1640" height="733" data-path="images/agent-default-workflow-dark.png" />
</Frame>

Der **Start**-Knoten leitet die Nachricht an drei parallele Systemagenten weiter. Jeder verarbeitet die Nachricht mit eigenen Werkzeugen und eigenem Wissen. Der **Formatierer** kombiniert deren Ergebnisse zu einer einzelnen Antwort.

### Knotentypen

| Knoten                  | Typ                | Beschreibung                                                                                     |
| ----------------------- | ------------------ | ------------------------------------------------------------------------------------------------ |
| **Start**               | `start`            | Einstiegspunkt. Immer vorhanden, kann nicht gelöscht werden.                                     |
| **Produktagent**        | `system_product`   | Durchsucht Produkte, prüft Verfügbarkeit, zeigt Details. Hat Zugriff auf Produktwerkzeuge.       |
| **Medienagent**         | `system_media`     | Ruft Fotos, Videos und Dokumente ab.                                                             |
| **Firmenagent**         | `system_company`   | Firmeninformationen, Supportfragen.                                                              |
| **Antwort-Formatierer** | `system_formatter` | Kombiniert Ausgaben paralleler Knoten zu einer kohärenten Gesamtantwort.                         |
| **Spracheingabe (STT)** | `system_stt`       | Speech-to-Text-Konvertierung. Standardmäßig inaktiv.                                             |
| **Sprachausgabe (TTS)** | `system_tts`       | Text-to-Speech-Synthese. Standardmäßig inaktiv.                                                  |
| **Benutzerdefiniert**   | `custom`           | Ihr eigener Knoten mit individuellem Prompt, Werkzeugen, Wissensdatenbank und LLM-Einstellungen. |

### Benutzerdefinierte Knoten hinzufügen

Klicken Sie auf **+ Knoten hinzufügen** in der Arbeitsflächen-Toolbar → geben Sie einen Namen ein → ein neuer benutzerdefinierter Knoten erscheint auf der Arbeitsfläche. Sie können beliebig viele benutzerdefinierte Knoten hinzufügen.

Benutzerdefinierte Knoten sind der leistungsstärkste Teil des Workflows. Jeder benutzerdefinierte Knoten ist im Wesentlichen sein eigener Mini-Agent mit:

* **Gesprächsziel** — ein System-Prompt speziell für diesen Knoten (z. B. „Helfen Sie Benutzern, den richtigen Abonnementplan basierend auf Teamgröße und Budget auszuwählen")
* **Werkzeuge** — wählen Sie aus, welche Werkzeuge dieser Knoten aufrufen kann (unabhängig von den Werkzeugen auf Agentenebene)
* **Wissensdatenbank** — wählen Sie bestimmte Wissensquellen für den RAG-Kontext dieses Knotens
* **LLM-Überschreibung** — verwenden Sie ein anderes Modell für diesen Knoten
* **Agentenmodus** — aktivieren Sie mehrfache Werkzeugaufrufe (siehe unten)

### Knoteneinstellungen

Klicken Sie auf einen beliebigen Knoten auf der Arbeitsfläche, um das Einstellungspanel auf der rechten Seite zu öffnen. Das Panel hat Tabs, die je nach Knotentyp variieren:

**Allgemein-Tab** (alle Knoten):

| Einstellung       | Beschreibung                                                                             |
| ----------------- | ---------------------------------------------------------------------------------------- |
| **Name**          | Anzeigename (beim Start-Knoten deaktiviert)                                              |
| **Aktiv**         | Schalter, ob dieser Knoten am Workflow teilnimmt                                         |
| **Gesprächsziel** | System-Prompt für diesen Knoten. Verfügbar bei allen Knoten außer Start und Formatierer. |

**Agentenmodus** (nur benutzerdefinierte Knoten mit Werkzeugen):

Wenn aktiviert, kann der Knoten **mehrere Runden von Werkzeugaufrufen** durchführen, bevor er antwortet. Ohne Agentenmodus führt der Knoten höchstens 1 Werkzeugaufruf pro Nachricht durch.

| Einstellung     | Bereich | Standard | Beschreibung                                                                      |
| --------------- | ------- | -------- | --------------------------------------------------------------------------------- |
| **Max. Runden** | 2–10    | 5        | Wie viele Werkzeugaufruf-Runden das LLM durchführen kann, bevor es antworten muss |
| **Timeout**     | 10–60s  | 30s      | Maximale Zeit für die gesamte Agentenmodus-Ausführung                             |

<Tip>
  Verwenden Sie den Agentenmodus, wenn ein Knoten mehrere Werkzeuge verketten muss — zum Beispiel zuerst Produkte suchen, dann die Verfügbarkeit des besten Treffers prüfen, dann detaillierte Spezifikationen abrufen. Ohne Agentenmodus würde der Knoten 3 separate Gesprächsrunden dafür benötigen.
</Tip>

**LLM-Überschreibung** (alle außer Start):

Aktivieren Sie diese Option, um einen anderen LLM-Anbieter und ein anderes Modell für diesen spezifischen Knoten zu verwenden. Wenn deaktiviert, verwendet der Knoten die globale LLM-Einstellung des Agenten. Das Dropdown zeigt „Standard (Agenteneinstellung)" an, wenn nicht überschrieben.

**Werkzeuge-Tab** (benutzerdefinierte und Systemknoten):

Listet alle verfügbaren Werkzeuge nach Kategorie gruppiert auf (Produkte, Support, Dokumente). Jedes Werkzeug hat einen Umschalter. Hier aktivierte Werkzeuge sind unabhängig vom Werkzeuge-Tab auf Agentenebene — Sie steuern genau, auf welche Werkzeuge jeder Knoten Zugriff hat.

**Wissensdatenbank-Tab** (nur benutzerdefinierte Knoten):

Wählen Sie bestimmte Wissensquellen für den RAG-Kontext dieses Knotens. Enthält ein „Dokument hinzufügen"-Dropdown mit Such- und Typfilterung. Wenn keine Quellen ausgewählt sind, greift der Knoten auf die globale Wissensdatenbank des Agenten zurück.

<Note>
  Ein Hinweis am unteren Rand verlinkt zum Wissensdatenbank-Tab des Agenten: „Um diesem Knoten mehr Daten zur Verfügung zu stellen, fügen Sie Dateien zur Wissensdatenbank des Agenten hinzu."
</Note>

**Kanten-Tab** (alle Knoten):

Konfigurieren Sie ausgehende Verbindungen zu anderen Knoten. Siehe [Kantenbedingungen](#kantenbedingungen) weiter unten.

**Spracheinstellungen-Tab** (nur STT- und TTS-Knoten):

Konfigurieren Sie Spracherkennung und Sprachsynthese — siehe Abschnitt [Sprache](#sprache).

**Knoten löschen** — nur für benutzerdefinierte Knoten verfügbar. Systemknoten können nicht gelöscht werden.

### Kantenbedingungen

Kanten verbinden Knoten und steuern die Nachrichtenweiterleitung. Jede Kante hat einen **Zielknoten**, einen **Bedingungstyp** und eine **Priorität**. Der Workflow wertet Kanten in Prioritätsstufen aus — die erste Stufe, die einen Treffer erzielt, gewinnt, niedrigere Stufen werden nicht ausgewertet.

Klicken Sie auf **+ Kante hinzufügen** im Kanten-Tab eines Knotens, um eine Verbindung zu erstellen.

| Bedingung             | Priorität       | Wann wird weitergeleitet                                                                                                 |
| --------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **Schlüsselwort**     | 100 (höchste)   | Nachricht enthält **eines** der angegebenen Schlüsselwörter. Groß-/Kleinschreibung wird ignoriert, Wortgrenzen-Abgleich. |
| **Zustandsbedingung** | 95              | Alle angegebenen Speicherfeld-Bedingungen sind erfüllt (UND-Logik).                                                      |
| **Immer**             | 90              | Leitet immer weiter — verwenden Sie dies für bedingungslose Verbindungen.                                                |
| **Absicht**           | 50              | Basierend auf der erkannten Nachrichtenabsicht.                                                                          |
| **Fallback**          | 10 (niedrigste) | Leitet nur weiter, wenn **keine andere Kante** von diesem Knoten übereinstimmte.                                         |

#### Schlüsselwort-Bedingung

Geben Sie kommagetrennte Schlüsselwörter ein. Der Workflow prüft, ob die Nachricht des Besuchers eines davon enthält, mit Groß-/Kleinschreibung-ignorierendem Wortgrenzen-Abgleich.

Mehrere Schlüsselwort-Kanten können dieselbe Nachricht treffen — alle übereinstimmenden Kanten werden parallel ausgelöst und senden die Nachricht gleichzeitig an mehrere Knoten.

**Beispiel:** Schlüsselwörter `Preis, Kosten, Preise, wie viel` — die Kante wird ausgelöst, wenn der Besucher fragt „Wie viel kostet das?" oder „Was sind die Preise?"

#### Zustandsbedingung

Prüfen Sie Werte der [Gesprächsspeicher](#gesprächsspeicher)-Felder. Sie erstellen Regeln mit:

| Operator           | Bedeutung                      | Beispiel                                                          |
| ------------------ | ------------------------------ | ----------------------------------------------------------------- |
| **ist ausgefüllt** | Feld hat einen beliebigen Wert | `email` ist ausgefüllt → weiterleiten zum Knoten „Angebot senden" |
| **ist leer**       | Feld hat keinen Wert           | `name` ist leer → weiterleiten zum Knoten „Name erfragen"         |
| **gleich**         | Exakte Übereinstimmung         | `budget` gleich `enterprise`                                      |
| **ungleich**       | Stimmt nicht überein           | `plan` ungleich `free`                                            |
| **enthält**        | Teilzeichenketten-Abgleich     | `interests` enthält `premium`                                     |
| **größer als**     | Numerischer Vergleich          | `budget` > `5000`                                                 |
| **kleiner als**    | Numerischer Vergleich          | `team_size` \< `10`                                               |

Mehrere Bedingungen innerhalb einer Kante verwenden **UND-Logik** — alle müssen wahr sein.

<Note>
  Zustandsbedingungen werden vollständig übersprungen, wenn der Speicher leer ist (noch keine Felder erfasst). Das bedeutet, dass „ist leer"-Bedingungen erst ausgelöst werden, nachdem der Agent begonnen hat, mindestens ein Speicherfeld zu erfassen.
</Note>

**Beispiel-Workflow mit Zustandsbedingungen:**

```
[Start] → (Name ist leer)        → [Name-erfragen-Knoten]
        → (Name ist ausgefüllt,   → [Angebot-senden-Knoten]
           E-Mail ist ausgefüllt)
        → (Fallback)              → [Allgemeiner-Chat-Knoten]
```

#### Immer-Bedingung

Die Kante wird immer ausgelöst. Alle Immer-Kanten eines Knotens werden parallel ausgelöst — die Nachricht wird gleichzeitig an jedes Ziel gesendet. So verzweigt der Standard-Workflow vom Start zu drei Systemagenten gleichzeitig.

#### Fallback-Bedingung

Leitet nur weiter, wenn keine Kante mit höherer Priorität übereinstimmte. Im Gegensatz zu Schlüsselwort und Immer wird nur **eine** Fallback-Kante ausgelöst (die erste) — keine parallele Ausführung.

<Warning>
  Wenn keine Kante übereinstimmt und es keinen Fallback gibt, erreicht die Ausgabe des Knotens möglicherweise nicht den Formatierer und der Besucher erhält keine Antwort aus diesem Zweig.
</Warning>

### Zusammenführungsstrategie

Wenn mehrere Knoten parallel Ergebnisse erzeugen (wie die 3 Systemagenten im Standard-Workflow), kombiniert der **Formatierer** diese:

| Strategie      | Kosten                  | Funktionsweise                                                                             |
| -------------- | ----------------------- | ------------------------------------------------------------------------------------------ |
| **Verkettung** | Kostenlos               | Verkettet alle Knotenausgaben als Kontext für den Formatierer                              |
| **LLM**        | Zusätzlicher LLM-Aufruf | Verwendet ein LLM, um eine einzelne kohärente Antwort aus allen Ausgaben zu synthetisieren |

### Arbeitsflächen-Steuerung

| Steuerung                      | Aktion                                                      |
| ------------------------------ | ----------------------------------------------------------- |
| **Ziehen** auf leerer Fläche   | Arbeitsfläche verschieben                                   |
| **Strg + Scrollen** oder Pinch | Zoomen (0,3x–2,0x)                                          |
| **Zwei-Finger-Scrollen**       | Verschieben                                                 |
| **+ Knoten hinzufügen**        | Neuen benutzerdefinierten Knoten erstellen                  |
| **Vorlage**                    | Vorgefertigte Workflow-Vorlage aus dem Marketplace anwenden |
| **Zurücksetzen**               | Standard-Workflow wiederherstellen (Bestätigungsdialog)     |
| **Testen**                     | Test-Chat-Panel am unteren Rand der Arbeitsfläche öffnen    |

***

## Werkzeuge

Werkzeuge sind Funktionen, die der Agent während Konversationen aufrufen kann. Sie erweitern den Agenten über die Textgenerierung hinaus — Produkte suchen, Datenbanken abfragen, E-Mails senden, Anrufe tätigen.

### Wie Werkzeuge funktionieren

<Steps>
  <Step title="LLM entscheidet sich für ein Werkzeug">
    Basierend auf der Nachricht des Besuchers und den Werkzeugbeschreibungen in seinem Prompt generiert das LLM einen Werkzeugaufruf mit Parametern (z. B. `get_products({ query: "Laufschuhe", available_only: true })`).
  </Step>

  <Step title="Werkzeug wird ausgeführt">
    Das System führt die Werkzeugfunktion mit den angegebenen Parametern aus und erhält ein Ergebnis.
  </Step>

  <Step title="Ergebnis geht zurück an das LLM">
    Das Werkzeugergebnis wird in die Konversation eingefügt. Das LLM verwendet es, um eine natürliche Antwort zu formulieren.
  </Step>

  <Step title="Mehrere Runden (Agentenmodus)">
    Wenn der Knoten den Agentenmodus aktiviert hat, kann das LLM basierend auf dem ersten Ergebnis einen weiteren Werkzeugaufruf durchführen — bis zur konfigurierten maximalen Rundenzahl.
  </Step>
</Steps>

Jeder Werkzeugaufruf wird mit Eingabe, Ausgabe, Ausführungszeit und Status protokolliert. Sehen Sie Protokolle über **Werkzeug-Protokolle** in der Agenten-Kopfzeile ein.

### Integrierte Werkzeuge (9)

Immer verfügbar, keine Integration erforderlich:

| Werkzeug                   | Kategorie | Funktion                                                                                      |
| -------------------------- | --------- | --------------------------------------------------------------------------------------------- |
| **get\_products**          | Produkte  | Produkte nach Name/Beschreibung suchen. Gibt eine Liste mit Preisen und Verfügbarkeit zurück. |
| **get\_product\_details**  | Produkte  | Vollständige Details für ein Produkt — alle Parameter, Preise, Beschreibung.                  |
| **check\_availability**    | Produkte  | Prüfen, ob ein bestimmtes Produkt auf Lager ist.                                              |
| **search\_by\_parameters** | Produkte  | Produkte nach Attributwerten filtern mit Operatoren: `=`, `<=`, `>=`, `<`, `>`, `like`.       |
| **get\_company\_info**     | Support   | Firmenname, Beschreibung, Telefon, Kontakte.                                                  |
| **search\_documents**      | Dokumente | Semantische RAG-Suche — findet relevante Passagen in der gesamten Wissensdatenbank.           |
| **get\_photos**            | Dokumente | Fotos nach Abfrage oder Produkt-ID abrufen.                                                   |
| **get\_videos**            | Dokumente | Videos nach Abfrage oder Produkt-ID abrufen.                                                  |
| **get\_documents**         | Dokumente | PDF/Word/Excel-Dateien abrufen, filterbar nach Format.                                        |

### Integrations-Werkzeuge (60+)

Verbinden Sie externe Dienste unter [Integrationen](/integrations/overview), um Werkzeuge freizuschalten:

<AccordionGroup>
  <Accordion title="VoIP — Twilio, Binotel, Ringostat">
    Ausgehende Anrufe tätigen, SMS senden, Anrufverlauf abrufen.
  </Accordion>

  <Accordion title="Telegram">
    Nachrichten senden, Dateien senden, Nachrichten bearbeiten/löschen, Chatverlauf und Infos abrufen.
  </Accordion>

  <Accordion title="WhatsApp">
    Nachrichten senden, Medien senden, Vorlagennachrichten senden, Profil abrufen, als gelesen markieren.
  </Accordion>

  <Accordion title="Facebook & Instagram">
    Nachrichten senden, Medien senden, Buttons senden (Facebook), Profil abrufen. Facebook Ads: Kampagnen abrufen, Anzeigengruppen, Einblicke, Kampagnen pausieren.
  </Accordion>

  <Accordion title="Gmail">
    Posteingang lesen, E-Mails senden, antworten, Entwürfe erstellen, suchen, Anhänge abrufen.
  </Accordion>

  <Accordion title="Google Calendar">
    Termine auflisten/erstellen/aktualisieren/löschen, Verfügbarkeit prüfen, freie Zeitfenster finden.
  </Accordion>

  <Accordion title="Google Docs">
    Dokumente lesen/erstellen/anhängen/exportieren/suchen.
  </Accordion>

  <Accordion title="Google Sheets">
    Bereiche lesen/schreiben, Zeilen anhängen, Zellen aktualisieren, Zeilen suchen, Tabellen erstellen.
  </Accordion>

  <Accordion title="Google Drive">
    Dateien auflisten/lesen/erstellen/aktualisieren/löschen, Ordner erstellen, Dateien freigeben, suchen.
  </Accordion>

  <Accordion title="Google Meet">
    Besprechungslinks erstellen.
  </Accordion>

  <Accordion title="Google Ads">
    Kampagnen abrufen, Keywords abrufen, Kampagnen pausieren.
  </Accordion>

  <Accordion title="Webhooks">
    Benutzerdefinierte JSON-Payloads an beliebige URLs senden, Webhook-Verbindungen testen.
  </Accordion>
</AccordionGroup>

### Werkzeuge-Tab vs. Werkzeuge auf Knotenebene

Es gibt **zwei Stellen**, um Werkzeuge zu verwalten:

1. **Agent → Werkzeuge-Tab** — zeigt alle Integrations-Werkzeuge nach Anbieter gruppiert. Werkzeuge auf Agentenebene ein-/ausschalten. Hier aktivierte Werkzeuge werden allen Workflow-Knoten zur Verfügung gestellt.

2. **Workflow → Knoteneinstellungen → Werkzeuge-Tab** — Werkzeuge pro Knoten umschalten. Ein Knoten kann nur Werkzeuge verwenden, die auf Agentenebene aktiviert sind. So können Sie einschränken, welche Knoten auf welche Werkzeuge zugreifen.

**Beispiel:** Aktivieren Sie Gmail-Werkzeuge auf Agentenebene, geben Sie aber nur dem benutzerdefinierten Knoten „Nachfass senden" Zugriff auf `send_email` — andere Knoten werden keine E-Mails auslösen.

***

## Wissensdatenbank (RAG)

Der Wissensdatenbank-Tab verbindet Datenquellen, die der Agent zur Beantwortung von Fragen nutzt. Wenn ein Besucher etwas fragt, durchsucht der Agent Ihre Wissensdatenbank mittels **Vektorähnlichkeit** (RAG — Retrieval-Augmented Generation) und fügt relevanten Kontext in seine Antwort ein.

### Quellentypen

| Quelle          | Was wird indexiert                                          |
| --------------- | ----------------------------------------------------------- |
| **Produkte**    | Name, Beschreibung, zusätzlicher Prompt, Preis              |
| **Dokumente**   | Dateiname + extrahierter Textinhalt (PDF, Word, Excel, TXT) |
| **Fotos**       | Fotoname + Beschreibung                                     |
| **Videos**      | Videoname + Beschreibung/Inhalt                             |
| **Text**        | Name + Freitext-Inhalt                                      |
| **Links**       | URL-Name + abgerufener Seiteninhalt                         |
| **Unternehmen** | Firmenname, Werbetext, Beschreibung, Telefon                |

### Wie RAG funktioniert

<Steps>
  <Step title="Quellen hinzufügen">
    Klicken Sie im Wissensdatenbank-Tab auf „Dokument hinzufügen" und wählen Sie Quellen aus den Daten Ihres Unternehmens — Produkte, Dateien, Textausschnitte, Links.
  </Step>

  <Step title="Training">
    Das System teilt jede Quelle in Segmente auf (standardmäßig max. 2000 Zeichen pro Segment, 20% Überlappung an Satzgrenzen), generiert Vektor-Embeddings mit OpenAI `text-embedding-ada-002` (1536 Dimensionen) und speichert sie in PostgreSQL mit pgvector.
  </Step>

  <Step title="Besucher sendet eine Nachricht">
    Die Nachricht des Besuchers wird in denselben Vektorraum eingebettet. Das System findet die ähnlichsten Segmente mittels Kosinusähnlichkeit.
  </Step>

  <Step title="Kontext-Injektion">
    Die am besten übereinstimmenden Segmente (Standard: bis zu 5, Mindestähnlichkeit 0,6) werden als Wissensdatenbank-Kontext in den Prompt des Agenten eingefügt.
  </Step>

  <Step title="Antwort">
    Das LLM sieht die Frage des Besuchers zusammen mit dem relevanten Wissen und generiert eine fundierte Antwort.
  </Step>
</Steps>

Das Training läuft automatisch, wenn Sie Quellen hinzufügen oder ändern. Der Fortschritt wird im Wissensdatenbank-Tab angezeigt (Prozentsatz, verarbeitete Elemente).

### Wissen auf Agenten- vs. Knotenebene

* **Wissensdatenbank auf Agentenebene** (Wissensdatenbank-Tab) — Quellen, die allen Workflow-Knoten zur Verfügung stehen
* **Wissensdatenbank auf Knotenebene** (Workflow → Knoten → Wissensdatenbank-Tab) — RAG nur auf bestimmte Quellen für diesen Knoten beschränken

**Beispiel:** Ihr benutzerdefinierter Knoten „Technischer Support" sieht nur Produkthandbücher und FAQ-Dokumente, während der Knoten „Vertrieb" Produktkataloge mit Preisen sieht.

<Tip>
  Spezifische, gut strukturierte Inhalte liefern bessere Ergebnisse als lange allgemeine Dokumente. Produktbeschreibungen mit klaren Parametern geben dem Agenten präzise Antworten. Kurze FAQ-Einträge funktionieren besser als umfangreiche Handbücher.
</Tip>

***

## Sprache

Spracheinstellungen werden im **Sprach**-Unter-Tab des Widget-Tabs oder direkt in den STT/TTS-Knoten des Workflows konfiguriert.

### Speech-to-Text (STT)

| Einstellung        | Optionen                                                                           |
| ------------------ | ---------------------------------------------------------------------------------- |
| **Anbieter**       | OpenAI Whisper, Google Speech (demnächst verfügbar)                                |
| **Sprache**        | Ukrainisch, Englisch                                                               |
| **Begrüßung**      | Text + vorsynthetisiertes Audio, das beim Start der Sprachfunktion abgespielt wird |
| **Verabschiedung** | Text + vorsynthetisiertes Audio, das beim Ende der Sprachfunktion abgespielt wird  |

### Text-to-Speech (TTS)

| Einstellung         | Optionen                                                                                                       |
| ------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Anbieter**        | OpenAI TTS (ElevenLabs und Google Cloud demnächst verfügbar)                                                   |
| **Stimme**          | Alloy (neutral), Echo (warm), Fable (ausdrucksvoll), Onyx (tief), Nova (freundlich, Standard), Shimmer (sanft) |
| **Modell**          | `tts-1` (Standard), `tts-1-hd` (HD-Qualität)                                                                   |
| **Geschwindigkeit** | 0,5x – 2,0x                                                                                                    |

### Sprach-Pipeline

<Steps>
  <Step title="Audio empfangen">
    Das Audio des Besuchers wird an den Server gesendet (max. 10 MB, Formate: webm, ogg, wav, mp3).
  </Step>

  <Step title="STT-Transkription">
    Audio wird in Text transkribiert. Die Transkription wird in Echtzeit über SSE zurückgestreamt.
  </Step>

  <Step title="Workflow-Verarbeitung">
    Die Transkription wird durch denselben Workflow wie Text verarbeitet — RAG, Werkzeuge, Knotenweiterleitung.
  </Step>

  <Step title="TTS-Synthese">
    Die Antwort wird in Sätze aufgeteilt, jeder wird zu Audio synthetisiert. Abschnitte werden zurückgestreamt, sobald sie generiert sind.
  </Step>

  <Step title="Wiedergabe">
    Der Besucher hört die Antwort als Streaming-Audio und sieht gleichzeitig den Text.
  </Step>
</Steps>

<Note>
  Sprache erfordert einen Tarif mit Sprachfunktionen. Bei Tarifen ohne Sprache zeigen die Sprachsteuerungen einen Upgrade-Hinweis und der Nur-Chat-Modus wird erzwungen.
</Note>

***

## Kanäle

Der Kanäle-Tab steuert, wo Ihr Agent Nachrichten empfängt.

| Kanal         | Voraussetzung         | Beschreibung                                                     |
| ------------- | --------------------- | ---------------------------------------------------------------- |
| **Widget**    | Keine (integriert)    | Chat-Widget auf Ihrer Website über das Tracker-Skript            |
| **Telefon**   | VoIP-Integration      | Eingehende/ausgehende Anrufe über Twilio, Binotel oder Ringostat |
| **Telegram**  | Telegram-Integration  | Telegram-Bot-Konversationen                                      |
| **WhatsApp**  | WhatsApp-Integration  | WhatsApp Business API                                            |
| **Instagram** | Instagram-Integration | Instagram-Direktnachrichten                                      |

### Einen Kanal verbinden

**Widget** — klicken Sie auf Aktivieren. Das Widget antwortet sofort auf Ihrer Website.

**Andere Kanäle:**

1. Verbinden Sie die Integration unter [Integrationen](/integrations/overview)
2. Wählen Sie im Kanäle-Tab eine Ressource aus dem Dropdown (z. B. eine Telefonnummer, einen Bot, eine Seite)
3. Klicken Sie auf Aktivieren — eine eindeutige **Webhook-URL** wird generiert

Jede Kanalkarte zeigt den Verbindungsstatus, den Ressourcennamen, die Gesamtzahl der Konversationen und die Webhook-URL mit einer Kopierschaltfläche.

***

## Widget-Anpassung

Der Widget-Tab hat eine **Live-Vorschau** auf der linken Seite (Desktop/Tablet/Mobil-Umschalter) und ein Einstellungspanel auf der rechten Seite mit 3 Unter-Tabs.

### Erscheinungsbild

| Einstellung        | Beschreibung                                                                                            |
| ------------------ | ------------------------------------------------------------------------------------------------------- |
| **Farben**         | 6 Farbwähler: Primärfarbe, Chat-Button, Nachrichtenhintergrund, Animation, Bewertungssterne, Statustext |
| **Beschriftungen** | Haupttitel, Anruf-Button-Text, Chat-Button-Text, Eingabe-Platzhalter                                    |
| **Position**       | Unten rechts, Unten mittig, Unten links, Oben rechts, Oben mittig, Oben links                           |
| **Design**         | Hell oder Dunkel                                                                                        |
| **Größe**          | Klein, Mittel, Groß                                                                                     |
| **Eckenradius**    | 0–50px Eckenabrundung                                                                                   |
| **Deckkraft**      | 0–100% Hintergrund-Deckkraft                                                                            |
| **Avatar**         | Benutzerdefinierte Avatar-URL                                                                           |

### Verhalten

| Einstellung                   | Beschreibung                                                              |
| ----------------------------- | ------------------------------------------------------------------------- |
| **Sprache**                   | Englisch, Ukrainisch, Polnisch, Deutsch, Spanisch                         |
| **Feedback-Erfassung**        | Sternebewertung nach der Konversation anzeigen                            |
| **Text während Anruf**        | Tippen erlauben, während ein Sprachanruf aktiv ist                        |
| **Nur-Chat-Modus**            | Sprache deaktivieren (nur Text). Wird bei Tarifen ohne Sprache erzwungen. |
| **Nutzungsbedingungen**       | Zustimmung vor dem Chat erforderlich. Benutzerdefinierter Text und URL.   |
| **Soundeffekte**              | Benachrichtigungstöne ein/aus                                             |
| **Automatisches Öffnen**      | Widget automatisch nach Verzögerung öffnen (0–60 Sekunden)                |
| **Automatische Begrüßung**    | Erste Nachricht automatisch senden                                        |
| **Auf Mobilgeräten anzeigen** | Auf Mobilgeräten anzeigen                                                 |
| **Auf Desktop anzeigen**      | Auf Desktop-Geräten anzeigen                                              |
| **Powered By**                | „Powered by Revol"-Branding ein-/ausblenden                               |
| **Willkommensnachricht**      | Text, der in der Widget-Kopfzeile angezeigt wird                          |

### Sprache

STT- und TTS-Einstellungen — identisch wie im Abschnitt [Sprache](#sprache) beschrieben. Hier oder in den STT/TTS-Workflow-Knoten konfigurierbar (sie synchronisieren sich).

***

## Analyse

Zweispaltiges Layout: Konversationsliste (links) + Konversationsdetails (rechts).

### Filter

| Filter            | Beschreibung                                       |
| ----------------- | -------------------------------------------------- |
| **Suche**         | Textsuche über Konversationen                      |
| **Kanal**         | Alle / Web / Telefonie / Messenger / Widget / etc. |
| **Status**        | Alle / Aktiv / Geschlossen / Archiviert            |
| **Datumsbereich** | Von/Bis Datumsauswahl                              |

Die Konversationsliste zeigt 20 pro Seite mit „Mehr laden"-Paginierung. Neue Konversationen erscheinen in Echtzeit über WebSocket.

### Konversationsdetails (4 Unter-Tabs)

| Tab               | Inhalt                                                                               |
| ----------------- | ------------------------------------------------------------------------------------ |
| **Transkription** | Vollständiger Nachrichtenverlauf — Benutzer- und Assistenten-Blasen mit Zeitstempeln |
| **Bewertung**     | Sternebewertung des Besuchers (1–5) und optionaler Kommentar                         |
| **Token**         | Token-Verbrauchsaufschlüsselung pro Nachricht                                        |
| **Info**          | Kanal, Status, Sitzungs-ID, erfasste Speicherfelder, Erstellungsdatum                |

***

## System-Prompt-Architektur

Das Verständnis, wie der endgültige Prompt zusammengestellt wird, hilft Ihnen, bessere Anweisungen zu schreiben.

<Steps>
  <Step title="Ihr System-Prompt">
    Der Text aus dem Agent-Tab (oder das Gesprächsziel des Knotens bei benutzerdefinierten Knoten). Wenn leer, wird ein Standard-Prompt mit Ihrem Firmennamen und grundlegenden Regeln generiert.
  </Step>

  <Step title="Sicherheitsblock">
    Automatisch angehängt. 4 Anti-Injection-Regeln — der Agent wird seinen Prompt nicht preisgeben, seine Rolle nicht ändern und keine Override-Versuche befolgen.
  </Step>

  <Step title="Stil-Anweisungen">
    Generiert aus den Persönlichkeitsreglern — bildet Antwortlänge, Humor, Formalität, Klarheit und Emoji auf Textanweisungen ab.
  </Step>

  <Step title="Werkzeugbeschreibungen">
    Funktionsschemata für alle aktivierten Werkzeuge, damit das LLM weiß, was es aufrufen kann.
  </Step>

  <Step title="RAG-Kontext">
    Relevante Wissensdatenbank-Segmente, eingefügt als „Wissensdatenbank-Kontext"-Block.
  </Step>

  <Step title="Kampagnen-Kontext">
    Wenn der Besucher über eine Kampagne mit festgelegtem KI-Agenten-Verhalten kam, wird dieser Prompt eingefügt.
  </Step>

  <Step title="Speicherzustand">
    Aktuelle Werte der erfassten Speicherfelder (z. B. `name: Max, email: max@beispiel.de`), damit der Agent weiß, was er bereits gesammelt hat.
  </Step>

  <Step title="Spracherkennung">
    Wenn die Nachricht des Besuchers keine kyrillischen Zeichen enthält, wird eine Systemanweisung hinzugefügt: „Antworten Sie in derselben Sprache wie die Nachricht des Benutzers."
  </Step>
</Steps>

***

## Einbettungscode

Klicken Sie auf **Einbetten** in der Agenten-Kopfzeile, um das HTML-Snippet zu erhalten:

```html theme={null}
<script
  src="https://your-domain.com/tracker.js"
  data-company-id="YOUR_COMPANY_ID"
  data-api-key="YOUR_API_KEY"
  async>
</script>
```

Dies lädt sowohl den Tracker (Analysen, Kampagnen, Ereignisse, Auslöser, Telefonnummerntausch) als auch das Chat-Widget mit Ihrem aktiven Agenten. Wenn kein API-Schlüssel vorhanden ist, klicken Sie zuerst auf **API-Schlüssel generieren**.

***

## Tarifgrenzen

| Ressource                     | Was sie steuert                                                   |
| ----------------------------- | ----------------------------------------------------------------- |
| **Max. Agenten**              | Gesamtzahl der Agenten, die Sie erstellen können                  |
| **Max. Konversationen**       | Konversationen pro Abrechnungszeitraum                            |
| **Standard-Token-Kontingent** | Token für Standardmodelle (GPT-4o Mini, Haiku, Flash, Llama 8B)   |
| **Premium-Token-Kontingent**  | Token für Premiummodelle (GPT-4o, Sonnet, Gemini Pro, Llama 70B)  |
| **Tägliches Token-Limit**     | Tagesgrenze über alle Modelle                                     |
| **STT-Minuten**               | Speech-to-Text-Transkriptionszeit                                 |
| **TTS-Zeichen**               | Text-to-Speech-Synthesezeichen                                    |
| **Embedding-Token**           | Token für das Training der Wissensdatenbank                       |
| **Speicher**                  | Dateispeicher für Dokumente, Fotos, Videos                        |
| **Sprache**                   | Feature-Flag — aktiviert/deaktiviert die Sprach-Pipeline          |
| **Modellzugang**              | `standard` oder `premium` — steuert den Zugang zu Premiummodellen |
