Integrera din egen modell
Anslut en agent till din egen LLM eller kör din egen server.
Med Custom LLM kan du ansluta dina konversationer till din egen LLM via en extern slutpunkt. ElevenLabs stöder även inbyggt integrerade LLM:er
Anpassade LLM:er låter dig använda din egen OpenAI API-nyckel eller köra en helt anpassad LLM-server.
Översikt
Som standard använder vi våra egna interna autentiseringsuppgifter för populära modeller som OpenAI. För att använda en anpassad LLM-server måste den följa någon av följande OpenAI-kompatibla strukturer för begäran och svar:
- Chat Completions API (
/v1/chat/completions) - Responses API (
/v1/responses)
Responses API är OpenAI:s nyare API-format som stöder ytterligare funktioner. Båda API-formaten stöds fullt ut för integrering av anpassade LLM:er.
Följande guider täcker båda användningsfallen:
- Använd din egen OpenAI-nyckel: Använd din egen OpenAI API-nyckel med vår plattform.
- Anpassad LLM-server: Kör och anslut din egen LLM-serverimplementering.
Du får lära dig att:
- Lagra din OpenAI API-nyckel i ElevenLabs
- Köra en server som efterliknar OpenAI:s slutpunkt för Chat Completions eller Responses
- Styra ElevenLabs till din anpassade slutpunkt
- Skicka extra parametrar till din LLM vid behov
Sammanfattning av resonemang
Din slutpunkt måste returnera resonemang separat från det slutliga svaret. ElevenLabs genererar inte resonemang från det slutliga svaret.
För att begära resonemang från en slutpunkt som stöds aktiverar du Sammanfattning av resonemang i agentens LLM-inställningar eller anger enable_reasoning_summary via API:et.
Returnera resonemang
Använd det format som matchar din slutpunkt:
Chat Completions API
Responses API
Streama resonemang i fältet reasoning eller reasoning_content i varje svarsdelta.
För Gemini-kompatibla slutpunkter begär ElevenLabs tankar med
google.thinking_config.include_thoughts och läser innehåll markerat med
extra_content.google.thought.
Se Sammanfattning av resonemang för lagring, leverans och begränsningar.
Använd din egen OpenAI-nyckel
För att integrera en anpassad OpenAI-nyckel uppdaterar du agentinställningarna i ElevenLabs-kontrollpanelen så att de pekar på din anpassade LLM-server och skapar en hemlighet som innehåller din OPENAI_API_KEY:
I agentinställningarna i ElevenLabs-kontrollpanelen väljer du “Custom LLM” i rullgardinsmenyn “LLM” till höger.

Anpassad LLM-server
För att använda en anpassad LLM-server konfigurerar du en kompatibel serverslutpunkt enligt OpenAI:s stil. Du kan implementera antingen Chat Completions API (/v1/chat/completions) eller Responses API (/v1/responses).
Båda slutpunkterna måste returnera svar i SSE-format (Server-Sent Events) med Content-Type: text/event-stream.
Chat Completions API
Responses API
Chat Completions API använder slutpunkten /v1/chat/completions.
Varje del måste formateras som data: {json}\n\n och strömmen måste avslutas med data: [DONE]\n\n.
Här är ett exempel på en serverimplementering:
Kör den här koden eller din egen serverkod.

Konfigurera en offentlig URL för din server
För att göra din server tillgänglig skapar du en offentlig URL med ett tunnelverktyg som ngrok:

Konfigurera ElevenLabs CustomLLM
Uppdatera sedan agentinställningarna i ElevenLabs-kontrollpanelen så att de pekar på din anpassade LLM-server.

Styr din server-URL till ngrok-slutpunkten och ange “Limit token usage” till 5000.
Du kan nu börja interagera med din agent via din egen LLM-server.
Optimera för LLM:er med långsam bearbetning
Om din anpassade LLM har långa bearbetningstider (kanske på grund av agentbaserat resonemang eller krav på förbearbetning) kan du förbättra samtalsflödet genom att implementera buffertord i dina streamade svar. Den här tekniken hjälper till att bevara naturlig talprosodi medan din LLM genererar det fullständiga svaret.
Buffertord
När din LLM behöver mer tid för att bearbeta hela svaret returnerar du ett första svar som avslutas med "... " (ellips följt av ett mellanslag). Då kan Text to Speech-systemet behålla ett naturligt flöde samtidigt som konversationen känns dynamisk.
Detta skapar naturliga pauser som flyter väl in i efterföljande innehåll som LLM:en kan resonera längre kring. Det extra mellanslaget är avgörande för att säkerställa att efterföljande innehåll inte läggs till efter ”…”, vilket kan leda till ljudförvrängningar.
Implementering
Så här ändrar du din anpassade LLM-server för att implementera buffertord:
Integrering av systemverktyg
Din anpassade LLM kan utlösa systemverktyg för att styra samtalsflöde och tillstånd. De här verktygen inkluderas automatiskt i parametern tools i dina begäranden om chat completion när de är konfigurerade i din agent.
Så fungerar systemverktyg
- LLM-beslut: Din anpassade LLM avgör när dessa verktyg ska anropas utifrån konversationens sammanhang
- Verktygssvar: LLM:en svarar med funktionsanrop i OpenAI:s standardformat
- Bearbetning i backend: ElevenLabs bearbetar verktygsanropen och uppdaterar konversationens tillstånd
Mer information om systemverktyg finns i vår guide
Tillgängliga systemverktyg
Avsluta samtal
Syfte: Avsluta automatiskt konversationer när rätt villkor är uppfyllda.
Villkor för utlösning: LLM:en ska anropa verktyget när:
- Huvuduppgiften har slutförts och användaren är nöjd
- Konversationen har nått en naturlig avslutning med ömsesidig överenskommelse
- Användaren uttryckligen säger att hen vill avsluta konversationen
Parametrar:
reason(sträng, obligatorisk): Orsaken till att samtalet avslutasmessage(sträng, valfri): Ett avskedsmeddelande som skickas till användaren innan samtalet avslutas
Format för funktionsanrop:
Implementering: Konfigurera som ett systemverktyg i agentinställningarna. LLM:en får detaljerade instruktioner om när den ska anropa denna funktion.
Läs mer: Verktyget Avsluta samtal
Språkidentifiering
Syfte: Växla automatiskt till användarens identifierade språk under konversationer.
Villkor för utlösning: LLM:en ska anropa verktyget när:
- Användaren talar ett annat språk än det aktuella konversationsspråket
- Användaren uttryckligen ber om att byta språk
- Konversationen behöver stöd för flera språk
Parametrar:
reason(sträng, obligatorisk): Orsaken till språkbytetlanguage(sträng, obligatorisk): Språkkoden att byta till (måste finnas i listan över språk som stöds)
Format för funktionsanrop:
Implementering: Konfigurera språk som stöds i agentinställningarna och lägg till systemverktyget för språkidentifiering. Agenten växlar automatiskt röst och svar för att matcha identifierade språk.
Läs mer: Verktyget Språkidentifiering
Överföring av agent
Syfte: Överför konversationer mellan specialiserade AI-agenter utifrån användarens behov.
Villkor för utlösning: LLM:en ska anropa verktyget när:
- Användarens begäran kräver specialkunskap eller andra agentfunktioner
- Den aktuella agenten inte kan hantera frågan tillräckligt väl
- Samtalsflödet visar att en annan typ av agent behövs
Parametrar:
reason(sträng, valfri): Orsaken till agentöverföringenagent_number(heltal, obligatorisk): Det nollindexerade numret för agenten att överföra till (baserat på konfigurerade överföringsregler)
Format för funktionsanrop:
Implementering: Definiera överföringsregler som kopplar villkor till specifika agent-ID:n. Konfigurera vilka agenter den aktuella agenten kan överföra till. Agenter refereras med nollindexerade nummer i överföringskonfigurationen.
Läs mer: Verktyget Agentöverföring
Överför till människa
Syfte: Överlämna smidigt konversationer till mänskliga handläggare när AI-hjälp inte räcker till.
Villkor för utlösning: LLM:en ska anropa verktyget när:
- Komplexa problem kräver mänskligt omdöme
- Användaren uttryckligen begär mänsklig hjälp
- AI:n når gränsen för sin kapacitet för den specifika begäran
- Eskaleringsprotokoll utlöses
Parametrar:
reason(sträng, valfri): Orsaken till överföringentransfer_number(sträng, obligatorisk): Telefonnummer att överföra till (måste matcha konfigurerade nummer)client_message(sträng, obligatorisk): Meddelande som läses upp för kunden medan överföringen väntaragent_message(sträng, obligatorisk): Meddelande till den mänskliga handläggare som tar emot samtalet
Format för funktionsanrop:
Implementering: Konfigurera telefonnummer och villkor för överföring. Definiera meddelanden för både kunden och den mänskliga handläggaren som tar emot samtalet. Fungerar med både Twilio och SIP-trunking.
Läs mer: Verktyget Överför till människa
Hoppa över tur
Syfte: Låter agenten pausa och vänta på användarindata utan att tala.
Villkor för utlösning: LLM:en ska anropa verktyget när:
- Användaren signalerar att hen behöver en stund (“Ge mig en sekund”, “Låt mig tänka”)
- Användaren begär en paus i samtalsflödet
- Agenten upptäcker att användaren behöver tid för att bearbeta information
Parametrar:
reason(sträng, valfri): Fritt formulerad orsak som förklarar varför pausen behövs
Format för funktionsanrop:
Implementering: Ingen ytterligare konfiguration behövs. Verktyget signalerar bara att agenten ska vara tyst tills användaren talar igen.
Läs mer: Verktyget Hoppa över tur
Röstmeddelandeidentifiering
Parametrar:
reason(sträng, obligatorisk): Anledningen till att röstbrevlåda identifierades (t.ex. ”automatiskt hälsningsmeddelande identifierat”, ”inget mänskligt svar”)
Format för funktionsanrop:
Exempelbegäran med systemverktyg
När systemverktyg är konfigurerade får din anpassade LLM begäranden som innehåller verktygen i OpenAI:s standardformat:
Din anpassade LLM måste stödja funktionsanrop för att använda systemverktyg. Kontrollera att modellen kan generera korrekta svar på funktionsanrop i OpenAI-format.
Ytterligare funktioner
Anpassade LLM-parametrar
Du kan skicka ytterligare parametrar till din anpassade LLM-implementering.
