Het dashboard dekt de meeste toolbehoeften zonder deze API: Verbindingen
→ Apps verbindt Slack, HubSpot, Salesforce, Google Calendar,
Google Sheets en Cal.com met enkele OAuth-klikken; Verbindingen →
API’s maakt van elke HTTP-API een agentactie (plak een cURL-opdracht
en een AI-wizard maakt een opzet voor de tool, met een ingebouwde Testverzoek-functie); en
Verbindingen → MCP voegt MCP-servers toe. Zie
Verbindingen. Deze handleiding behandelt de onderliggende
API achter de API-interface.
Anatomie van een tool
Twee onderdelen:- Het schema — een functiedefinitie in OpenAI-stijl
(
{type: "function", function: {name, description, parameters}}) die de LLM vertelt wat de tool doet en welke argumenten deze accepteert. - Het eindpunt — de URL die de servers van ThunderPhone aanroepen wanneer de LLM beslist de tool te gebruiken. Het verzoek is een JSON-POST met de door de LLM gekozen argumenten als hoofdtekst.
1. Kies een opslagstrategie
Inline bij de agent
Koppel een eenmalige tool aan de
tools-array van de agent. Eenvoudig, maar
niet herbruikbaar.Opgeslagen integratie
Sla de tool op als een herbruikbare integratie
en koppel deze aan meerdere agents. Aanbevolen voor alles wat meer
dan één keer wordt gebruikt.
2. Maak de integratie
id (een UUID) op.
3. Test het eindpunt in de sandbox
Voordat je de integratie aan een agent koppelt, stuur je een ondertekend verzoek vanaf de servers van ThunderPhone om de connectiviteit te bevestigen:Response
400 code=url_not_allowed.
4. Koppel de integratie aan een spraakagent
Koppel viaintegration_ids wanneer je een spraakagent maakt of bijwerkt:
get_weather wanneer de beller
naar de weersomstandigheden vraagt” — of ze impliciet herkennen aan de
schemabeschrijvingen.
5. Implementeer het endpoint
Wanneer de spraakagent de tool aanroept, stuurt ThunderPhone een ondertekende POST naar jeendpoint_url:
6. Test de volledige stroom
Start een micsessie met de spraakagent en stel de vraag die je tool afhandelt (“Wat is het weer in 94110?”). Het transcript van het gesprek toont de volledige heen-en-terugcommunicatie:GET /v1/calls/{call_id}/transcript;
de onbewerkte eventstream (met timing per item en audio-offsets) vind je op
GET /v1/calls/{call_id}/history.
Veelvoorkomende valkuilen
Spraakagent roept de tool nooit aan
Spraakagent roept de tool nooit aan
De LLM beslist op basis van de beschrijving van de tool. Als de vraag van de beller
niet overeenkomt met de beschrijving, roept het model
de tool niet aan. Maak de beschrijving specifieker (voeg veelvoorkomende synoniemen en
formuleringen toe) of vermeld dit expliciet in de prompt van de spraakagent (“Wanneer de
beller naar het weer vraagt, gebruik dan
get_weather.”).Tool retourneert te veel gegevens
Tool retourneert te veel gegevens
Antwoorden groter dan 6 kB worden afgekapt in de transcriptvoorvertoning. Retourneer
alleen de velden die de LLM nodig heeft — niet je volledige gegevensrecord.
Time-outs
Time-outs
Tool-endpoints hebben standaard een time-out van 10 seconden. Als je meer tijd nodig hebt,
verwerk dit dan asynchroon: retourneer
{"status": "pending", "request_id": "..."}
en toon het resultaat via een afzonderlijke toolaanroep.Versiebeheer
Versiebeheer
Elke
PATCH van een integratie maakt een nieuwe revisie. Controleer
GET /v1/integrations/{id}/versions
om te zien wie wat heeft gewijzigd. Als je het schema van een tool beschadigt, kun je
handmatig terugdraaien door een oudere snapshot opnieuw met PATCH toe te passen.Volgende stappen
Integratiereferentie
CRUD, overdracht, versiegeschiedenis.
Specificatie voor functietools
Volledige JSON-schema-grammatica en het contract voor ondertekende endpoints.
Handtekeningen verifiëren
Pas het patroon voor webhookhandtekeningen toe op tool-endpoints.
API voor transcript + geschiedenis
Inspecteer de volledige retourgang van een toolaanroep.