Codetools
Voer aangepaste JavaScript-logica rechtstreeks uit op de infrastructuur van ElevenLabs.
Codetools laten je agent aangepaste JavaScript uitvoeren in een gesandboxte serveromgeving, zonder dat je zelf een webhook-endpoint hoeft op te zetten en te hosten. Schrijf de logica één keer in de ingebouwde code-editor en ElevenLabs voert deze uit wanneer de agent de tool aanroept.
Overzicht
Een codetool is een JavaScript-functie die wordt uitgevoerd wanneer de agent deze aanroept. Je schrijft de volledige functiebody, dus de tool kan precies zoveel doen als de taak vereist:
- Aangepaste berekeningen: pas prijsregels, eenheidsconversies, scoringslogica of datumberekeningen toe met alleen de parameters van de toolaanroep. Geen netwerktoegang vereist.
- Externe API’s aanroepen: gebruik
fetchvanaf domeinen op de allowlist, met workspacesecrets en auth connections die in de context van de functie worden geïnjecteerd. - Meerdere bronnen combineren: roep twee of drie API’s aan en voeg de resultaten samen, vergelijk ze of stem ze op elkaar af voordat je één antwoord retourneert.
- Voorwaardelijke vertakkingen: voer verschillende logica uit afhankelijk van de parameters van de toolaanroep, zonder een aparte tool voor elke vertakking nodig te hebben.
- Gegevens herstructureren: retourneer precies de structuur die je de agent wilt laten zien, in plaats van een onbewerkte upstreamrespons.
Voor één externe API-aanroep zonder aangepaste logica zijn webhook- tools meestal eenvoudiger in te stellen. Gebruik client- tools om acties te activeren in de browser of app van een gebruiker.
Zo werkt het
Je code is een JavaScript-module die één standaard asynchrone functie exporteert. De functie ontvangt een ctx-object en retourneert het resultaat van de tool:
De waarde die je retourneert, wordt het resultaat van de tool. Deze wordt teruggestuurd naar de agent, weergegeven in het gesprekstranscript en kan worden gebruikt voor dynamische variabeletoewijzing.
Het ctx-object
ctx is je toegangspunt tot alles waartoe de tool op het moment van aanroepen toegang heeft. De parameters die de agent opgeeft, komen altijd binnen in ctx.args; secrets, configuratiewaarden en auth connections zijn optioneel en verschijnen alleen als je ze toewijst in de sectie Context object van de tool.
Alleen ctx.args is zichtbaar voor de agent wanneer deze de tool aanroept. Secrets, configuratiewaarden en auth
connections worden nooit aan de agent getoond.
Parameters configureren
Parameters zijn de waarden die de agent opgeeft wanneer deze de tool aanroept; ze komen binnen in ctx.args. Definieer ze in de sectie Parameters van het configuratieformulier voor de tool, of in de code-editor op het tabblad Params, in het subtabblad Define Params. Elke parameter heeft een gegevenstype, een identifier en een beschrijving die de agent gebruikt om de juiste waarde uit het gesprek te bepalen. Je code leest die waarde via de identifier, zoals ctx.args.appointment_datetime hieronder.

Het contextobject configureren
Voeg secrets, configuratiewaarden en auth connections toe in de sectie Context object van de tool. Elke invoer heeft een type en een naam. Het paneel toont voor elke invoer de exacte accessor, zoals ctx.secrets.DEMO_KEY hieronder.

Netwerktoegang
Code die in de sandbox wordt uitgevoerd, kan alleen domeinen bereiken die je workspace expliciet heeft toegestaan. Voeg de domeinen die je code moet aanroepen toe in je ElevenAgents Settings, onder Code Tool Network Access. Een request naar elk ander domein mislukt.
Uitvoeringslimieten
- Time-out: elke uitvoering moet worden voltooid binnen de geconfigureerde responstime-out van de tool, van 1 tot 30 seconden.
- Geen externe packages: codetools worden momenteel uitgevoerd zonder npm-dependencies.
Je code testen
Gebruik vóór het opslaan Run in de code-editor om je code uit te voeren met voorbeeldwaarden voor parameters:
- Params — stel testwaarden in voor elke parameter die je tool definieert.
- Output — bekijk het geretourneerde resultaat, of de fout als de uitvoering is mislukt.
- Logs — bekijk alles wat is geschreven met
console.log,console.warnofconsole.error, plus de tijd voor build en uitvoering.
Handleiding
In deze handleiding maken we een codetool die een temperatuur omzet en een vriendelijke, opgemaakte tekenreeks retourneert:
Een nieuwe codetool maken
Kies in de sectie Agent van de instellingenpagina van je agent Add Tool. Selecteer Code als Tool Type en stel vervolgens een naam en beschrijving in:
De code schrijven
Open de code-editor en vervang de standaardbron door:
Gebruik Run met enkele voorbeeldwaarden (bijv. value: 100, from_unit: "C") om de uitvoer te controleren voordat je opslaat.
Authenticatievoorbeelden
Een API aanroepen met een secret
Wijs EXAMPLE_API_KEY toe aan een workspacesecret in de sectie Context object van de tool en voeg vervolgens api.example.com toe aan Code Tool Network Access zodat het request egress mag uitvoeren. De waarde waarnaar je verwijst is een placeholder: het echte secret wordt bij egress in de header vervangen en is nooit zichtbaar voor je code.
Een API aanroepen met een OAuth-auth connection
Wijs EXAMPLE_CRM toe aan een geconfigureerde auth connection in de sectie Context object van de tool. De waarde waarnaar je verwijst is een placeholder: de echte inloggegevens worden bij egress in de header vervangen en zijn nooit zichtbaar voor je code.
Best practices
Geef tools intuïtieve namen met gedetailleerde beschrijvingen
Als je merkt dat de assistent niet de juiste tools aanroept, moet je mogelijk de toolnamen en beschrijvingen bijwerken zodat de assistent duidelijker begrijpt wanneer elke tool moet worden geselecteerd. Gebruik geen afkortingen of acroniemen om tool- en argumentnamen in te korten.
Je kunt ook gedetailleerd beschrijven wanneer een tool moet worden aangeroepen. Bij complexe tools moet je beschrijvingen voor elk argument opnemen, zodat de assistent weet welke informatie hij aan de gebruiker moet vragen om dat argument te verzamelen.
Geef toolparameters intuïtieve namen met gedetailleerde beschrijvingen
Gebruik duidelijke en beschrijvende namen voor toolparameters. Geef indien van toepassing in de beschrijving de verwachte indeling voor een parameter op (bijvoorbeeld YYYY-mm-dd of dd/mm/yy voor een datum).
Overweeg om in de systeemprompt van je assistent aanvullende informatie te geven over hoe en wanneer tools moeten worden aangeroepen
Duidelijke instructies in je systeemprompt kunnen de nauwkeurigheid van toolaanroepen door de assistent aanzienlijk verbeteren. Geef de assistent bijvoorbeeld instructies zoals de volgende:
Geef context voor complexe scenario’s. Bijvoorbeeld:
LLM-selectie
Bij het gebruik van tools raden we aan om modellen met hoge intelligentie te kiezen, zoals GPT 6 of Claude Sonnet 5.5.
Het is belangrijk om te weten dat de keuze van LLM bepalend is voor het succes van functieaanroepen. Sommige LLM’s kunnen moeite hebben met het extraheren van de relevante parameters uit het gesprek.