Cum funcționează
- Definiți instrumente cu o schemă (ce argumente acceptă instrumentul)
- Furnizați o configurație
endpoint(unde ThunderPhone apelează API-ul dvs.) — sau omiteți-o pentru a primi apeluri de instrumente pe webhookul organizației dvs. - În timpul unui apel, AI-ul decide când să utilizeze un instrument pe baza conversației
- ThunderPhone apelează endpointul dvs. cu argumentele instrumentului
- Răspunsul API-ului dvs. este transmis înapoi AI-ului pentru a continua conversația
Instrumentele de funcție reprezintă opțiunea în care vă furnizați propriul API. ThunderPhone oferă și
instrumente gestionate de platformă, care nu necesită endpoint:
conexiuni de aplicații (HubSpot, Salesforce, Slack,
Google Calendar, Google Sheets, Cal.com),
conexiuni API și
servere MCP.
Schema instrumentului
Fiecare instrument urmează această structură:Definiția funcției
Configurarea endpointului
Configurația
endpoint nu este trimisă modelului AI — este utilizată doar de ThunderPhone pentru a executa apelul instrumentului.Două căi de invocare
Solicitarea pe care o primește serverul dvs. depinde de existența unuiendpoint pentru instrument:
Ambele căi sunt blocante — AI-ul așteaptă rezultatul în mijlocul
propoziției — cu o expirare după 20 s. Mențineți handlerele rapide. O combinație este acceptată:
într-un apel a cărui organizație are un URL de webhook, instrumentele cu un
endpoint sunt
apelate direct, iar celelalte revin la webhook.
Apeluri directe către endpoint
Când AI-ul invocă un instrument care are unendpoint, ThunderPhone trimite
o solicitare către URL-ul dumneavoastră:
Antete de solicitare
endpoint.headers sunt întotdeauna incluse
literal, plus două antete cu spațiu de nume ThunderPhone:
X-ThunderPhone-Signature— HMAC-SHA256 al octeților exacți ai corpului solicitării, folosind ca cheie secretul webhook al organizațieiX-ThunderPhone-Call-ID— ID-ul apelului curent
Content-Type: application/json este setat, cu excepția cazului în care endpoint.headers
îl suprascrie — un Content-Type personalizat are prioritate.
Corpul solicitării
PentruPOST / PUT / PATCH, corpul conține doar argumentele
instrumentului (fără înveliș), serializate canonic (chei sortate, separatori
compacți):
GET / DELETE, argumentele sunt trimise ca parametri de interogare
iar corpul este gol — semnătura este apoi calculată peste șirul gol de
octeți. Consultați
Verificarea semnăturilor webhook.
Răspuns
Returnați un răspuns JSON cu rezultatul instrumentului:{"data": "<text>"};
expirările și erorile de conexiune sunt raportate AI-ului ca erori, astfel încât
agentul să poată să își ceară scuze și să continue, în loc să se blocheze.
Direcționare în modul webhook
Instrumentele fără unendpoint sunt direcționate către URL-ul webhook
vechi al organizației dumneavoastră ca o solicitare semnată telephony.tool (apeluri telefonice) sau web.tool
(apeluri web). Spre deosebire de notificările de audit
livrate către endpoint-uri webhook după execuție, această solicitare este
execuția — răspunsul dumneavoastră HTTP este rezultatul instrumentului.
web.tool conține origin_domain în loc de from_number /
to_number. Răspundeți cu rezultatul instrumentului ca JSON — același contract
de răspuns ca pentru apelurile directe către endpoint. Solicitarea este semnată cu secretul
webhook al organizației peste corpul brut, la fel ca orice alt webhook.
Endpoint-urile webhook abonate primesc suplimentar
o notificare neblocantă
telephony.tool / web.tool
după executarea fiecărui instrument (indiferent de calea care l-a executat), inclusiv
răspunsul instrumentului — utilă pentru piste de audit. Consultați
catalogul de evenimente.Verificarea semnăturii
Apelurile directe de instrumente sunt semnate în același mod ca webhookurile:- HMAC-SHA256 peste octeții exacți ai corpului cererii (JSON-ul canonic — chei sortate, fără spații suplimentare)
- Folosind secretul webhook al organizației dumneavoastră
- Instrumentele
GET/DELETEsemnează șirul de octeți gol
Exemplu: flux complet de programare
Iată un set de instrumente pentru un sistem complet de programare a întâlnirilor:Bune practici
Scrieți descrieri clare
Scrieți descrieri clare
Câmpul
description ajută AI-ul să înțeleagă când să utilizeze instrumentul. Specificați clar ce face și când este potrivit să fie utilizat.Gestionați erorile în mod corespunzător
Gestionați erorile în mod corespunzător
Returnați mesaje de eroare pe care AI-ul le poate înțelege:
{"error": "No slots available for that date"} în locul erorilor 500 generice.Păstrați răspunsurile concise
Păstrați răspunsurile concise
Returnați doar informațiile de care AI-ul are nevoie pentru a continua conversația. Încărcăturile utile mari încetinesc timpii de răspuns.
Utilizați câmpurile obligatorii cu discernământ
Utilizați câmpurile obligatorii cu discernământ
Marcați câmpurile ca
required numai atunci când este cu adevărat necesar. AI-ul va cere utilizatorului informațiile obligatorii înainte de a apela instrumentul.Resurse conexe
Conexiuni de aplicații
Instrumente gestionate de platformă pentru HubSpot, Salesforce, Slack, Google
Calendar, Google Sheets și Cal.com — nu este necesar niciun endpoint.
Servere MCP
Atașați un server MCP și permiteți agentului să îi apeleze instrumentele.
Conexiuni API
Integrări REST reutilizabile pe care le puteți atașa agenților.
Verificați semnăturile webhook
Un singur ajutor de verificare pentru webhook-uri și apeluri de instrumente.