Integra il tuo modello
Custom LLM ti permette di collegare le tue conversazioni al tuo LLM tramite un endpoint esterno. ElevenLabs supporta anche gli LLM integrati nativamente
Con gli LLM personalizzati puoi usare la tua chiave API OpenAI o eseguire un server LLM completamente personalizzato.
Panoramica
Per impostazione predefinita, utilizziamo le nostre credenziali interne per modelli popolari come OpenAI. Per usare un server LLM personalizzato, deve essere compatibile con una delle seguenti strutture di richiesta/risposta di OpenAI:
- Chat Completions API (
/v1/chat/completions) - Responses API (
/v1/responses)
La Responses API è il formato API più recente di OpenAI e supporta funzionalità aggiuntive. Entrambi i formati API sono completamente supportati per l’integrazione di LLM personalizzati.
Le guide seguenti illustrano entrambi i casi d’uso:
- Usa la tua chiave OpenAI: usa la tua chiave API OpenAI con la nostra piattaforma.
- Server LLM personalizzato: fornisci e collega la tua implementazione di server LLM.
Imparerai a:
- Archiviare la tua chiave API OpenAI in ElevenLabs
- Fornire un server che replichi l’endpoint Chat Completions o Responses di OpenAI
- Indirizzare ElevenLabs al tuo endpoint personalizzato
- Passare parametri aggiuntivi al tuo LLM secondo necessità
Riepilogo del ragionamento
Il tuo endpoint deve restituire il ragionamento separatamente dalla risposta finale. ElevenLabs non genera il ragionamento dalla risposta finale.
Per richiedere il ragionamento da un endpoint supportato, attiva Riepilogo del ragionamento nelle impostazioni LLM dell’agente oppure imposta enable_reasoning_summary tramite l’API.
Restituire il ragionamento
Usa il formato corrispondente al tuo endpoint:
Chat Completions API
Responses API
Trasmetti il ragionamento nel campo reasoning o reasoning_content di ogni delta della risposta.
Per gli endpoint compatibili con Gemini, ElevenLabs richiede i pensieri con
google.thinking_config.include_thoughts e legge i contenuti contrassegnati con
extra_content.google.thought.
Consulta Riepilogo del ragionamento per informazioni su archiviazione, distribuzione e limitazioni.
Usare la tua chiave OpenAI
Per integrare una chiave OpenAI personalizzata, aggiorna le impostazioni dell’agente nella dashboard di ElevenLabs affinché puntino al tuo server LLM personalizzato e crea un segreto contenente OPENAI_API_KEY:
Nelle impostazioni del tuo agente nella dashboard di ElevenLabs, seleziona “Custom LLM” dal menu a discesa “LLM” sulla destra.

Server LLM personalizzato
Per usare un server LLM personalizzato, configura un endpoint server compatibile nello stile di OpenAI. Puoi implementare la Chat Completions API (/v1/chat/completions) oppure la Responses API (/v1/responses).
Entrambi gli endpoint devono restituire risposte in formato SSE (Server-Sent Events) con Content-Type: text/event-stream.
Chat Completions API
Responses API
La Chat Completions API usa l’endpoint /v1/chat/completions.
Ogni chunk deve essere formattato come data: {json}\n\n e lo stream deve terminare con data: [DONE]\n\n.
Ecco un’implementazione di esempio del server:
Esegui questo codice oppure il codice del tuo server.

Configurare un URL pubblico per il server
Per rendere accessibile il tuo server, crea un URL pubblico usando uno strumento di tunneling come ngrok:

Configurare ElevenLabs CustomLLM
Ora aggiorna le impostazioni dell’agente nella dashboard di ElevenLabs affinché puntino al tuo server LLM personalizzato.

Indirizza l’URL del server all’endpoint ngrok e imposta “Limit token usage” su 5000.
Ora puoi iniziare a interagire con il tuo agente usando il tuo server LLM.
Ottimizzare per LLM con elaborazione lenta
Se il tuo LLM personalizzato ha tempi di elaborazione lenti, magari a causa di requisiti di ragionamento agentico o pre-elaborazione, puoi migliorare il flusso conversazionale implementando le parole di attesa nelle risposte in streaming. Questa tecnica aiuta a mantenere una prosodia naturale mentre il tuo LLM genera la risposta completa.
Parole di attesa
Quando il tuo LLM necessita di più tempo per elaborare la risposta completa, restituisci una risposta iniziale che termini con "... " (puntini di sospensione seguiti da uno spazio). Questo permette al sistema Text to Speech di mantenere un flusso naturale e una conversazione dinamica.
In questo modo crei pause naturali che si collegano bene ai contenuti successivi su cui l’LLM può ragionare più a lungo. Lo spazio aggiuntivo è fondamentale per evitare che il contenuto successivo venga aggiunto a ”…”, causando possibili distorsioni audio.
Implementazione
Ecco come modificare il tuo server LLM personalizzato per implementare le parole di attesa:
Integrazione degli strumenti di sistema
Il tuo LLM personalizzato può attivare gli strumenti di sistema per controllare il flusso e lo stato della conversazione. Quando sono configurati nel tuo agente, questi strumenti vengono inclusi automaticamente nel parametro tools delle tue richieste di completamento chat.
Come funzionano gli strumenti di sistema
- Decisione dell’LLM: il tuo LLM personalizzato decide quando chiamare questi strumenti in base al contesto della conversazione
- Risposta dello strumento: l’LLM risponde con chiamate di funzione nel formato OpenAI standard
- Elaborazione backend: ElevenLabs elabora le chiamate degli strumenti e aggiorna lo stato della conversazione
Per maggiori informazioni sugli strumenti di sistema, consulta la nostra guida
Strumenti di sistema disponibili
Termina chiamata
Scopo: termina automaticamente le conversazioni quando si verificano condizioni appropriate.
Condizioni di attivazione: l’LLM deve chiamare questo strumento quando:
- L’attività principale è stata completata e l’utente è soddisfatto
- La conversazione ha raggiunto una conclusione naturale con accordo reciproco
- L’utente indica esplicitamente di voler terminare la conversazione
Parametri:
reason(stringa, obbligatorio): il motivo della fine della chiamatamessage(stringa, facoltativo): un messaggio di saluto da inviare all’utente prima di terminare la chiamata
Formato della chiamata di funzione:
Implementazione: configura lo strumento come strumento di sistema nelle impostazioni dell’agente. L’LLM riceverà istruzioni dettagliate su quando chiamare questa funzione.
Scopri di più: Strumento Termina chiamata
Rilevamento della lingua
Scopo: passa automaticamente alla lingua rilevata dell’utente durante le conversazioni.
Condizioni di attivazione: l’LLM deve chiamare questo strumento quando:
- L’utente parla una lingua diversa da quella della conversazione corrente
- L’utente richiede esplicitamente di cambiare lingua
- Per la conversazione è necessario il supporto multilingue
Parametri:
reason(stringa, obbligatorio): il motivo del cambio di lingualanguage(stringa, obbligatorio): il codice della lingua a cui passare (deve essere incluso nell’elenco delle lingue supportate)
Formato della chiamata di funzione:
Implementazione: configura le lingue supportate nelle impostazioni dell’agente e aggiungi lo strumento di sistema per il rilevamento della lingua. L’agente cambierà automaticamente voce e risposte in base alle lingue rilevate.
Scopri di più: Strumento Rilevamento della lingua
Trasferimento dell'agente
Scopo: trasferisce le conversazioni tra agenti IA specializzati in base alle esigenze dell’utente.
Condizioni di attivazione: l’LLM deve chiamare questo strumento quando:
- La richiesta dell’utente richiede conoscenze specialistiche o capacità di un agente diverse
- L’agente corrente non riesce a gestire adeguatamente la richiesta
- Il flusso della conversazione indica la necessità di un tipo di agente diverso
Parametri:
reason(stringa, facoltativo): il motivo del trasferimento dell’agenteagent_number(intero, obbligatorio): numero con indice zero dell’agente a cui trasferire la conversazione, in base alle regole di trasferimento configurate
Formato della chiamata di funzione:
Implementazione: definisci regole di trasferimento che associno le condizioni a ID di agenti specifici. Configura gli agenti a cui l’agente corrente può trasferire la conversazione. Gli agenti sono indicati tramite numeri con indice zero nella configurazione del trasferimento.
Scopri di più: Strumento Trasferimento dell’agente
Trasferimento a un operatore umano
Scopo: passa senza interruzioni le conversazioni a operatori umani quando l’assistenza IA non è sufficiente.
Condizioni di attivazione: l’LLM deve chiamare questo strumento quando:
- Si verificano problemi complessi che richiedono giudizio umano
- L’utente richiede esplicitamente assistenza umana
- L’IA raggiunge i limiti delle proprie capacità per la richiesta specifica
- Vengono attivati i protocolli di escalation
Parametri:
reason(stringa, facoltativo): il motivo del trasferimentotransfer_number(stringa, obbligatorio): il numero di telefono a cui trasferire la chiamata, che deve corrispondere ai numeri configuraticlient_message(stringa, obbligatorio): messaggio letto al cliente durante l’attesa del trasferimentoagent_message(stringa, obbligatorio): messaggio per l’operatore umano che riceve la chiamata
Formato della chiamata di funzione:
Implementazione: configura i numeri di telefono e le condizioni di trasferimento. Definisci messaggi sia per il cliente sia per l’operatore umano ricevente. Funziona sia con Twilio sia con SIP trunking.
Scopri di più: Strumento Trasferimento a un operatore umano
Salta turno
Scopo: consente all’agente di fare una pausa e attendere l’input dell’utente senza parlare.
Condizioni di attivazione: l’LLM deve chiamare questo strumento quando:
- L’utente indica di aver bisogno di un momento (“Dammi un secondo”, “Fammi pensare”)
- L’utente richiede una pausa nel flusso della conversazione
- L’agente rileva che l’utente ha bisogno di tempo per elaborare le informazioni
Parametri:
reason(stringa, facoltativo): motivo in formato libero che spiega perché è necessaria la pausa
Formato della chiamata di funzione:
Implementazione: non è necessaria alcuna configurazione aggiuntiva. Lo strumento segnala semplicemente all’agente di rimanere in silenzio finché l’utente non parla di nuovo.
Scopri di più: Strumento Salta turno
Rilevamento della segreteria telefonica
Parametri:
reason(stringa, obbligatorio): il motivo del rilevamento della segreteria telefonica (ad esempio, “rilevato messaggio di benvenuto automatico”, “nessuna risposta umana”)
Formato della chiamata di funzione:
Scopri di più: Strumento Rilevamento della segreteria telefonica
Esempio di richiesta con strumenti di sistema
Quando gli strumenti di sistema sono configurati, il tuo LLM personalizzato riceverà richieste che includono gli strumenti nel formato OpenAI standard:
Il tuo LLM personalizzato deve supportare il function calling per usare gli strumenti di sistema. Assicurati che il modello possa generare risposte di chiamata di funzione corrette nel formato OpenAI.
Funzionalità aggiuntive
Parametri LLM personalizzati
Puoi passare parametri aggiuntivi alla tua implementazione LLM personalizzata.
Python
Esempio di richiesta
Con questa configurazione di messaggio personalizzato, il tuo LLM riceverà richieste in questo formato:
