Sådan fungerer det
- Du definerer værktøjer med et skema (hvilke argumenter værktøjet accepterer)
- Du angiver en
endpoint-konfiguration (hvor ThunderPhone kalder din API) — eller udelader den for at modtage værktøjskald på din organisations webhook - Under et opkald beslutter AI’en, hvornår et værktøj skal bruges, baseret på samtalen
- ThunderPhone kalder dit endpoint med værktøjsargumenterne
- Dit API-svar sendes tilbage til AI’en for at fortsætte samtalen
Funktionsværktøjer er løsningen, hvor du bruger din egen API. ThunderPhone
leverer også platformadministrerede værktøjer, der ikke kræver noget endpoint:
appforbindelser (HubSpot, Salesforce, Slack,
Google Calendar, Google Sheets, Cal.com),
API-forbindelser og
MCP-servere.
Værktøjsskema
Hvert værktøj følger denne struktur:Funktionsdefinition
Endpoint-konfiguration
endpoint-konfigurationen sendes ikke til AI-modellen — den bruges kun af ThunderPhone til at udføre værktøjskaldet.To kaldestier
Hvilken anmodning din server modtager, afhænger af, om værktøjet har etendpoint:
Begge stier er blokerende — AI’en venter midt i en sætning på
resultatet — med en timeout på 20 s. Hold handlers hurtige. En
blanding fungerer fint: Under et opkald, hvor organisationen har en webhook-URL,
kaldes værktøjer med et
endpoint direkte, og resten falder tilbage til webhooken.
Direkte endpointkald
Når AI’en kalder et værktøj, der har etendpoint, sender ThunderPhone
en anmodning til din URL:
Anmodningsheadere
endpoint.headers inkluderes altid
ordret samt to ThunderPhone-navnerumsheadere:
X-ThunderPhone-Signature— HMAC-SHA256 af de nøjagtige bytes i anmodningsbrødteksten med din organisations webhookhemmelighed som nøgleX-ThunderPhone-Call-ID— Det aktuelle opkalds-ID
Content-Type: application/json angives, medmindre dit endpoint.headers
overskriver det — en brugerdefineret Content-Type har forrang.
Anmodningsbrødtekst
ForPOST / PUT / PATCH indeholder brødteksten kun
værktøjsargumenterne (ingen indpakning), serialiseret kanonisk (sorterede
nøgler, kompakte separatorer):
GET / DELETE sendes argumenterne som forespørgselsparametre
og brødteksten er tom — signaturen beregnes derefter over den tomme
bytestreng. Se
Verificer webhooksignaturer.
Svar
Returner et JSON-svar med værktøjsresultatet:{"data": "<text>"};
timeouts og forbindelsesfejl rapporteres til AI’en som fejl, så
agenten kan undskylde og fortsætte i stedet for at gå i stå.
Afsendelse i webhooktilstand
Værktøjer uden etendpoint sendes til din organisations ældre
webhook-URL som en signeret telephony.tool-anmodning (telefonopkald)
eller web.tool-anmodning (webopkald). I modsætning til
auditnotifikationerne, der leveres til webhookendpoints
efter udførelse, er denne anmodning udførelsen — dit HTTP-svar er
værktøjsresultatet.
web.tool indeholder origin_domain i stedet for from_number /
to_number. Svar med værktøjsresultatet som JSON — den samme svarkontrakt
som ved direkte endpointkald. Anmodningen signeres med organisationens
webhookhemmelighed over den rå brødtekst, ligesom alle andre webhooks.
Abonnerede webhookendpoints modtager desuden
en ikke-blokerende
telephony.tool / web.tool-notifikation
efter hver værktøjsudførelse (uanset hvilken sti der udførte den),
inklusive værktøjets svar — nyttigt til revisionsspor. Se
hændelseskataloget.Signaturverificering
Direkte værktøjskald signeres på samme måde som webhooks:- HMAC-SHA256 over de nøjagtige bytes i request-bodyen (den kanoniske JSON — sorterede nøgler, ingen ekstra mellemrum)
- Med din organisations webhook-hemmelighed som nøgle
GET- /DELETE-værktøjer signerer den tomme bytestreng
Eksempel: Komplet bookingflow
Her er et sæt værktøjer til et komplet system til tidsbestilling:Bedste praksis
Skriv klare beskrivelser
Skriv klare beskrivelser
Feltet
description hjælper AI’en med at forstå, hvornår værktøjet skal bruges. Vær specifik om, hvad det gør, og hvornår det er relevant.Håndter fejl korrekt
Håndter fejl korrekt
Returner fejlmeddelelser, som AI’en kan forstå:
{"error": "No slots available for that date"} i stedet for generiske 500-fejl.Hold svar korte
Hold svar korte
Returner kun det, AI’en har brug for for at fortsætte samtalen. Store payloads sænker svartiderne.
Brug påkrævede felter med omtanke
Brug påkrævede felter med omtanke
Markér kun felter som
required, når det er strengt nødvendigt. AI’en beder brugeren om påkrævede oplysninger, før den kalder værktøjet.Relateret
Appforbindelser
Platformadministrerede værktøjer til HubSpot, Salesforce, Slack, Google
Kalender, Google Sheets og Cal.com — intet endpoint påkrævet.
MCP-servere
Tilknyt en MCP-server, og lad agenten kalde dens værktøjer.
API-forbindelser
Genanvendelige REST-integrationer, du kan tilknytte agenter.
Bekræft webhook-signaturer
Én bekræftelseshjælper til webhooks og værktøjskald.