Ga naar hoofdinhoud
Audact
Bekijk het aanbod

Gesprekseinde detectie

Twee onafhankelijke mechanismen om een gesprek te beëindigen vanuit de agentkant: het end_call-hulpmiddel voor de beslissing van het model, en deterministische trigger_phrases en stilteherkenning.

Een Audact-spraakagent kan een gesprek zelf beëindigen. Er zijn twee onafhankelijke mechanismen, die op verschillende plaatsen worden geconfigureerd. Beide convergeren op dezelfde afsluiting-choreografie (openbaarmakingspoort → idempotentie → optionele afsluitzin → ophangen → bewijsmateriaal + call_end_detected-webhook), zodat een agent-geïnitieerd ophangen exact dezelfde neveneffecten heeft, ongeacht hoe het werd geactiveerd.

1. Het end_call-hulpmiddel (beslissing van het model)

Wanneer u een end_call-hulpmiddel aan een agent koppelt, beschikt het model over een functie die het kan aanroepen wanneer het oordeelt dat het gesprek is afgerond (de beller heeft gedag gezegd, de taak is voltooid, er is niets meer te doen).

  • Wat het model ziet. Een function-calling-hulpmiddel waarvan de naam de naam is die u hebt opgegeven bij het koppelen — het heet niet automatisch end_call of hangup. end_call (provider) en hangup (provider-hulpmiddel) zijn Audact-interne identificatoren die het hulpmiddel aan het ophanggedrag koppelen; het LLM ziet alleen de geconfigureerde name en de bijbehorende beschrijving. Als uw agentprompt het hulpmiddel bij naam noemt, gebruik dan de naam die u hebt geconfigureerd.
  • Argumenten. Het hulpmiddel accepteert één optioneel vrij-tekstveld reason (een eigen notitie van het model, bijv. "beller heeft gedag gezegd"); dit is nooit verplicht en het model wordt aangestuurd om er nooit naar te vragen aan de beller.
  • Wanneer het wordt geactiveerd. Volledig naar eigen inzicht van het model. De beschrijving van het hulpmiddel instrueert het om het alleen aan te roepen wanneer het gesprek klaar is en nooit voordat de verplichte openbaarmaking is gedaan — de openbaarmakingspoort hieronder handhaaft dit ongeacht wat het model doet.
  • Dit hulpmiddel is onafhankelijk van het end_call-configuratieobject hieronder: het werkt ook zonder geconfigureerde trigger_phrases.

2. De end_call-configuratie (deterministische detectie)

Het end_call-object in de configuratie van een agent beëindigt het gesprek zonder het model, door de spraak van de beller te bewaken:

  • trigger_phrases — afscheidsfrases die worden herkend aan het einde van de uiting van de beller (terminale positie). "dag" aan het einde van een beurt beëindigt het gesprek; "dag en nog één ding…" niet. Herkenning is hoofdletterongevoelig, negeert afsluitende leestekens en heeft een fallback met verwijderde diakritische tekens.
  • silence — beëindigt het gesprek nadat de beller stil is geworden, met maximaal max_reprompts herhalingen per window_ms stilte.

Minimale configuratie om het in te schakelen

Een puur niet-leeg end_call-object is niet voldoende. Deterministische detectie doet alleen iets wanneer:

  • trigger_phrases minstens één frase heeft voor de taal van het gesprek (schakelt afscheidsfrase-detectie in), en/of
  • silence.window_ms groter is dan 0 (schakelt de stilte-time-out in).

closing_line alleen doet niets — het wordt alleen uitgesproken zodra een trigger (of het end_call-hulpmiddel) wordt geactiveerd. Het nul/leeg object betekent dat het deterministische beleid is uitgeschakeld.

Aanbevolen trigger_phrases voor een receptionist (nl): dag, doei, tot ziens, dat is alles, dat was het, dat was alles, verder niets, nee dat was het, bedankt dag.

3. Taalsleutels

Alle taalgebonden maps in end_call (trigger_phrases, closing_line, silence.reprompt_text) gebruiken tolerante sleutelresolutie:

  1. exacte overeenkomst op de taaltag van het gesprek (en-GB), dan
  2. overeenkomst op primaire subtag (en-GB ↔ en ↔ en-IE), dan
  3. als de map precies één item heeft, wordt dat item gebruikt ongeacht de taal.

Gebruik dus en — u hebt geen aparte en-GB/en-IE-sleutels nodig. De voorbeelden in deze specificatie gebruiken en en nl om die reden.

4. closing_line versus het eigen afscheid van het model

closing_line is een vaste zin die de agent uitspreekt naast wat het model al heeft gezegd — een aparte gescripte TTS-zin, geen vervanging. Als uw agentprompt al een afscheid scrijft (bijv. "Bedankt voor uw gesprek. Dag.") en u een closing_line instelt, hoort de beller twee afscheidswoorden.

Kies één optie:

  • laat closing_line leeg en laat het model afscheid nemen, of
  • stel closing_line in en instrueer de prompt om geen eigen afscheid te zeggen.

5. Timing van het ophangen

  • Openbaarmakingspoort. Beëindiging wordt tegengehouden totdat de verplichte openbaarmaking voor het gesprek is gedaan (de enige uitzondering is voicemail). Totdat die is gedaan, is een aanroep van het end_call-hulpmiddel of een triggerfrase een no-op en gaat het gesprek door.
  • Idempotentie. Alleen de eerste beëindiging voor een gesprek wordt doorgezet; dubbele of gelijktijdige triggers (het model roept het hulpmiddel tweemaal aan, een frase wordt recht na het hulpmiddel geactiveerd) zijn no-ops.
  • Afsluitzin wordt afgewacht. Wanneer een closing_line is ingesteld, wacht Audact tot het uitspelen is voltooid en houdt daarna een korte extra draintijd aan voordat de mediaruimte wordt verwijderd, zodat de zin niet halverwege wordt afgebroken. Een closing_line is dus de betrouwbare manier om een volledig uitgesproken afscheid vóór het ophangen te garanderen.
  • Zonder closing_line verloopt de afsluiting zodra de trigger wordt geactiveerd; de eigen laatste zin van het model is gewoon gespreksspeech en wordt niet speciaal afgewacht, dus als u afhankelijk bent van het gescripte afscheid van het model, zorg dan dat het klaar is vóór de hulpmiddelaanroep — of gebruik closing_line in plaats daarvan.

Bron bijgewerkt: 19 oktober 2026