Come funziona
- Definisci gli strumenti con uno schema (quali argomenti accetta lo strumento)
- Fornisci una configurazione
endpoint(dove ThunderPhone chiama la tua API) oppure omettila per ricevere le chiamate agli strumenti sul webhook della tua organizzazione - Durante una chiamata, l’AI decide quando usare uno strumento in base alla conversazione
- ThunderPhone chiama il tuo endpoint con gli argomenti dello strumento
- La risposta della tua API viene restituita all’AI per continuare la conversazione
Gli strumenti funzione sono il percorso per usare le tue API. ThunderPhone offre anche
strumenti gestiti dalla piattaforma che non richiedono endpoint:
connessioni app (HubSpot, Salesforce, Slack,
Google Calendar, Google Sheets, Cal.com),
connessioni API e
server MCP.
Schema dello strumento
Ogni strumento segue questa struttura:Definizione della funzione
Configurazione dell’endpoint
La configurazione
endpoint non viene inviata al modello AI: viene usata solo da ThunderPhone per eseguire la chiamata allo strumento.Due modalità di invocazione
La richiesta ricevuta dal tuo server dipende dal fatto che lo strumento abbia unendpoint:
Entrambe le modalità sono bloccanti: l’AI attende il risultato a metà
frase, con un timeout di 20 s. Mantieni rapidi gli handler. Puoi usarle
insieme: in una chiamata la cui organizzazione ha un URL webhook, gli strumenti con un
endpoint vengono chiamati direttamente e gli altri usano il webhook come fallback.
Chiamate dirette agli endpoint
Quando l’AI richiama uno strumento con unendpoint, ThunderPhone invia
una richiesta al tuo URL:
Intestazioni della richiesta
endpoint.headers sono sempre incluse
testualmente, insieme a due intestazioni nello spazio dei nomi ThunderPhone:
X-ThunderPhone-Signature— HMAC-SHA256 dei byte esatti del corpo della richiesta, con chiave il tuo segreto webhook dell’organizzazioneX-ThunderPhone-Call-ID— L’ID della chiamata corrente
Content-Type: application/json viene impostato a meno che endpoint.headers
non lo sovrascriva — un Content-Type personalizzato ha la precedenza.
Corpo della richiesta
PerPOST / PUT / PATCH, il corpo contiene solo gli argomenti dello
strumento (senza wrapper), serializzati in modo canonico (chiavi ordinate,
separatori compatti):
GET / DELETE, gli argomenti vengono inviati come parametri di query
e il corpo è vuoto — la firma viene quindi calcolata sulla stringa di byte
vuota. Vedi
Verifica le firme webhook.
Risposta
Restituisci una risposta JSON con il risultato dello strumento:{"data": "<text>"};
i timeout e gli errori di connessione vengono segnalati all’AI come errori,
così l’agente può scusarsi e proseguire anziché bloccarsi.
Instradamento in modalità webhook
Gli strumenti senza unendpoint vengono instradati all’URL webhook legacy
della tua organizzazione come richiesta firmata telephony.tool (chiamate
telefoniche) o web.tool (chiamate web). A differenza delle
notifiche di audit inviate agli endpoint webhook dopo
l’esecuzione, questa richiesta è l’esecuzione — la tua risposta HTTP è il
risultato dello strumento.
web.tool include origin_domain invece di from_number /
to_number. Rispondi con il risultato dello strumento in formato JSON — lo
stesso contratto di risposta delle chiamate dirette agli endpoint. La richiesta
è firmata con il segreto webhook dell’organizzazione sul corpo non elaborato,
come ogni altro webhook.
Gli endpoint webhook sottoscritti ricevono inoltre una
notifica
telephony.tool / web.tool non bloccante dopo
l’esecuzione di ogni strumento (indipendentemente dal percorso che lo ha
eseguito), inclusa la risposta dello strumento — utile per le tracce di
audit. Consulta il catalogo degli eventi.Verifica della firma
Le chiamate dirette agli strumenti sono firmate nello stesso modo dei webhook:- HMAC-SHA256 sugli byte esatti del corpo della richiesta (il JSON canonico — chiavi ordinate, nessuno spazio aggiuntivo)
- Con la chiave segreta webhook della tua organizzazione
- Gli strumenti
GET/DELETEfirmano la stringa di byte vuota
Esempio: flusso di prenotazione completo
Ecco un insieme di strumenti per un sistema completo di prenotazione appuntamenti:Best practice
Scrivi descrizioni chiare
Scrivi descrizioni chiare
Il campo
description aiuta l’IA a capire quando usare lo strumento. Specifica chiaramente cosa fa e quando è appropriato usarlo.Gestisci gli errori in modo efficace
Gestisci gli errori in modo efficace
Restituisci messaggi di errore che l’IA possa comprendere:
{"error": "No slots available for that date"} invece di errori 500 generici.Mantieni le risposte concise
Mantieni le risposte concise
Restituisci solo ciò di cui l’IA ha bisogno per continuare la conversazione. Payload di grandi dimensioni rallentano i tempi di risposta.
Usa con criterio i campi obbligatori
Usa con criterio i campi obbligatori
Contrassegna i campi come
required solo quando è davvero necessario. L’IA chiederà all’utente le informazioni obbligatorie prima di chiamare lo strumento.Correlati
Connessioni app
Strumenti gestiti dalla piattaforma per HubSpot, Salesforce, Slack, Google
Calendar, Google Sheets e Cal.com — nessun endpoint richiesto.
Server MCP
Collega un server MCP e consenti all’agente di chiamare i suoi strumenti.
Connessioni API
Integrazioni REST riutilizzabili che puoi collegare agli agenti.
Verifica le firme dei webhook
Un unico helper di verifica per webhook e chiamate degli strumenti.