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

# System-Prompt vs. Flow Builder

> Zwei Wege, das Verhalten deines Assistenten zu definieren – und wann du welchen nutzt

Einen Assistenten kannst du auf zwei Arten steuern: mit einem **einzelnen System-Prompt** oder einem **visuellen Flow**. Beide nutzen dieselbe Sprach-Engine – der Unterschied liegt darin, wie viel Struktur du dem Gespräch gibst.

## Woraus ein Assistent besteht

Jeder Assistent setzt sich aus denselben Bausteinen zusammen, unabhängig davon, wie du sein Verhalten konfigurierst:

| Baustein              | Was er steuert                                                                                                                                                                             |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Verhalten**         | Ein System-Prompt oder ein Flow – siehe unten                                                                                                                                              |
| **Engine-Modus**      | [Pipeline, Realtime oder Half-Cascade](/de/assistants/engine-modes) – wie er hört und spricht                                                                                              |
| **Modell und Stimme** | Das [Sprachmodell, die Spracherkennung und die Stimme](/de/assistants/models-and-voices), die er nutzt                                                                                     |
| **Tools**             | [Eingebaute Aktionen](/de/assistants/built-in-tools) wie Transfers, SMS oder das Beenden des Anrufs, plus [Agent-Tools](/de/assistants/agent-tools), die du selbst baust oder installierst |
| **Channels**          | Wo er erreichbar ist – Telefonnummern, [WhatsApp](/de/channels/whatsapp), das [Web-Widget](/de/web-widget) und mehr                                                                        |

Sobald er konfiguriert ist, weist du den Assistenten für eingehende Anrufe einer Telefonnummer oder für ausgehende Anrufe einer [Kampagne](/de/campaigns/overview) zu.

## Einzelner System-Prompt

Der einfachste Aufbau: Ein Prompt beschreibt Rolle, Wissen und Regeln des Assistenten; eine **first message** legt die Begrüßung fest. Das LLM führt das gesamte Gespräch frei im Rahmen dieser Vorgaben.

**Ideal für:**

* FAQ- und Empfangsassistenten („Fragen beantworten, Nachrichten aufnehmen")
* Assistenten, deren Aufgabe sich nicht in klare Phasen aufteilt
* Schnelles Prototyping – du kannst einen Prompt in Sekunden umschreiben

**Konfiguration:**

* **Agent type** – wähle beim Erstellen des Assistenten oder später unter **Settings → General** zwischen **Single prompt** und **Conversational flow**.
* **System prompt** – Rolle, Ton, Regeln und Fakten. Nutze **Choose template** auf der Leinwand (Prompt-Modus) oder beim Erstellen des Assistenten. Beim Anwenden einer Vorlage wird ihr Inhalt in den Prompt (und optional die erste Nachricht) kopiert; eine Live-Verknüpfung zur Vorlage bleibt dabei nicht bestehen. Wie du den Prompt selbst strukturierst und straffst, steht unter [Prompts schreiben](/de/assistants/prompt-writing).
* **First message** – die Eröffnungszeile, die gesprochen wird, sobald der Anruf verbunden ist.
* **Greeting mode** – `agent speaks first` (typisch bei eingehenden Anrufen) oder `user speaks first` (der Assistent wartet ab; sinnvoll bei ausgehenden Anrufen, wenn die angerufene Person zuerst „Hallo?" sagt).
* **Allow interruption** – optional dürfen Anrufer die Eröffnungsbegrüßung unterbrechen. Diese Einstellung ist von den allgemeinen Gesprächsunterbrechungs-Einstellungen getrennt.
* **Audio greeting** – lade optional eine Audiodatei hoch oder nimm eine auf (mp3/wav/ogg/m4a, ≤ 5 MB), die zu Gesprächsbeginn statt der synthetischen Stimme abgespielt wird. Der Text der ersten Nachricht bleibt für Textkanäle und Voicemail verfügbar. Verwaltung über die Greeting-Karte oder über `POST`/`DELETE /api/v1/assistants/{id}/greeting-audio`.
* **Assistant picture** – lade optional ein PNG/JPEG/WebP-Bild (≤ 1 MB) hoch, das in der Produktoberfläche statt des Standard-Orbs angezeigt wird. Fahre im Assistenten-Header mit der Maus über den Avatar, um ihn hochzuladen oder zu ersetzen, oder nutze `POST`/`DELETE /api/v1/assistants/{id}/avatar`.

<Tip>
  Halte die erste Nachricht kurz – 5 bis 10 Sekunden reichen völlig. Da sie exakt so gesprochen wird, wie sie geschrieben ist, schreib Zahlen und Satzzeichen so, wie sie klingen sollen (eine Auslassung … sorgt für eine natürliche Pause). Wenn du eine aufgenommene Audio-Begrüßung verwendest, lass sie professionell aufnehmen und klone dieselbe Stimme für den Rest des Anrufs, damit der Übergang von der Aufnahme zur synthetischen Sprache nahtlos wirkt.
</Tip>

## Use-Case-Vorlagen

Die Galerie im Dialog **Create assistant** enthält sowohl Prompt-Vorlagen als auch vollständige Flow-Baupläne. Flow-Baupläne zeigen das erwartete Ergebnis, kompatible Oberflächen und alle Einrichtungsschritte, die nach dem Erstellen noch nötig sind. Beim Anwenden werden Prompt, Begrüßung, Graph und Variablen in den neuen Assistenten kopiert; die Kopie bleibt frei bearbeitbar und ändert sich nicht, wenn die Katalogvorlage aktualisiert wird. Mehr dazu unter [Mit einer Use-Case-Vorlage starten](/de/flow-builder/overview#mit-einer-use-case-vorlage-starten).

Das Label **Avatar-ready** beschreibt das vorgesehene Web-Erlebnis und keinen besonderen Flow-Knoten. Web-Widget und virtuellen Avatar richtest du nach dem Erstellen ein. Das Assistentenbild ist nur das statische Porträt in der Produktoberfläche und vom sprechenden Avatar einer Web-Session getrennt.

## Flow Builder

Der [Flow Builder](/de/flow-builder/overview) verwandelt den Anruf in einen Graphen: mehrere spezialisierte Agenten, Bedingungsverzweigungen, HTTP-Tools, Schritte zur Datenerfassung, Übergaben und explizite Gesprächsenden. Die Engine reicht das Gespräch von Knoten zu Knoten weiter.

Wechsle im Editor zu **Flow** (oder erstelle den Assistenten direkt mit **Conversational flow**). Der **base system prompt** wird unter **Settings → General → Advanced prompt** bearbeitet (auf der Leinwand eingeklappt dargestellt). Anweisungen von Agent-Knoten werden diesem Prompt **angehängt** – sie ersetzen ihn nicht.

**Ideal für:**

* Anrufe mit klar abgegrenzten Phasen (qualifizieren → Daten erfassen → buchen → bestätigen)
* Zuverlässige Datenerfassung (Namen, E-Mail-Adressen, Telefonnummern mit eingebauter Validierung)
* Anrufe, die verzweigen müssen („Bestandskunde?" → unterschiedliche Pfade)
* Übergaben nach festen Regeln (Warmübergabe an den Vertrieb erst nach erfolgter Qualifizierung)

## Was solltest du wählen?

| Situation                              | Empfehlung                                                                                                           |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| „Fragen zu X beantworten"              | System-Prompt                                                                                                        |
| „Immer eine Rückrufnummer erfassen"    | Flow (ein `collect`-Knoten validiert sie)                                                                            |
| „Support vs. Vertrieb weiterleiten"    | Flow (ein `condition`-Knoten verzweigt)                                                                              |
| „Mitten im Gespräch eine API aufrufen" | Beides möglich – Flows bieten `tool`-Knoten, reine Prompt-Assistenten nutzen [MCP-Tools](/de/api/tools-and-webhooks) |
| Erster Prototyp                        | System-Prompt, später zu einem Flow ausbauen                                                                         |

<Note>
  Die `agent`-Knoten eines Flows können ohne eigene Anweisungen bleiben – dann dient der System-Prompt des Assistenten (Advanced prompt) als Basis. Hat ein Agent-Knoten eigenen Text, wird dieser dem System-Prompt **angehängt**, nicht anstelle davon verwendet. Starte mit einem Prompt und ergänze bei Bedarf Flow-Struktur, ohne die komplette Persona zu duplizieren.
</Note>

## Einstellungen, die für beide Modi gelten

### Antwortverhalten je Kanal

Der Assistent passt Antwortlänge, Ton und Formatierung automatisch an den Ausgabekanal an: Anrufe bleiben natürlich und knapp, Live-Chat gut lesbar, Kollaborationskanäle handlungsorientiert und E-Mails strukturiert. Dafür ist keine Einrichtung nötig.

Um einen Kanal gezielt anzupassen, öffne **Settings → Channels**, wähle den Kanal, klappe **Advanced** auf und wechsle von **Automatic** zu **Manual**. Manuelle Anweisungen ergänzen das automatische Profil; sie ersetzen niemals Sicherheits-, Sprach-, Tool-Nutzungs- oder Zustellregeln. Web-Widget und WhatsApp konfigurieren Sprach- und Textmodus getrennt. Bleibt Manual leer, bleibt Automatic aktiv.

Unabhängig vom Modus hat jeder Assistent: einen Engine-Modus ([Pipeline / Realtime / Half-Cascade](/de/assistants/engine-modes)), eine Modell- und Stimmenauswahl, eine [Wissensdatenbank](/de/assistants/knowledge-base), [Einstellungen zur Gesprächsqualität](/de/assistants/conversation-quality), Optionen für Aufzeichnung und Einwilligung, eine maximale Anrufdauer, ein Leerlauf-Timeout, optionale Tags sowie eine Webhook-URL für Anrufergebnisse.

**iOS / Android Call Screen Handling** (**Settings → Conversation** oder der Pre-Call-Knoten im Flow Builder) lässt den Assistenten auf Screening-Dienste („Wer ruft an?") mit Name, Unternehmen und Grund antworten und dann auf eine echte Person warten, bevor die normale Begrüßung folgt.

## Versionsverlauf

Jedes Speichern erstellt einen Schnappschuss der vorherigen Konfiguration des Assistenten. Öffne das **History**-Symbol im Editor-Header, um die vollständige Liste zu sehen, neueste zuerst.

* **Rename a version** – vergib ein kurzes, einprägsames Label statt des Standards „Version N".
* **Open a version** – lies eine allgemeinverständliche Zusammenfassung des Inhalts: Prompt, Modelle, Stimme, Tools, Channels und mehr.
* **Restore a version** – die aktuelle Konfiguration wird zuerst als Schnappschuss gesichert, das Wiederherstellen selbst lässt sich also rückgängig machen.

Dieselben Aktionen stehen als REST und MCP zur Verfügung:

| REST                                                        | MCP-Tool                    | Scope              |
| ----------------------------------------------------------- | --------------------------- | ------------------ |
| `GET /api/v1/assistants/{id}/versions`                      | `list_assistant_versions`   | `assistants:read`  |
| `GET /api/v1/assistants/{id}/versions/{versionId}`          | `get_assistant_version`     | `assistants:read`  |
| `PATCH /api/v1/assistants/{id}/versions/{versionId}`        | `rename_assistant_version`  | `assistants:write` |
| `POST /api/v1/assistants/{id}/versions/{versionId}/restore` | `restore_assistant_version` | `assistants:write` |
| `DELETE /api/v1/assistants/{id}/versions/{versionId}`       | `delete_assistant_version`  | `assistants:write` |

## Öffentlicher Demo-Link

Schalte **Public demo link** im Assistenten-Editor ein, um eine teilbare URL zu erhalten, die jeder öffnen kann, um sofort mit dem Assistenten zu sprechen – kein Login nötig. Anrufe darüber belasten das Credit-Guthaben deines Workspace genau wie Testanrufe, behalte die Nutzung also im Blick, wenn du den Link breit teilst.

Schaltest du den Regler aus, funktioniert der Link nicht mehr. Schaltest du ihn wieder ein, kommt exakt derselbe Link zurück statt eines neuen – ein bereits geteilter Link funktioniert also nach einem Aus-/Wiedereinschalten weiter.

<Note>
  Der öffentliche Demo-Link läuft auf der White-Label-Domain deines Workspace, sofern eine konfiguriert ist. Es gibt kein REST- oder MCP-Äquivalent – der Regler im Dashboard ist der einzige Weg, ihn ein- oder auszuschalten.
</Note>
