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

# Prompting Guide

> Leitfaden für wirkungsvolle KI-Anweisungen: empfohlene Struktur, Tipps & Tricks, Beispiele, Tools und Variablen.

Die **KI-Anweisung (Prompt)** ist das zentrale Steuerungselement Ihres Voice Agents. Sie legt fest, wer der Agent ist, wie er spricht, was er erreichen soll und was er auf keinen Fall tun darf.

Anweisungen für Voice Agents unterscheiden sich deutlich von Prompts für Chat-Anwendungen, denn sie müssen zwei Anforderungen gleichzeitig erfüllen:

1. **Natürlich klingen.** Text, der geschrieben gut aussieht, klingt vorgelesen schnell steif und roboterhaft. Die Anweisung muss aktiv gegen die Neigung des Sprachmodells zu perfekter Schriftsprache arbeiten.
2. **Zuverlässig funktionieren.** Der Agent muss Tools korrekt aufrufen, Regeln einhalten, an Menschen übergeben und mit Fehlern umgehen - live am Telefon, ohne Benutzeroberfläche als Rückfallebene.

Eine Anweisung, die nur auf Natürlichkeit optimiert ist, erzeugt einen charmanten Agenten, der Dinge erfindet. Eine rein regelbasierte Anweisung erzeugt einen zuverlässigen Agenten, der wie eine Bandansage klingt. Gute Prompts schaffen beides - dieser Guide zeigt, wie.

## Empfohlene Struktur

Gliedern Sie Ihre Anweisung in benannte Abschnitte mit Markdown-Überschriften. Das verhindert, dass sich Regeln aus verschiedenen Kontexten vermischen, und Sprachmodelle beachten bestimmte Überschriften - insbesondere `# Guardrails` - besonders zuverlässig.

> [!TIP]
>
> Verwenden Sie **englische Abschnitts-Überschriften mit deutschem Inhalt**. Das ist die etablierte Konvention, und Modelle reagieren auf die englischen Überschriften am zuverlässigsten. Der gesamte Text unter den Überschriften bleibt Deutsch.

Die bewährte Reihenfolge:

```markdown theme={null}
# Personality      → Wer ist der Agent?
# Environment      → Wo ist er, mit wem spricht er?
# Tone             → Wie spricht er? Wie lang sind die Antworten?
# Goal             → Was soll er erreichen? (nummerierte Schritte)
# Guardrails       → Was darf er niemals tun?
# Tools            → Wann und wie nutzt er welches Tool?
# Error handling   → Was tut er, wenn etwas fehlschlägt?
```

Nicht jede Anweisung braucht alle Abschnitte - ein reiner FAQ-Agent ohne Tools kann `# Tools` und `# Error handling` weglassen. Die **Reihenfolge** sollte aber erhalten bleiben: Persona vor Verhalten, Verhalten vor Regeln, Regeln vor Tool-Nutzung.

### # Personality

Definiert, wer der Agent ist. Beschreiben Sie die Persönlichkeit als **hörbares Verhalten**, nicht als Adjektive - "freundlich und hilfsbereit" ist ohnehin der Standardmodus jedes Sprachmodells und ändert nichts.

```markdown theme={null}
# Personality

Du bist Lena, die telefonische Assistentin der Autowerkstatt Meier.
Du klingst ruhig und souverän, ohne übertrieben begeistert zu wirken.
Du fängst Sätze auch mal mit "Also", "Ja" oder "Okay" an.
Wenn du etwas nicht weißt, sagst du das offen - du erfindest nichts.
```

### # Environment

Sagt dem Agenten, wo er sich befindet und was er über die Anrufer annehmen kann. Ein kurzer, aber wirkungsvoller Abschnitt: Ein frustrierter Anrufer braucht einen anderen Einstieg als ein neugieriger Interessent.

```markdown theme={null}
# Environment

Du führst ein Telefongespräch. Die Anrufer sind Kunden der Werkstatt und
möchten meist einen Termin vereinbaren oder haben eine Frage zu einer
laufenden Reparatur. Manche Anrufer sind in Eile.
```

### # Tone

Legt Antwortlänge, Tempo und Sprechstil fest. Jede Voice-Anweisung sollte eine **konkrete Ziellänge** enthalten - das ist einer der wirksamsten einzelnen Sätze im ganzen Prompt.

```markdown theme={null}
# Tone

Antworte in 1–2 kurzen Sätzen, außer der Anrufer bittet um Details.
Nutze kurze Bestätigungen zwischendurch: "Alles klar", "Einen Moment", "Verstehe".
Passe dich dem Tempo des Anrufers an - knapp, wenn er knapp ist.
```

### # Goal

Nummerierte Schritte, die der Agent abarbeiten soll. Für transaktionale Agenten (Terminbuchung, Bestellauskunft) ist dies der wichtigste Abschnitt: Er verwandelt vage Erwartungen in einen eindeutigen Ablauf.

```markdown theme={null}
# Goal

Führe die Terminvereinbarung in dieser Reihenfolge durch:

1. Kläre das Anliegen (Inspektion, Reifenwechsel, Reparatur).
2. Frage nach dem Wunschtermin. Ist er nicht frei, schlage direkt
   konkrete Alternativen vor.
3. Erfasse Vor- und Nachnamen. Bestätige bei seltenen Namen die Schreibweise.
4. Buche den Termin und wiederhole Datum und Uhrzeit zur Bestätigung.
```

### # Guardrails

Nicht verhandelbare Regeln. Formulieren Sie Guardrails als "Niemals"-Sätze und sammeln Sie sie zentral hier, statt sie über die Anweisung zu verstreuen.

```markdown theme={null}
# Guardrails

Nenne niemals Preise oder Zusagen, die nicht in deinen Informationen stehen.
Gib niemals Daten anderer Kunden weiter.
Wenn du eine Antwort nicht weißt, sage das offen und biete an
weiterzuverbinden. Erfinde nichts. Das ist wichtig.
```

### # Tools

Ein Unterabschnitt pro Tool mit drei Blöcken: **wann** es genutzt wird, **wie** es genutzt wird und **was bei Fehlern** passiert. Details dazu im Abschnitt [Tools in der Anweisung](#tools-in-der-anweisung).

### # Error handling

Übergreifende Regeln für den Fall, dass ein Tool fehlschlägt oder unerwartete Daten liefert.

```markdown theme={null}
# Error handling

Wenn ein Tool-Aufruf fehlschlägt:

1. Sag es ehrlich: "Da klemmt gerade etwas bei mir im System."
2. Erfinde keine Informationen. Das ist wichtig.
3. Versuche es einmal erneut. Klappt es wieder nicht, biete einen
   Rückruf oder die Weiterleitung an einen Mitarbeiter an.
```

## Tipps & Tricks

### Zeigen statt beschreiben

Vage Stil-Anweisungen ("sei locker", "klinge natürlich") bewirken fast nichts. Das Wirksamste, was Sie tun können: **konkrete Beispiel-Äußerungen** in die Anweisung schreiben - jeweils als Paar aus der roboterhaften Standardversion und der gewünschten natürlichen Version.

```markdown theme={null}
SO KLINGEN GUTE ANTWORTEN:

Statt: "Selbstverständlich kann ich Ihnen dabei behilflich sein."
Besser: "Ja, klar - das mach ich gerne für Sie."

Statt: "Einen Moment bitte, ich rufe Ihre Daten auf."
Besser: "Okay, einen Moment - ich schau da eben für Sie nach."

Statt: "Leider kann ich Ihre Bestellung nicht finden."
Besser: "Hmm, ich finde die gerade nicht - können Sie mir die Nummer
nochmal durchgeben?"

Statt: "Ist sonst noch etwas, womit ich Ihnen helfen kann?"
Besser: "Gibt's sonst noch was, wo ich helfen kann?"
```

Vier bis acht solcher Paare reichen. Decken Sie die häufigsten Situationen ab: bestätigen, nachschlagen, etwas nicht wissen, verabschieden. Das Modell lernt aus Beispielen deutlich besser als aus Adjektiven.

### Wichtige Regeln doppelt verankern

Sprachmodelle gewichten den jüngsten Gesprächsverlauf stärker als weit zurückliegende Anweisungen. Ihre 1–2 wichtigsten Regeln gehören deshalb **an zwei Stellen**: einmal in `# Guardrails`, einmal in dem Abschnitt, in dem sie konkret greifen (z. B. beim jeweiligen Tool). Hängen Sie an wirklich kritische Sätze den Zusatz **"Das ist wichtig."** an - sparsam eingesetzt, wirkt das zuverlässig.

Die eine Regel, die in **jede** Anweisung mit Tools gehört, gleich doppelt:

> Wenn du etwas nicht weißt oder ein Tool fehlschlägt, sage das offen. Erfinde niemals Informationen. Das ist wichtig.

Der Instinkt des Modells, "hilfreich" zu sein, erzeugt sonst erfundene Terminbestätigungen, Preise oder Bestellstatus - die teuersten Fehler im Live-Betrieb.

### Sie oder Du - festlegen und durchziehen

> [!WARNING]
>
> Legen Sie fest, ob der Agent Anrufer mit **Sie** oder **Du** anspricht, und halten Sie das in **jedem** Beispiel, jeder Formulierung und jedem Fehlertext konsequent durch. Eine Mischung wirkt am Telefon sofort irritierend. Orientieren Sie sich daran, wie Ihre Marke Kunden auch sonst anspricht.

### Schlank halten

Jede Zeile muss ihren Platz verdienen. Lange Anweisungen verlangsamen die Antwortzeit - und am Telefon ist jede Verzögerung direkt spürbar.

### Nicht motivieren, sondern anweisen

"Gib dir Mühe, besonders freundlich zu sein!" verschwendet Tokens. Schreiben Sie, **was** der Agent tun soll. Und setzen Sie GROSSBUCHSTABEN und "NIEMALS" sparsam ein - wenn alles betont ist, ist nichts mehr betont.

### Modell- und stimmspezifische Tipps

Je nach gewähltem Sprachmodell und gewählter Stimme gelten zusätzliche Regeln für die Anweisung. Prüfen Sie den passenden Abschnitt, bevor Sie live gehen: [ElevenLabs v3](#elevenlabs-v3-prompting) und [Soniox v2](#soniox-v2-prompting) für die Sprachausgabe im Standard-Modus, [GPT-Live](#gpt-live-prompting) für das Vollduplex-Modell in der Realtime Conversation.

## Nuancen: Sprache am Telefon

Anrufer sprechen ihre Angaben - das Modell muss sie in Schriftform umwandeln, bevor es sie an ein Tool übergibt. Hier passieren im Live-Betrieb die meisten Fehler. Schreiben Sie die Umwandlungsregeln direkt in die Anweisung bzw. in die Tool-Beschreibung.

### Uhrzeiten: die "halb drei"-Falle

Der häufigste Zuverlässigkeitsfehler bei deutschen Voice Agents: **"halb drei" bedeutet 14:30, nicht 15:30.** Verlassen Sie sich nicht darauf, dass das Modell das richtig macht - schreiben Sie die Regel mit Beispielen in die Anweisung:

| Gesprochen | Bedeutet |
| - | - |
| "halb drei" | 14:30 |
| "Viertel vor drei" | 14:45 |
| "Viertel nach drei" | 15:15 |
| "drei Uhr" | 15:00 |
| "Viertel drei" *(regional, Süddeutschland/Österreich)* | 14:15 |
| "drei viertel drei" *(regional)* | 14:45 |

### Datum, Telefonnummern, Zahlen

* **Datum:** Format ist TT.MM.JJJJ - "der dritte Mai" wird zu `03.05.`, nicht `05/03`. Relative Angaben wie "übermorgen" kann der Agent nur auflösen, wenn er das aktuelle Datum kennt - nutzen Sie dafür die [Datum-Variablen](#variablen-in-der-anweisung).
* **Telefonnummern:** Deutsche Anrufer diktieren oft in Zweiergruppen ("dreißig vierundsiebzig" = 30 74). Regel in die Anweisung: Ziffernpaare auflösen, Trennzeichen entfernen, führende 0 bei Bedarf durch +49 ersetzen.
* **Zahlen:** Dezimaltrennzeichen ist das Komma (`1,50 €`), Tausendertrennzeichen der Punkt (`1.500`). "Einundzwanzig" ist 21 - das Modell muss die Reihenfolge drehen.

### E-Mail-Adressen am Telefon vermeiden

> [!TIP]
>
> Verzichten Sie im Voice-Kanal nach Möglichkeit auf die Abfrage von E-Mail-Adressen. Die fehlerfreie Erfassung über das Telefon ist erfahrungsgemäß schwierig (Sonderzeichen, Schreibweisen, Domains) und führt häufig zu falsch zugestellten Bestätigungen. Eine **SMS an die anrufende Nummer** ist in der Regel der zuverlässigere Weg.

Falls es doch sein muss: Anrufer sagen "ät" oder "Klammeraffe" für `@`, "Punkt" für `.`, "Bindestrich" für `-` und buchstabieren nach dem Muster "M wie Martha". Schreiben Sie diese Umwandlung in die Tool-Beschreibung - und lassen Sie den Agenten die Adresse zur Bestätigung zurücklesen.

### Im Zweifel: zurücklesen

Die wirksamste einzelne Zeile für jeden Agenten, der Buchungen oder Daten verarbeitet:

```markdown theme={null}
Wenn du dir bei einer Angabe nicht sicher bist - Datum, Uhrzeit, Name,
Telefonnummer - lies sie einmal zurück und lass sie dir bestätigen,
bevor du sie weiterverwendest. Das ist wichtig.
```

## ElevenLabs v3 Prompting

Nutzt Ihr Agent eine **ElevenLabs-v3-Stimme**, gelten für die Sprachausgabe ein paar zusätzliche Regeln. v3 versteht **Audio-Tags** in eckigen Klammern als Regieanweisungen für die Sprechweise und reagiert deutlich stärker auf Satzzeichen als ältere Stimmen. Beides lässt sich in der Anweisung gezielt nutzen - und beides kann einen Agenten schnell übertrieben klingen lassen. Dieser Abschnitt beschreibt, was in die Anweisung gehört, damit die Sprachausgabe natürlich bleibt und die Zuverlässigkeit nicht leidet.

> [!NOTE]
>
> Audio-Tags wirken nur im Konversationstyp **Standard Conversation** (STT → LLM → TTS), in dem die Antworten des Sprachmodells als Text an die Sprachausgabe übergeben werden. Stimme und Stimm-Einstellungen wählen Sie in den [Sprach- und Audioeinstellungen](/docs/de/conversation-audio) des Agenten.

### Audio-Tags

Audio-Tags sind Wörter in eckigen Klammern, die v3 nicht vorliest, sondern als Anweisung für die Sprechweise interpretiert - etwa `[whispering]`, `[sighs]`, `[laughs]`, `[pauses]` oder `[rushed]`. Sie steuern, **wie** etwas gesagt wird, nicht **was** gesagt wird.

Im Voice Agent schreibt das Sprachmodell die Tags selbst in seine Antworten. Die Anweisung legt deshalb fest, welche Tags der Agent verwenden darf, wie oft und wann. Ohne diese Vorgabe nutzt das Modell entweder gar keine Tags oder setzt sie unkontrolliert ein.

Zwei Grundregeln:

* **Nur hörbare Sprechweise.** Ein Tag beschreibt etwas, das man am Telefon hören kann: Tempo, Lautstärke, Tonfall, eine Pause, ein Seufzen. Tags für Sichtbares wie `[standing]` oder `[grinning]` haben kein hörbares Gegenstück, und Soundeffekte wie `[music]` oder `[applause]` gehören nicht in ein Kundengespräch.
* **Tags verändern niemals die Aussage.** Ein Tag darf keinen Inhalt hinzufügen, nichts erfinden und keine Regel aus `# Guardrails` aufweichen. Und er darf niemals in einem Tool-Parameter landen - ein `[pauses]` im Namensfeld einer Terminbuchung ist ein Datenfehler.

### Pausen

Pausen entstehen in v3 über den Text selbst:

| Mittel | Wirkung |
| - | - |
| Auslassungspunkte `...` | Pause mit Gewicht - "Einen Moment... ich schau eben nach." |
| Punkt, Komma, Gedankenstrich | Normaler Sprechrhythmus, kurze Atempause |
| `[pauses]` | Bewusste, spürbare Pause an genau dieser Stelle |

Für die meisten Kundengespräche reichen Satzzeichen völlig aus. `[pauses]` ist die Ausnahme für Momente, in denen die Pause selbst eine Aussage ist - etwa bevor der Agent eine schlechte Nachricht überbringt.

### Sparsam einsetzen

Ein Tag pro Antwort ist viel, die meisten Antworten brauchen gar keins. Und ein Tag muss zur gewählten Stimme und zur Situation passen: Eine ruhige Support-Stimme soll nicht `[shouting]` rufen oder `[laughs harder]` lachen, und eine seriöse, professionelle Stimme reagiert auf spielerische Tags oft unnatürlich. Die Stimme muss der gewünschten Sprechweise ohnehin ähnlich sein - ein Tag verstärkt, was in der Stimme angelegt ist, es erschafft es nicht.

Für Kundenservice-Agenten hat sich eine kurze **Erlaubt-Liste** bewährt: drei bis vier zurückhaltende Tags, die explizit genannt werden - alles andere ist tabu. Verwenden Sie die englischen Tag-Namen aus der ElevenLabs-Dokumentation, auch in deutschen Anweisungen; das passt zur Konvention "englische Überschriften, deutscher Inhalt".

### Satzzeichen und Großschreibung

v3 liest Satzzeichen als Sprechanweisung: Auslassungspunkte verlangsamen und verleihen Gewicht, GROSSBUCHSTABEN werden betont, normale Satzzeichen geben den Rhythmus vor. Die Folge für die Anweisung: Das Modell übernimmt die Beispiel-Äußerungen aus dem Prompt (die "Statt/Besser"-Paare) - inklusive ihrer Satzzeichen. Schreiben Sie sie so, wie sie klingen sollen.

Verlassen Sie sich bei keinem dieser Effekte auf Annahmen. Wie stark eine Stimme auf ein Tag oder ein Satzzeichen reagiert, unterscheidet sich von Stimme zu Stimme - testen Sie jede Formulierung mit der tatsächlich gewählten Stimme.

### Beispiele

Ein `# Tone`-Abschnitt, der Audio-Tags kontrolliert freigibt:

```markdown theme={null}
# Tone

Antworte in 1–2 kurzen Sätzen, außer der Anrufer bittet um Details.

Du sprichst über eine ElevenLabs-v3-Stimme. Du darfst Audio-Tags in
eckigen Klammern verwenden, um deine Sprechweise zu steuern - höchstens
ein Tag pro Antwort und nur, wenn es hörbar zur Situation passt.

Erlaubt: [pauses], [quietly], [curious]
Nicht erlaubt: [shouting], [laughs], [excited], [sighs], Soundeffekte

Pausen machst du mit Satzzeichen: "Einen Moment... ich schau eben nach."
```

Passende und übertriebene Verwendung im Vergleich - die Paare eignen sich direkt als Beispiel-Äußerungen im Prompt:

```markdown theme={null}
SO KLINGEN GUTE v3-ANTWORTEN:

Passend: "Okay, einen Moment... ich schau eben in den Kalender."
Übertrieben: "[excited] Okay! [pauses] Einen Moment, [whispering] ich
schau in den Kalender!"

Passend: "Hmm... da ist leider schon was drin - Donnerstag um zehn
hätte ich aber noch frei."
Übertrieben: "[frustrated] [sighs] Da ist leider schon was drin."

Passend: "[curious] Und um welches Fahrzeug geht es?"
Übertrieben: "[curious] [excited] Und [pauses] um welches Fahrzeug
[laughs] geht es?"
```

Die Regel, die bei v3-Stimmen zusätzlich in `# Guardrails` gehört:

```markdown theme={null}
Audio-Tags verändern nur, wie du sprichst - niemals, was du sagst.
Schreibe niemals ein Audio-Tag in einen Tool-Parameter (Name, Datum,
Uhrzeit, Rufnummer). Das ist wichtig.
```

> [!WARNING]
>
> **Testen Sie v3 mit der tatsächlich gewählten Stimme.** Wie eine Stimme auf Tags und Satzzeichen reagiert, hängt von der Stimme selbst ab - geklonte und selbst designte Stimmen verhalten sich oft anders als Stimmen aus der Bibliothek, und eine hohe Stabilitäts-Einstellung dämpft die Wirkung von Tags. Prüfen Sie jedes erlaubte Tag im Browser-Test mit genau dieser Stimme. Reagiert die Stimme unnatürlich, streichen Sie das Tag aus der Erlaubt-Liste, statt die Formulierung zu retten.

Weiterführend bei ElevenLabs: [Audio-Tags und situative Sprechweise in Eleven v3](https://elevenlabs.io/blog/eleven-v3-situational-awareness) und [Prompting Eleven v3](https://elevenlabs.io/docs/overview/capabilities/text-to-speech/best-practices#prompting-eleven-v3) in den Best Practices zur Sprachausgabe.

## Soniox v2 Prompting

Verwendet Ihr Agent **Soniox `tts-rt-v2`** für die Sprachausgabe, können Audio-Tags die Sprechweise steuern. Setzen Sie englische Tags in eckigen Klammern **vor** den Text, auf den sie wirken sollen - auch wenn der gesprochene Text deutsch ist.

| Zweck | Dokumentierte Beispiele |
| - | - |
| Emotion und Tonfall | `[calm]`, `[reassuringly]` |
| Sprechweise | `[softly]`, `[slowly]` |
| Menschliche Laute | `[chuckles]`, `[sighs]` |
| Pausen | `[pause]`, gelegentlich `[long pause]`; für kurze Pausen `,` oder `...` |

Schreiben Sie die Worte passend zur beabsichtigten Stimmung und lassen Sie Satzzeichen den normalen Sprechrhythmus tragen. Tags sollten kurz sein und jeweils nur eine Anweisung enthalten. Kombinieren Sie sie sparsam und nennen Sie in der Anweisung nur die Tags, die der Agent verwenden darf. Zum Beispiel:

```markdown theme={null}
# Tone

Sprich ruhig und freundlich. Verwende nur bei Bedarf [reassuringly],
[softly] oder [pause] und setze Tags vor den betroffenen Satz.

Beispiel: "Hmm, ich schaue nach... [pause] [reassuringly] Morgen um zehn ist noch frei."
```

`Hmm`, `Ähm` und ähnliche gesprochene Einwürfe gehören als normale Wörter in den Text, nicht in eckige Klammern. Verwenden Sie keine Tags für Umgebungsgeräusche wie `[phone rings]`. Unbekannte Tags können vorgelesen werden; auch dokumentierte Anweisungen setzt nicht jede Stimme vollständig um. Testen Sie die gewählten Tags mit der tatsächlich verwendeten Stimme.

Weiterführend bei Soniox: [Emotion, Tonfall und Audio-Tags](https://soniox.com/docs/tts/concepts/emotion-and-tone) und [TTS-Modelle](https://soniox.com/docs/tts/models).

## GPT-Live Prompting

Nutzt Ihr Agent **GPT-Live** von OpenAI, gelten für die Anweisung ein paar Besonderheiten. GPT-Live ist ein Vollduplex-Sprachmodell: Es hört zu, während es spricht, steuert Sprecherwechsel und Unterbrechungen selbst und erzeugt direkt Audio - ohne Text-Zwischenstufe. Nachdenken und Tool-Aufrufe erledigt es nicht selbst, sondern übergibt sie an ein Backend-Modell und spricht dessen Ergebnis aus.

Alles aus den Abschnitten oben gilt weiterhin: die [empfohlene Struktur](#empfohlene-struktur), kurze gesprochene Antworten, die "Statt/Besser"-Paare, die Wann/Wie/Bei-Fehlern-Blöcke für [Tools](#tools-in-der-anweisung) und die Regeln zur [Sprache am Telefon](#nuancen-sprache-am-telefon). Dieser Abschnitt ergänzt nur, was bei GPT-Live anders ist.

> [!NOTE]
>
> GPT-Live wählen Sie im Konversationstyp **Realtime Conversation** in den [Sprach- und Audioeinstellungen](/docs/de/conversation-audio) des Agenten. Das Modell bringt eigene Stimmen mit; externe Stimmen, Audio-Tags, Reaktionszeit und Turn-Detector-Einstellungen gibt es hier nicht - der Sprecherwechsel ist Sache des Modells.

### Was die Anweisung steuert - und was nicht

Ihre Anweisung (Systemanweisung plus KI-Anweisung) geht vollständig an das Sprachmodell. Sie bestimmt Rolle, Sprechweise, Gesprächsziel und Guardrails - genau wie bisher. Das Backend-Modell, das Tools aufruft und Ergebnisse prüft, arbeitet mit festen Anweisungen der Plattform; diese sind nicht bearbeitbar. Es bekommt vom Sprachmodell die jeweilige Aufgabe samt Kontext übergeben, zum Beispiel "Termin am Donnerstag um 14:30 für Frau Berger buchen".

Daraus folgen drei praktische Grenzen:

* **Kein wörtlicher Text.** GPT-Live formuliert alles in eigenen Worten - auch die Begrüßung und Zwischensätze wie "Einen Moment bitte". Beschreiben Sie, *was* der Agent sagen soll, nicht den exakten Wortlaut. Ein Muster-Satz in der Anweisung wird sinngemäß getroffen, nicht abgelesen.
* **Keine Änderung während des Gesprächs.** Die Anweisung steht für die Dauer des Anrufs fest. Intents und Teilprompts, die die Anweisung mitten im Gespräch umschalten, stehen für GPT-Live nicht zur Verfügung. Packen Sie alle Gesprächspfade in eine schlanke Anweisung - oder teilen Sie sie auf mehrere Agenten auf.
* **Tool-Regeln kommen über die Aufgabe an.** Das Backend-Modell liest die Tool-Beschreibungen und das, was das Sprachmodell ihm als Aufgabe mitgibt. Schreiben Sie Regeln für ein Tool deshalb weiterhin knapp und konkret in die Anweisung (Wann/Wie/Bei Fehlern) - das Sprachmodell gibt sie so an das Backend weiter.

### Kurz, in Verhalten statt Wortlaut

GPT-Live braucht eine kürzere Anweisung als ein Standard-Agent. Ein paar Sätze zu Rolle, Tonfall und Tempo in `# Personality` und `# Tone` reichen - das Modell wählt die Formulierung selbst. Lange Listen mit Muster-Sätzen bringen hier wenig; zwei bis vier "Statt/Besser"-Paare genügen, um die Richtung vorzugeben.

```markdown theme={null}
# Personality

Du bist Lena, die telefonische Assistentin der Autowerkstatt Meier.
Du sprichst ruhig und freundlich, in normalem Tempo, ohne übertriebene
Begeisterung. Ist der Anrufer genervt, nimm das kurz wahr und geh direkt
zum nächsten hilfreichen Schritt.
```

### Zuhören, bestätigen, unterbrechen lassen

Zwei Dinge, die GPT-Live besser kann als ein Standard-Agent, und die die Anweisung ausdrücklich regeln sollte:

* **Rückmeldungen beim Zuhören.** GPT-Live kann kurze Bestätigungen einstreuen, während der Anrufer spricht ("Mhm", "Verstehe"). Legen Sie das Maß fest - "gelegentlich", nicht in jedem Satz - und hören Sie im Test, ob die Rückmeldungen helfen oder dem Anrufer ins Wort fallen.
* **Unterbrechungen.** Spricht der Anrufer dazwischen, soll der Agent aufhören zu reden und zuhören. Unterscheiden Sie in der Anweisung zwischen "hör auf" (nur schweigen) und einer Korrektur wie "nein, Freitag, nicht Donnerstag" (die laufende Aufgabe ändert sich).

```markdown theme={null}
# Tone

Antworte in 1–2 kurzen Sätzen, außer der Anrufer bittet um Details.
Gib beim Zuhören gelegentlich eine kurze Rückmeldung ("Mhm", "Verstehe"),
ohne dem Anrufer ins Wort zu fallen.
Unterbricht dich der Anrufer, hör sofort auf zu sprechen und hör zu.
Korrigiert er eine Angabe, übernimm die Korrektur, statt beim alten
Stand zu bleiben.
```

> [!WARNING]
>
> Unterbrochene Antworten bleiben für das Modell vollständig im Gesprächsverlauf - auch der Teil, den der Anrufer nie gehört hat. Im Transkript kann deshalb mehr Agententext stehen als tatsächlich gesprochen wurde. Lassen Sie den Agenten wichtige Angaben nach einer Unterbrechung noch einmal bestätigen, statt davon auszugehen, dass sie angekommen sind.

### Auf Ergebnisse warten statt raten

Jede Antwort, die von einem Tool abhängt - Verfügbarkeit, Preis, Buchung, Status -, muss das Sprachmodell an das Backend übergeben und auf das Ergebnis warten. Die häufigste Fehlerquelle bei GPT-Live: Das Modell überbrückt die Wartezeit und "bestätigt" dabei etwas, das noch gar nicht passiert ist. Die Regel dafür gehört in `# Tools` und noch einmal in `# Guardrails`:

```markdown theme={null}
# Guardrails

Bestätige niemals einen Termin, einen Preis oder eine erledigte Aktion,
bevor du das Ergebnis aus dem System hast. Während du wartest, sag kurz,
dass du nachsiehst - und rate nicht, wie es ausgeht. Das ist wichtig.
```

Was das Backend meldet, spricht der Agent in eigenen Worten aus. Meldet es einen Fehler oder ein unklares Ergebnis, greift Ihr `# Error handling` wie gewohnt.

### Beispiel

Eine vollständige GPT-Live-Anweisung für die Terminbuchung - bewusst kürzer als [Beispiel 1](#beispiel-prompts) für den Standard-Agenten:

```markdown theme={null}
# Personality

Du bist Lena, die telefonische Assistentin der Autowerkstatt Meier.
Du sprichst ruhig und freundlich, in normalem Tempo, ohne übertriebene
Begeisterung. Ist der Anrufer genervt, nimm das kurz wahr und geh direkt
zum nächsten hilfreichen Schritt.

# Environment

Du führst ein Telefongespräch. Heute ist {{{"variable": "datetime"}}}.
Die Anrufer sind Kunden der Werkstatt und möchten meist einen Termin
vereinbaren. Manche sind in Eile.

# Tone

Antworte in 1–2 kurzen Sätzen, außer der Anrufer bittet um Details.
Gib beim Zuhören gelegentlich eine kurze Rückmeldung ("Mhm", "Verstehe"),
ohne dem Anrufer ins Wort zu fallen.
Unterbricht dich der Anrufer, hör sofort auf zu sprechen und hör zu.
Korrigiert er eine Angabe, übernimm die Korrektur.

Statt: "Selbstverständlich kann ich einen Termin für Sie vereinbaren."
Besser: "Ja, klar - wann würde es Ihnen denn passen?"

Statt: "Leider ist dieser Termin nicht verfügbar."
Besser: "Hmm, da ist schon was drin - ich hätte Donnerstag um zehn."

# Goal

1. Kläre das Anliegen (Inspektion, Reifenwechsel, Reparatur, Sonstiges).
2. Frage nach dem Wunschtermin. Ist er nicht frei, schlage konkrete
   Alternativen vor.
3. Erfasse Vor- und Nachnamen. Bei seltenen Namen die Schreibweise
   bestätigen.
4. Lies Datum, Uhrzeit und Namen einmal zurück und buche erst nach
   ausdrücklicher Bestätigung.
5. Biete eine SMS-Bestätigung an die Rufnummer {{system.caller_number}} an.

# Guardrails

Nenne keine Preise - verweise auf das Gespräch vor Ort.
Bestätige niemals einen Termin oder eine erledigte Aktion, bevor du das
Ergebnis aus dem System hast. Rate nicht, während du wartest.
Das ist wichtig.
Wenn du etwas nicht weißt, sage das offen und biete einen Rückruf an.

# Tools

## Terminbuchung

Wann: Erst wenn Anliegen, Wunschtermin und Name vollständig vorliegen
und der Anrufer die Angaben bestätigt hat.

Wie: Übergib Datum, Uhrzeit und Namen genau wie bestätigt.
"halb drei" bedeutet 14:30, nicht 15:30. Sag kurz, dass du buchst,
und warte auf das Ergebnis, bevor du bestätigst.

## SMS

Wann: Nach erfolgreicher Buchung, wenn der Anrufer eine Bestätigung
möchte. Frage vorher, ob die anrufende Nummer verwendet werden darf.

# Error handling

Schlägt eine Buchung fehl, sag das ehrlich, erfinde keine Bestätigung
und biete eine SMS mit Buchungslink oder einen Rückruf an.
```

Testen Sie die Anweisung in echten Gesprächen, nicht nur im Lesen: Ob Rückmeldungen, Unterbrechungen und das Warten auf Tool-Ergebnisse so klappen wie beschrieben, hört man erst am Telefon. Ändern Sie pro Durchlauf eine Sache.

Weiterführend bei OpenAI: [GPT-Live prompting guide](https://developers.openai.com/api/docs/guides/live-prompting).

## Tools in der Anweisung

[Tools](/docs/de/tools) (Terminbuchung, SMS, E-Mail, API-Anfragen, n8n) werden in der Sidebar angelegt und im Voice Wizard pro Agent aktiviert. Die **Bedingung** am Tool steuert, wann es grundsätzlich verfügbar ist - die **Anweisung** beschreibt, wie es sich in den Gesprächsablauf einfügt.

Beschreiben Sie jedes Tool in der Anweisung mit drei Blöcken:

```markdown theme={null}
# Tools

## Terminbuchung

Wann: Erst wenn Anliegen, Wunschtermin und Name vollständig vorliegen.

Wie:
1. Lies dem Anrufer Datum und Uhrzeit zur Bestätigung vor.
2. Buche erst nach ausdrücklicher Bestätigung.
3. Uhrzeit-Angaben wie "halb drei" bedeuten 14:30, nicht 15:30.

Bei Fehlern: Sag ehrlich, dass die Buchung gerade nicht klappt, und biete
an, eine SMS mit einem Buchungslink zu senden. Erfinde keine Bestätigung.
```

Für heikle Tools (Buchungen, Zahlungen, Weiterleitungen) hat sich eine explizite **Voraussetzungsliste** bewährt: alle Bedingungen aufzählen, die erfüllt sein müssen, bevor das Tool aufgerufen werden darf. Das ersetzt ein Knäuel aus Wenn-dann-Logik durch eine einfache Checkliste, die das Modell vor jedem Aufruf durchgeht.

### Empfohlener Ablauf für die Terminbuchung

Soll Ihr Agent Termine entgegennehmen, empfehlen wir diesen Gesprächsverlauf als Leitfaden im `# Goal`-Abschnitt:

**1. Wunschtermin klären**

Fragen Sie zuerst nach dem gewünschten Termin. Ist dieser nicht verfügbar, schlägt der Agent direkt passende Ausweichtermine vor, statt den Anrufer mehrfach nachhaken zu lassen.

**2. Name erfassen**

Vor- und Nachname des Anrufers erfassen. Bei seltenen Namen die Schreibweise kurz zurückbestätigen.

**3. Termin buchen**

Der Agent legt den Termin an und wiederholt die wichtigsten Eckdaten zur Bestätigung.

**4. Optional: Bestätigung per SMS**

Kombinieren Sie den Ablauf mit dem SMS-Tool und senden Sie dem Anrufer eine Bestätigung. Klären Sie vorab, ob die anrufende Rufnummer verwendet werden darf, oder erfassen Sie alternativ eine Mobilnummer. Schlägt die Buchung im Backend fehl, kann ersatzweise eine SMS mit einem Buchungslink versendet werden.

## Variablen in der Anweisung

Variablen sind Platzhalter, die zur Laufzeit durch dynamische Werte ersetzt werden. Verwenden Sie **doppelte geschweifte Klammern** und den passenden Namensraum, zum Beispiel `{{system.caller_number}}` oder `{{pre_call.first_name}}`.

Tippen Sie `{{`, um eine Variable auszuwählen. Das gilt im normalen Prompt-Editor und im Vollbildmodus. Die Auswahl fügt den vollständigen Platzhalter ein.

> [!NOTE]
>
> Die bisherige Schreibweise mit Prozentzeichen (`%%…%%`) wird für neue Variablen nicht mehr verwendet. Schreiben Sie Variablen mit `{{…}}`.

### Anrufdaten

Diese Variablen werden aus dem laufenden Anruf befüllt und stehen **nur in der KI-Anweisung** zur Verfügung (nicht im System-Prompt):

| Variable | Bedeutung |
| - | - |
| `{{system.caller_number}}` | Rufnummer des Anrufers |
| `{{system.called_number}}` | Angerufene Nummer bzw. SIP-Endpunkt |
| `{{system.forwarded_from_number}}` | Vom Telefonieanbieter übermittelte Weiterleitungskennung. Je nach Anruf kann das eine Rufnummer oder eine technische Kennung sein. |

### Werte aus dem Inbound Webhook

Werte, die vor dem Anruf über den [Inbound Webhook](/docs/de/inbound-webhook) geladen werden, verwenden den Namensraum `pre_call`. Legen Sie zum Beispiel die Variable `first_name` an und verwenden Sie in der KI-Anweisung `{{pre_call.first_name}}`. Dieselben Werte können auch in der initialen Begrüßung, als Weiterleitungsziel und in der Nachbearbeitung verwendet werden.

### Datum & Zeit

Für Datum und Uhrzeit können Sie in der KI-Anweisung beispielsweise `{{system.datetime}}`, `{{system.date}}`, `{{system.time}}` oder `{{system.day_of_week}}` verwenden. Mit der JSON-Schreibweise legen Sie Zeitzone und Sprache ausdrücklich fest:

```
{{{"variable": "VARIABLENTYP", "timezone": "ZEITZONE", "language": "SPRACHE"}}}
```

| Variable | Beschreibung | Beispiel-Ausgabe |
| - | - | - |
| `{{{"variable": "datetime", "timezone": "Europe/Berlin", "language": "de"}}}` | Datum und Uhrzeit zum Zeitpunkt des Anrufs | Montag, 15. Januar 2024 um 14:30 Uhr |
| `{{{"variable": "date", "timezone": "Europe/Berlin", "language": "de"}}}` | Nur das Datum | Montag, 15. Januar 2024 |
| `{{{"variable": "time", "timezone": "Europe/Berlin", "language": "de"}}}` | Nur die Uhrzeit | 14:30 Uhr |
| `{{{"variable": "day_of_week", "timezone": "Europe/Berlin", "language": "de"}}}` | Nur der Wochentag | Montag |

**Parameter:**

* `variable`: `datetime`, `date`, `time` oder `day_of_week`
* `timezone`: IANA-Zeitzone (z. B. `Europe/Berlin`, `UTC`) - Standard: `Europe/Berlin`
* `language`: `de` oder `en` - Standard: `de`

> **Anwendungsfall: Weiterleitung nur während der Geschäftszeiten**
>
> ```
> Es ist {{{"variable": "time"}}} am {{{"variable": "day_of_week"}}}.
>
> Wenn es nach 18:00 Uhr oder vor 8:00 Uhr ist, oder wenn heute Samstag
> oder Sonntag ist, leite den Anruf NICHT weiter. Informiere den Anrufer
> über die Geschäftszeiten (Montag–Freitag, 8:00–18:00 Uhr) und biete an,
> eine Nachricht zu hinterlassen.
>
> Während der Geschäftszeiten verbinde direkt mit dem Support-Team.
> ```

> **Aufgelöste Variablen beim Testen überprüfen**
>
> Beim Testen Ihrer Anweisung können Sie die tatsächlich eingesetzten Werte an zwei Stellen einsehen:
>
> * **Browser-Test:** Die aufgelöste Anweisung wird beim Wechsel zum Prompt bzw. zu Beginn der Unterhaltung angezeigt.
> * **Conversations-Ansicht:** Klicken Sie auf "Details" und prüfen Sie die `tec_outputs` in der Debug-Ansicht.

> [!NOTE]
>
> Zusätzlich können Sie in der [Nachbearbeitung](/docs/de/post-processing) eigene Variablen definieren, die nach dem Anruf aus dem Gespräch extrahiert und in E-Mail-, SMS- und API-Aufgaben verwendet werden (z. B. `{{post_call.kunden_email}}`). Diese stehen nicht in der KI-Anweisung zur Verfügung.

## Beispiel-Prompts

Zwei vollständige Anweisungen, die die Struktur und die Tipps aus diesem Guide anwenden. Beide sprechen Anrufer mit **Sie** an - passen Sie das an Ihre Marke an.

> **Beispiel 1: Terminbuchung Autowerkstatt (mit Tools)**
>
> ```markdown theme={null}
> # Personality
>
> Du bist Lena, die telefonische Assistentin der Autowerkstatt Meier.
> Du klingst ruhig und souverän, ohne übertrieben begeistert zu wirken.
> Du fängst Sätze auch mal mit "Also", "Ja" oder "Okay" an.
> Wenn du etwas nicht weißt, sagst du das offen - du erfindest nichts.
>
> # Environment
>
> Du führst ein Telefongespräch. Heute ist {{{"variable": "datetime"}}}.
> Die Anrufer sind Kunden der Werkstatt und möchten meist einen Termin
> vereinbaren. Manche sind in Eile.
>
> # Tone
>
> Antworte in 1–2 kurzen Sätzen, außer der Anrufer bittet um Details.
> Nutze kurze Bestätigungen: "Alles klar", "Einen Moment", "Verstehe".
>
> SO KLINGEN GUTE ANTWORTEN:
>
> Statt: "Selbstverständlich kann ich einen Termin für Sie vereinbaren."
> Besser: "Ja, klar - machen wir. Wann würde es Ihnen denn passen?"
>
> Statt: "Einen Moment bitte, ich prüfe die Verfügbarkeit."
> Besser: "Okay, einen Moment - ich schau eben in den Kalender."
>
> Statt: "Leider ist dieser Termin nicht verfügbar."
> Besser: "Hmm, da ist leider schon was drin - ich hätte aber Donnerstag
> um zehn oder Freitag um halb neun."
>
> # Goal
>
> Führe die Terminvereinbarung in dieser Reihenfolge durch:
>
> 1. Kläre das Anliegen (Inspektion, Reifenwechsel, Reparatur, Sonstiges).
> 2. Frage nach dem Wunschtermin. Ist er nicht frei, schlage direkt
>    konkrete Alternativen vor.
> 3. Erfasse Vor- und Nachnamen. Bestätige bei seltenen Namen die
>    Schreibweise.
> 4. Buche den Termin über das Terminbuchungs-Tool und wiederhole Datum
>    und Uhrzeit zur Bestätigung.
> 5. Biete eine SMS-Bestätigung an die Rufnummer {{system.caller_number}} an.
>
> # Guardrails
>
> Nenne niemals Preise - verweise dafür auf das Gespräch vor Ort.
> Gib keine Informationen zu Fahrzeugen anderer Kunden weiter.
> Wenn du eine Frage nicht beantworten kannst, sage das offen und biete
> an, dass ein Mitarbeiter zurückruft. Erfinde nichts. Das ist wichtig.
>
> # Tools
>
> ## Terminbuchung
>
> Wann: Erst wenn Anliegen, Wunschtermin und Name vollständig vorliegen.
>
> Wie:
> 1. Lies Datum und Uhrzeit zur Bestätigung vor: "Also Donnerstag, der
>    16. Januar um 14:30 Uhr - passt das so?"
> 2. Buche erst nach ausdrücklicher Bestätigung.
> 3. Uhrzeiten korrekt umwandeln: "halb drei" bedeutet 14:30, nicht 15:30.
>    "Viertel vor drei" bedeutet 14:45.
>
> ## SMS
>
> Wann: Nach erfolgreicher Buchung, wenn der Anrufer eine Bestätigung
> möchte. Frage vorher, ob die anrufende Nummer verwendet werden darf.
>
> # Error handling
>
> Wenn ein Tool-Aufruf fehlschlägt:
>
> 1. Sag es ehrlich: "Da klemmt gerade etwas bei mir im System."
> 2. Erfinde keine Buchungsbestätigung. Das ist wichtig.
> 3. Versuche es einmal erneut. Klappt es wieder nicht, biete eine SMS
>    mit einem Buchungslink oder einen Rückruf an.
> ```

> **Beispiel 2: FAQ und Weiterleitung Elektronikgeschäft (ohne Buchung)**
>
> ```markdown theme={null}
> # Personality
>
> Du bist der telefonische Assistent von Elektro Schuster.
> Du bist geduldig und antwortest ohne Fachjargon.
> Wenn du etwas nicht weißt, sagst du das offen - du erfindest nichts.
>
> # Environment
>
> Du führst ein Telefongespräch. Es ist {{{"variable": "time"}}} am
> {{{"variable": "day_of_week"}}}. Die Anrufer haben Fragen zu
> Öffnungszeiten, Produkten, Reparaturen oder möchten einen Mitarbeiter
> sprechen.
>
> # Tone
>
> Antworte in 1–2 kurzen Sätzen. Sprich Öffnungszeiten natürlich aus:
> "Wir haben bis 20 Uhr auf", nicht "Die Öffnungszeiten sind
> Montag bis Freitag von 9:00 bis 20:00 Uhr".
>
> # Goal
>
> 1. Beantworte Fragen zu Öffnungszeiten, Anfahrt und Services direkt:
>    - Öffnungszeiten: Montag bis Freitag 9–20 Uhr, Samstag 10–18 Uhr.
>    - Rückgabe: 14 Tage mit Kaufbeleg.
>    - Reparaturannahme: jederzeit während der Öffnungszeiten, ohne Termin.
> 2. Bei Fragen, die du nicht beantworten kannst, biete die Weiterleitung
>    an einen Mitarbeiter an.
> 3. Weiterleitung nur während der Geschäftszeiten (Montag–Freitag,
>    9:00–18:00 Uhr). Außerhalb: Geschäftszeiten nennen und anbieten,
>    eine Nachricht zu hinterlassen.
>
> # Guardrails
>
> Mache keine Zusagen zu Lagerbeständen oder Reparaturdauern - das kann
> nur ein Mitarbeiter vor Ort.
> Nenne keine Preise, die nicht in deinen Informationen stehen.
> Wenn du etwas nicht weißt, sage das offen. Erfinde nichts.
> Das ist wichtig.
> ```

## Checkliste

Gehen Sie diese Punkte durch, bevor Sie eine Anweisung live schalten:

* Gibt es einen `# Personality`-Abschnitt mit hörbarem Verhalten statt Adjektiven?
* Legt `# Tone` eine konkrete Antwortlänge fest (z. B. "1–2 Sätze")?
* Enthält `# Goal` nummerierte, eindeutige Schritte?
* Gibt es 4–8 Beispiel-Paare ("Statt … / Besser …") für natürliche Formulierungen?
* Ist Sie/Du festgelegt und in jedem Beispiel konsistent?
* Hat jedes Tool eine Wann/Wie/Bei-Fehlern-Beschreibung?
* Ist die Umwandlung gesprochener Angaben geregelt (Uhrzeiten inkl. "halb drei", Datum, Telefonnummern)?
* Steht die "Erfinde nichts"-Regel an mindestens zwei Stellen?
* Ist die Anweisung schlank?
* Im Browser-Test geprüft, inklusive der [aufgelösten Variablen](#variablen-in-der-anweisung)?
* Bei einer ElevenLabs-v3-Stimme: Erlaubt-Liste für Audio-Tags festgelegt und mit der gewählten Stimme getestet?
* Bei GPT-Live: Rückmeldungen und Unterbrechungen geregelt, "Warte auf das Ergebnis"-Regel an zwei Stellen, kein wörtlicher Text vorausgesetzt?

## Häufige Fehler

* **Adjektive statt Verhalten.** "Sei freundlich und professionell" ändert nichts - beschreiben Sie, was man hören soll.
* **Alles betonen.** Wenn jede zweite Zeile "NIEMALS" enthält, verliert die Betonung ihre Wirkung. Reservieren Sie sie für die 1–2 wirklich kritischen Regeln.
* **Regeln nur einmal nennen.** Kritische Regeln gehören an zwei Stellen - sonst gehen sie in langen Gesprächen verloren.
* **Tools ohne Anleitung.** Ein Tool ohne Wann/Wie/Bei-Fehlern-Beschreibung führt zu improvisierten, unzuverlässigen Aufrufen.
* **Ein Mega-Prompt für alles.** Drei und mehr verschiedene Abläufe in einer Anweisung machen den Agenten langsam und fehleranfällig.
* **Nur lesen, nie anrufen.** Eine Anweisung, die gut aussieht, kann schlecht klingen. Testen Sie am Telefon und passen Sie iterativ an - eine Änderung pro Durchlauf.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.