Zum Hauptinhalt springen
Audact
Angebot ansehen

Erkennung des Anrufsabschlusses

Zwei unabhängige Mechanismen zum Beenden eines Anrufs von der Agentenseite: das end_call-Werkzeug für die Entscheidung des Modells sowie deterministische trigger_phrases und Stille-Erkennung.

Ein Audact-Sprachagent kann einen Anruf selbst beenden. Es gibt zwei unabhängige Mechanismen, die an verschiedenen Stellen konfiguriert werden. Beide münden in dieselbe Abschluss-Choreographie (Offenlegungs-Gate → Idempotenz → optionale Abschlusszeile → Auflegen → Nachweis + call_end_detected-Webhook), sodass ein agenteninitiiertes Auflegen unabhängig vom auslösenden Ereignis exakt dieselben Nebeneffekte hat.

1. Das end_call-Werkzeug (Modellentscheidung)

Wenn Sie einem Agenten ein end_call-Werkzeug zuweisen, steht dem Modell eine Funktion zur Verfügung, die es aufrufen kann, wenn es die Konversation als abgeschlossen erachtet (der Anrufer hat sich verabschiedet, die Aufgabe ist erledigt, es gibt nichts mehr zu tun).

  • Was das Modell sieht. Ein Function-Calling-Werkzeug, dessen Name dem von Ihnen vergebenen Namen entspricht — er heißt nicht automatisch end_call oder hangup. end_call (Anbieter) und hangup (Anbieter-Werkzeug) sind Audact-interne Bezeichner, die das Werkzeug mit dem Auflege-Verhalten verknüpfen; das LLM sieht ausschließlich den von Ihnen konfigurierten name und dessen Beschreibung. Wenn Ihr Agenten-Prompt das Werkzeug namentlich erwähnt, verwenden Sie den von Ihnen konfigurierten Namen.
  • Argumente. Das Werkzeug akzeptiert ein einzelnes optionales Freitext-Feld reason (eine eigene Notiz des Modells, z. B. „Anrufer hat sich verabschiedet"); es ist niemals erforderlich, und das Modell wird angewiesen, den Anrufer nie danach zu fragen.
  • Auslösezeitpunkt. Vollständig nach Ermessen des Modells. Die Beschreibung des Werkzeugs weist das Modell an, es nur dann aufzurufen, wenn die Konversation beendet ist und niemals bevor die Pflichtoffenlegung erfolgt ist — das Offenlegungs-Gate erzwingt dies unabhängig davon, was das Modell tut.
  • Dieses Werkzeug ist unabhängig vom end_call-Konfigurationsobjekt weiter unten: Es funktioniert auch ohne konfigurierte trigger_phrases.

2. Die end_call-Konfiguration (deterministische Erkennung)

Das end_call-Objekt in der Agentenkonfiguration beendet den Anruf ohne das Modell, indem es die Sprache des Anrufers überwacht:

  • trigger_phrases — Abschiedsphrasen, die am Ende der Äußerung des Anrufers erkannt werden (Terminalposition). „goodbye" am Ende einer Gesprächsrunde beendet den Anruf; „goodbye and one more thing…" hingegen nicht. Der Abgleich erfolgt ohne Berücksichtigung der Groß-/Kleinschreibung, ignoriert abschließende Satzzeichen und verfügt über einen Fallback ohne Diakritika.
  • silence — Beendet den Anruf, nachdem der Anrufer verstummt ist, wobei bis zu max_reprompts Mal bei jeweils window_ms Stille erneut nachgefragt wird.

Mindestkonfiguration zur Aktivierung

Ein lediglich nicht leeres end_call-Objekt reicht nicht aus. Die deterministische Erkennung ist nur dann aktiv, wenn:

  • trigger_phrases mindestens eine Phrase für die Locale des Anrufs enthält (aktiviert die Erkennung von Abschiedsphrasen), und/oder
  • silence.window_ms größer als 0 ist (aktiviert den Stille-Timeout).

closing_line allein bewirkt nichts — sie wird nur gesprochen, wenn ein Auslöser (oder das end_call-Werkzeug) ausgelöst wird. Ein leeres bzw. fehlendes Objekt bedeutet, dass die deterministische Richtlinie deaktiviert ist.

Empfohlene trigger_phrases für eine Rezeptionistin (en): goodbye, bye, bye bye, that's all, that's everything, that will be all, nothing else, no that's it, thank you goodbye.

3. Locale-Schlüssel

Alle locale-gekeyten Maps in end_call (trigger_phrases, closing_line, silence.reprompt_text) verwenden eine tolerante Schlüsselauflösung:

  1. Genaue Übereinstimmung mit dem Sprach-Tag des Anrufs (en-GB), dann
  2. Abgleich auf den primären Subtag (en-GB ↔ en ↔ en-IE), dann
  3. Wenn die Map genau einen Eintrag enthält, wird dieser unabhängig von der Locale verwendet.

Verwenden Sie daher en — Sie benötigen keine separaten en-GB/en-IE-Schlüssel. Die Beispiele in dieser Spezifikation verwenden aus diesem Grund en und nl.

4. closing_line versus die eigene Verabschiedung des Modells

closing_line ist eine feste Zeile, die der Agent zusätzlich zu dem, was das Modell bereits gesagt hat, spricht — eine separate, geskriptete TTS-Zeile, kein Ersatz. Wenn Ihr Agenten-Prompt bereits eine Verabschiedung enthält (z. B. „Thanks for calling. Bye.") und Sie eine closing_line setzen, hört der Anrufer zwei Verabschiedungen.

Wählen Sie eine der folgenden Optionen:

  • closing_line leer lassen und das Modell die Verabschiedung sprechen lassen, oder
  • closing_line setzen und den Prompt anweisen, keine eigene Verabschiedung zu sagen.

5. Zeitpunkt des Auflegens

  • Offenlegungs-Gate. Die Beendigung wird unterdrückt, bis die Pflichtoffenlegung für den Anruf erfolgt ist (die einzige Ausnahme ist Voicemail). Bis dahin ist ein end_call-Werkzeugaufruf oder eine ausgelöste Phrase wirkungslos und der Anruf wird fortgesetzt.
  • Idempotenz. Nur die erste Beendigung eines Anrufs wird ausgeführt; doppelte oder gleichzeitige Auslöser (das Modell ruft das Werkzeug zweimal auf, eine Phrase wird direkt nach dem Werkzeug ausgelöst) sind wirkungslos.
  • Warten auf die Abschlusszeile. Wenn eine closing_line gesetzt ist, wartet Audact, bis diese vollständig abgespielt wurde, und hält dann noch einen kurzen zusätzlichen Drain ein, bevor der Medienraum gelöscht wird — damit die Zeile nicht mitten in einem Wort abgeschnitten wird. Eine closing_line ist daher der zuverlässige Weg, um eine vollständige gesprochene Verabschiedung vor dem Auflegen zu gewährleisten.
  • Ohne closing_line erfolgt der Abbau sofort, sobald der Auslöser ausgelöst wird; der eigene abschließende Satz des Modells ist gewöhnliches Gesprächsaudio und wird nicht speziell abgewartet. Wenn Sie sich auf die geskriptete Verabschiedung des Modells verlassen, stellen Sie sicher, dass diese abgeschlossen ist, bevor der Werkzeugaufruf erfolgt — oder verwenden Sie stattdessen closing_line.

Quelle aktualisiert: 19. Oktober 2026