Een effectieve Voice Agent bouwen voor onze eigen documentatie
- Geschreven door
- Oswin Kruger Ruiz
- Gepubliceerd
- Laatst bijgewerkt
LuisterenLuister naar dit artikel
Bij ElevenLabs hebben we onlangs een Conversational AI-stemagent in onze documentatie ingebed om de supportdruk rond vragen over documentatie te verlagen (Probeer het hier). Onze supportagent handelt nu met succes meer dan 80% van de gebruikersvragen af, verdeeld over 200 gesprekken per dag. Deze resultaten laten zien hoe AI traditionele documentatiesupport kan aanvullen, terwijl menselijke ondersteuning voor complexe vragen belangrijk blijft. In dit artikel licht ik ons iteratieve proces toe, zodat je ons succes kunt herhalen.
Onze doelen
We wilden een agent bouwen die:
- Supportvragen oplost die kunnen worden beantwoord aan de hand van onze product- en supportdocumentatie
- Gebruikers doorverwijst naar relevante delen van de documentatie
- Complexe vragen indien nodig doorstuurt naar support via e-mail of Discord
- Een vloeiend en natuurlijk gesprek voert, met lage latentie en realistische onderbrekingsafhandeling
Resultaten en impact
We hebben twee evaluatielagen geïmplementeerd:
(1) AI-evaluatietools: Voor elk gesprek doorlopen onze ingebouwde evaluatietools het afgeronde gesprek en beoordelen ze of de agent succesvol was. De criteria zijn volledig aanpasbaar. We vragen of de agent de gebruikersvraag heeft opgelost of de gebruiker naar een relevant supportkanaal kon doorverwijzen.

We hebben het vermogen van de LLM om de vraag succesvol op te lossen of door te verwijzen gestaag verbeterd. Volgens onze evaluatietools bereikten we 80%.
Gesprekken met minder dan één beurt, waaruit blijkt dat de beller geen vraag of probleem heeft gemeld, zijn niet meegerekend.
Het is belangrijk om te beseffen dat niet alle typen supportvragen door een LLM kunnen worden opgelost, vooral niet voor een startup die snel bouwt en voortdurend innoveert, met bijzonder technische en creatieve gebruikers. Daarnaast beoordeelt een evaluatie-LLM niet altijd 100% correct.
(2) Menselijke validatie: Om de doeltreffendheid van onze LLM-validatietools te toetsen, hebben we 150 gesprekken handmatig gevalideerd met dezelfde evaluatiecriteria als voor de LLM-tools:
- solved_user_inquiry: gedefinieerd als succesvol wanneer de agent de vragen van de gebruiker met relevante informatie beantwoordde of kon doorverwijzen naar de relevante pagina of het relevante supportkanaal.
- De LLM en de menselijke beoordelaar waren het eens in 81% van de gevallen
- hallucination_kb: dit criterium controleert het uiteindelijke transcript en verifieert of de antwoorden van de LLM over ElevenLabs-producten overeenkomen met de informatie in de kennisbank of daarbuiten gaan.
- De LLM en de menselijke beoordelaar waren het eens in 83% van de gevallen
Uit de menselijke evaluatie bleek ook dat 89% van de relevante supportvragen door de documentatieagent correct werden beantwoord of doorverwezen.
Andere bevindingen:
- Verschillende bellers wilden gewoon wat spelen en in verschillende talen praten, zonder een supportvraag te stellen.
- Op dit moment ondersteunt onze Conversational AI meerdere talen, maar die moeten aan het begin van het gesprek worden ingesteld.
- Verschillende bellers voeren gesprekken die niet aansluiten bij het doel van de agent: praten over ElevenLabs, zijn producten en documentatie. Prompt-guardrails hielpen meestal, maar niet altijd.
- Verschillende bellers zochten hulp bij programmeren of debuggen.
Sterke punten en beperkingen
Sterke punten
De door een LLM aangestuurde agent is goed in het oplossen van duidelijke en specifieke vragen die met onze documentatie kunnen worden beantwoord, het verwijzen naar relevante documentatie en het geven van eerste aanwijzingen bij complexere vragen. In de meeste gevallen geeft de agent snel duidelijke, correcte antwoorden die meteen helpen.
Voorbeelden van vragen:
- Heeft ElevenLabs een API-endpoint om een stem te verwijderen?
- Hoe kan ik conversation overrides configureren in mijn agent?
- Hoe integreer ik met telefonie?
- Ondersteunt ElevenLabs de Spaanse taal?
Aanbevelingen:
- Richt je op een doelgroep die meestal duidelijke, specifieke vragen heeft die een LLM met documentatie en tools goed kan beantwoorden.
- Gebruik doorverwijzingen naar andere kanalen voor vage vragen of vragen die onderzoek vereisen. Dat helpt enorm!
- Voeg evaluatietools toe om alle gestelde vragen vast te leggen en te monitoren -> pas de prompt aan op basis van wat je leert. Voeg evaluatietools toe voor succes en hallucinaties/afwijkingen van de kennisbank.
Beperkingen
Daarentegen is de agent minder behulpzaam bij accountproblemen, vragen over prijzen of kortingen, of niet-specifieke vragen die baat hebben bij uitgebreider onderzoek. Ook bij vrij vage en algemene problemen heeft de LLM, ondanks de instructie om vragen te stellen, meestal de voorkeur om te antwoorden met iets dat relevant lijkt vanuit de documentatie.
Voorbeelden van vragen:
- De verificatiestap van mijn PVC mislukt steeds opnieuw. Waarom?
- Hoeveel kost een AI-agent? Kan ik korting krijgen?
- Ik krijg een fout met de JS SDK? -> De agent kan naar de relevante documentatie doorverwijzen, maar kan het probleem niet eenvoudig via spraak vinden en oplossen.
Aanbevelingen
- Spraak is niet het juiste medium om code te delen. Instrueer de agent dit niet te proberen, maar in plaats daarvan door te verwijzen naar pagina's met voorbeelden of naar Discord/Support.
- Instrueer de agent om geen lange lijsten met aanbevelingen te geven wanneer problemen of vragen ingewikkelder zijn. Dit werkt in tekst, maar minder goed via spraak.
- LLM's geven meestal liever antwoord dan dat ze vragen stellen. Instrueer de agent daar nadrukkelijk toe als dat nodig is voor de supporttoepassing. (Bijvoorbeeld: stel deze drie vragen voordat je doorgaat.) Dit is eenvoudiger voor uitgaande toepassingen met vaste scripts.
Hoe we dit hebben gebouwd
Agentconfiguratie:
Systeemprompt
“Je bent een technische supportagent genaamd Alexis. Je probeert alle vragen te beantwoorden die de gebruiker over ElevenLabs-producten kan hebben. Je krijgt documentatie over ElevenLabs-producten en mag alleen deze informatie gebruiken om vragen over ElevenLabs te beantwoorden. Je moet behulpzaam, vriendelijk en professioneel zijn. Als je de vraag niet kunt beantwoorden, verwijs bellers dan door met redirectToEmailSupport (waarmee aan hun kant een e-mail aan support wordt geopend). Als dat niet lijkt te werken, kunnen ze rechtstreeks een e-mail sturen naar team@elevenlabs.io.
Als de vraag of het probleem niet volledig duidelijk of specifiek genoeg is, vraag dan om meer details en voor welk product ze support aanvragen. Als de vraag vaag of heel breed is, vraag dan specifieker wat ze proberen te bereiken en hoe.
Houd je strikt aan de taal van je eerste bericht in het gesprek, ook wanneer je in een andere taal wordt aangesproken of daarom wordt gevraagd. Zeg dat het beter is als ze het gesprek beëindigen en opnieuw starten, waarbij ze de gewenste alternatieve taal selecteren.
Je output wordt voorgelezen door een text-to-speechmodel, dus formatteer deze zoals hij wordt uitgesproken. Geef bijvoorbeeld in plaats van "neem contact op met team@elevenlabs.io" de tekst "neem contact op met 'team apenstaartje elevenlabs punt I O'" weer. Gebruik geen opsommingstekens, vetgedrukte tekst of koppen in je tekstantwoord. Geef geen lange lijsten terug, maar vat ze samen en vraag in welk deel de gebruiker geïnteresseerd is. Geef geen codevoorbeelden terug, maar stel voor dat de gebruiker de codevoorbeelden in onze documentatie bekijkt. Geef het antwoord rechtstreeks, begin antwoorden niet met "Agent:" of iets vergelijkbaars. Corrigeer geen spelfouten, maar negeer ze gewoon.
Antwoord beknopt in een paar zinnen en laat de gebruiker aangeven waar je meer details moet geven.
Je hebt de volgende tools tot je beschikking. Gebruik ze waar nodig op basis van het verzoek van de gebruiker:
`redirectToDocs`:
- Wanneer te gebruiken: In de meeste situaties, vooral wanneer de gebruiker meer gedetailleerde informatie of begeleiding nodig heeft.
- Waarom: Directe toegang tot documentatie is nuttig voor complexe onderwerpen, zodat de gebruiker de inhoud zelf kan bekijken en begrijpen.
`redirectToEmailSupport`:
- Wanneer te gebruiken: Als de gebruiker hulp nodig heeft bij persoonlijke of ანგარიშtspecifieke problemen.
- Waarom: Vragen over accounts kunnen het beste door ons supportteam per e-mail worden afgehandeld, waar zij veilig toegang hebben tot relevante details.
`redirectToExternalURL`:
- Wanneer te gebruiken: Als de gebruiker vraagt naar oplossingen op enterpriseniveau of lid wil worden van externe communities, zoals onze Discord-server. Ook als de gebruiker een ontwikkelaar lijkt te zijn die technische problemen heeft met ElevenLabs.
- Waarom: Vragen over enterprise en interacties met de community vallen buiten de scope van directe support in het platform en kunnen beter via externe links worden afgehandeld.
Guardrails:
- Beperk je tot onderwerpen en producten van ElevenLabs. Als iemand vraagt naar onderwerpen die niet over ElevenLabs gaan, zeg dan dat je er alleen bent om vragen over ElevenLabs-producten te beantwoorden.
- Verwijs de beller maar naar één pagina tegelijk door, omdat elke doorverwijzing de vorige overschrijft.
- Geef geen lange lijsten of code als antwoord. Verwijs in plaats daarvan naar de documentatie voor codevoorbeelden.”
Kennisbank
Naast de prompt geven we de LLM een kennisbank met relevante informatie in de context. Deze kennisbank bevat een samengevatte, maar nog steeds grote versie (80k tekens) van alle ElevenLabs-documentatie, evenals enkele relevante URL's.
We voegen ook verduidelijkingen en veelgestelde vragen toe als onderdeel van de kennisbank.
Tools
We hebben drie tools geconfigureerd:
- redirectToExternalURL: verwijst door naar contact met sales of naar Discord.
- redirectToEmailSupport: opent een e-mail naar team@elevenlabs.io
- redirectToDocs: deze tool is geconfigureerd om de beller door te verwijzen naar relevante pagina's in onze documentatie.
Ingebouwde evaluatie
Onze evaluatietools gebruiken een LLM die het uiteindelijke transcript doorneemt en het gesprek beoordeelt aan de hand van gedefinieerde criteria.
Evaluatiecriteria (succes / fout / onbekend)
- hallucination_kb: dit criterium controleert het uiteindelijke transcript en verifieert of de antwoorden van de LLM over ElevenLabs-producten overeenkomen met de informatie in de kennisbank of daarbuiten gaan.
- interaction: beoordeelt of het gesprek verder ging dan één gespreksbeurt. Een snelle manier om te markeren of gesprekken werden gestart maar er nooit interactie plaatsvond.
- solved_user_inquiry: gedefinieerd als succesvol wanneer de agent de vragen van de gebruiker met relevante informatie beantwoordde of kon doorverwijzen naar de relevante pagina of het relevante supportkanaal.
- positive_interaction: beoordeelt of het gesprek zonder negatieve reacties van de beller verliep.
Gegevensverzameling:
- Issue_type: categoriseer het gesprek als bug, supportprobleem, fr of anders
- Product category: haal het relevante product op (TTS, ConvAI enz.)
- AllQuestions: haal alle vragen op die de beller heeft gesteld
- Unsolved_question: haal vragen op die de LLM niet met relevante informatie heeft beantwoord
- Redirects: haal de doorverwijspaden op die de agent heeft geactiveerd en de reactie van de beller
Samenvatting
Onze documentatieagent blijkt effectief te zijn in het helpen van gebruikers bij veelvoorkomende product- en supportvragen en is een prettige copilot voor gebruikers die door onze documentatie navigeren. Door voortdurende geautomatiseerde en handmatige monitoring kunnen we onze agent steeds verder verbeteren. We erkennen dat niet alle typen supportvragen door een LLM kunnen worden opgelost, vooral niet voor een startup die snel bouwt en voortdurend innoveert, met bijzonder technische en creatieve gebruikers. Maar we hebben gemerkt dat hoe meer we kunnen automatiseren, hoe meer tijd ons team kan besteden aan de lastige en interessante problemen aan de randen, terwijl onze community de grenzen blijft verleggen van wat mogelijk is met AI-audio.
Onze agent wordt aangestuurd door ElevenLabs Conversational AI. Als je mijn resultaten wilt reproduceren, kun je gratis een account maken en mijn stappen volgen. Als je vastloopt, kun je praten met de agent die we hebben ingezet in onze documentatie of contact opnemen met mij en mijn team in Discord. Voor toepassingen met een hoog volume (>100 gesprekken per dag), neem contact op met ons salesteam voor volumekorting.
Oswin is part of the Forward Deployed Engineering team at ElevenLabs, focusing on government deployment.

.webp&w=3840&q=80)



