Skip to main content
Un’integrazione di strumenti è un endpoint HTTP riutilizzabile che un agente può richiamare durante una chiamata. Fornisci a ThunderPhone una descrizione dello schema JSON dello strumento insieme a un URL dell’endpoint; l’agente decide quando richiamarlo in base alla conversazione e ThunderPhone effettua la richiesta HTTP in uscita dai propri server e restituisce la risposta all’agente.
La dashboard copre la maggior parte delle esigenze relative agli strumenti senza questa API: Connessioni → App collega Slack, HubSpot, Salesforce, Google Calendar, Google Sheets e Cal.com in pochi clic OAuth; Connessioni → API trasforma qualsiasi API HTTP in un’azione dell’agente (incolla un comando cURL e una procedura guidata AI crea una bozza dello strumento, con una Richiesta di test integrata); e Connessioni → MCP aggiunge server MCP. Vedi Connessioni. Questa guida riguarda l’API sottostante all’interfaccia API.
Questa guida illustra la creazione completa di uno strumento per la ricerca meteo.

Anatomia di uno strumento

Due elementi:
  1. Lo schema — una definizione di funzione in stile OpenAI ({type: "function", function: {name, description, parameters}}) che indica al LLM cosa fa lo strumento e quali argomenti accetta.
  2. L’endpoint — l’URL che i server di ThunderPhone richiamano quando il LLM decide di usare lo strumento. La richiesta è un POST JSON con gli argomenti scelti dal LLM come corpo.

1. Scegli una strategia di archiviazione

In linea sull'agente

Collega uno strumento monouso all’array tools dell’agente. Semplice, ma non riutilizzabile.

Integrazione salvata

Archivia lo strumento come integrazione riutilizzabile e collegalo a più agenti. Consigliato per tutto ciò che viene usato più di una volta.
Questa guida utilizza il percorso dell’integrazione salvata.

2. Crea l’integrazione

Conserva l’id restituito (un UUID).
Dedica particolare attenzione alla description dello strumento e di ogni parametro. Il LLM usa queste stringhe in fase di esecuzione per decidere se e come richiamare lo strumento. Descrizioni vaghe → chiamate dello strumento vaghe.

3. Testa l’endpoint nella sandbox

Prima di collegare l’integrazione a un agente, invia una richiesta firmata dai server di ThunderPhone per confermare la connettività:
Response
Questo test rafforza anche le protezioni SSRF di ThunderPhone — le richieste a localhost o a intervalli di IP privati restituiscono 400 code=url_not_allowed.

4. Collega l’integrazione a un agente

Collegala tramite integration_ids quando crei o aggiorni un agente:
Puoi collegare più integrazioni a un singolo agente. Il prompt dell’agente può farvi riferimento per nome — “usa get_weather quando il chiamante chiede delle condizioni meteorologiche” — oppure può individuarle implicitamente dalle descrizioni dello schema.

5. Implementa l’endpoint

Quando l’agente richiama lo strumento, ThunderPhone invia un POST firmato al tuo endpoint_url:
Il tuo server risponde con JSON che viene restituito all’LLM:
L’LLM acquisisce quella risposta e comunica al chiamante un riepilogo in linguaggio naturale.
La firma viene calcolata sul corpo della richiesta non elaborato usando lo stesso secret del tuo endpoint webhook. Verificala — gli endpoint degli strumenti sono esposti a Internet e soggetti agli stessi rischi di spoofing dei webhook. Vedi Verifica le firme dei webhook.

6. Testa il ciclo

Avvia una sessione microfono sull’agente e poni la domanda gestita dal tuo strumento (“Che tempo fa a 94110?”). La trascrizione della chiamata mostra l’intero ciclo:
Puoi recuperarla tramite GET /v1/calls/{call_id}/transcript; il flusso di eventi non elaborato (con tempistiche per voce e offset audio) è disponibile in GET /v1/calls/{call_id}/history.

Problemi comuni

L’LLM decide in base alla descrizione dello strumento. Se la domanda del chiamante non corrisponde alla descrizione, il modello non richiamerà lo strumento. Rendi la descrizione più precisa (aggiungi sinonimi e formulazioni comuni) oppure menzionalo esplicitamente nel prompt dell’agente (“Quando il chiamante chiede del meteo, usa get_weather.”).
Le risposte oltre 6 kB vengono troncate nell’anteprima della trascrizione. Restituisci solo i campi necessari all’LLM — non l’intera riga.
Gli endpoint degli strumenti hanno un timeout predefinito di 10 secondi. Se ti serve più tempo, gestiscilo in modo asincrono: restituisci {"status": "pending", "request_id": "..."} e rendi disponibile il risultato tramite una chiamata separata allo strumento.
Ogni PATCH dell’integrazione crea una nuova revisione. Controlla GET /v1/integrations/{id}/versions per vedere chi ha modificato cosa. Se comprometti lo schema di uno strumento, puoi ripristinarlo manualmente applicando di nuovo tramite PATCH uno snapshot precedente.

Passaggi successivi

Riferimento delle integrazioni

CRUD, trasferimento, cronologia delle versioni.

Specifiche degli strumenti funzione

Grammatica completa dello schema JSON e contratto dell’endpoint firmato.

Verifica le firme

Applica il modello di firma webhook agli endpoint degli strumenti.

API di trascrizione + cronologia

Esamina l’intero ciclo di una chiamata a uno strumento.