Definizione
La chiamata a strumenti è quando un LLM, invece di rispondere a parole, restituisce una richiesta strutturata di eseguire una funzione con nome, come consultare un ordine. L'applicazione la esegue e restituisce il risultato perché il modello possa proseguire la risposta.
Come funziona la chiamata a strumenti
L’LLM non esegue mai nulla da sé. Lo sviluppatore descrive ogni strumento al modello con un nome, una descrizione in linguaggio semplice e uno schema dei suoi parametri. Durante la conversazione il modello può rispondere con una richiesta di strumento che nomina uno strumento e compila i parametri, ad esempio get_order_status con un numero d’ordine. L’applicazione verifica la richiesta, esegue la funzione e restituisce il risultato come nuovo messaggio. Il modello legge poi quel risultato e scrive la risposta parlata.
Nella documentazione di Cartesia, la descrizione di ciascuno strumento è ciò che guida il modello su quando usarlo. I valori dei parametri possono provenire da tre posti: dal modello stesso, da una costante fissa o da una variabile dinamica, come il numero di telefono di chi chiama. Managed Agents ha strumenti di sistema integrati come end_call, send_dtmf, transfer_to_number e voicemail_detection, e strumenti personalizzati che chiamano il proprio endpoint webhook.
Dal progetto discendono tre conseguenze. Il modello sceglie gli strumenti dalle descrizioni, quindi descrizioni vaghe causano chiamate sbagliate o mancanti. Il modello fornisce i parametri, quindi i valori che inventa devono essere validati dal codice ricevente. E la chiamata è un’andata e ritorno, quindi la risposta del modello è in pausa finché non torna il risultato.
Perché conta per gli agenti vocali
Le chiamate a strumenti sono ciò che permette a un agente di svolgere lavoro, come prenotare un appuntamento o trasferire una chiamata, invece di limitarsi a parlare. È anche dove l’attesa si allunga. Il tempo di risposta dello strumento ricade nella latenza vocale, e una ricerca di tre secondi sono tre secondi di silenzio su una linea telefonica.
Gli agenti vocali trattano quindi le chiamate a strumenti in modo diverso dalla chat. Parlano prima del lavoro lento, con una breve frase come «Verifico subito». Gli strumenti di sistema di Cartesia hanno per questo un’impostazione pre_tool_speech, con i valori auto, force e off. Hanno anche bisogno di un piano per il fallimento. Se uno strumento va in timeout o restituisce un errore, l’agente deve dirlo e offrire un passo successivo, e non inventare mai la risposta. Si veda l’allucinazione.
Gli strumenti comportano anche rischi. Uno strumento che annulla una prenotazione o sposta denaro dovrebbe stare dietro controlli che non dipendono dal giudizio del modello, come una rilettura e una conferma di chi chiama, e permessi nel sistema ricevente. Le parole di chi chiama possono influenzare quale strumento il modello chiama, quindi è lo strumento, non il prompt, a dover far rispettare ciò che è consentito.
Esempio
Una chiamata illustrativa:
- Chi chiama: «Dov’è il mio ordine? È il 5521.»
- Agente: «Verifico subito.» (il modello richiede
get_order_statuscon numero d’ordine 5521) - Risultato dello strumento: spedito martedì, in arrivo venerdì
- Agente: «È partito martedì e dovrebbe arrivare venerdì.»