
Building an edutainment universe for the next generation
Life Heroes Universe uses character-driven storytelling to inspire learning beyond the classroom.
Mönster för att integrera ElevenLabs röstorkestrering med komplexa och tillståndsberoende agenter
Frontier-agentorkestratorer kan alltmer hantera komplexa uppgifter och fungera över hela företagsverktygssviten. Detta kräver noggrann hantering av applikation, konversation och systemtillstånd. För andra modaliteter än röst har vanliga mönster uppstått under paraplytermen kontextteknik, som syftar till att bygga konsekventa metoder kring en agents systemprompt när en interaktion fortskrider. Att införa röst innebär inte bara ett ytterligare lager av tillstånd för att hantera komponenter i röstinteraktionen, utan tillåter också återanvändning av artefakter från tidigare arbete med andra modaliteter.
I detta inlägg beskriver vi hur ElevenLabs Agents stödjer externa agenter och de mönster som möjliggör detaljerad kontroll över deras integration. Dessa mekanismer låter kunder utnyttja ElevenLabs förstklassiga röstorkestrering samtidigt som de behåller full äganderätt över sin bredare orkestrering.
ElevenLabs Agents
I sin enklaste form är en ElevenLabs Agent tillgänglig via en Websocket-klient. Information som representerar server- och klienthändelser i konversationen passerar till och från agenten som JSON-objekt. När agenten transkriberar användartal, triggar den ivrigt en genereringsförfrågan. Vi stödjer de flesta stora modellleverantörer och låter kunder ta med sin egen Custom LLM. När man tar med en mer komplex orkestrator (agenter) för att svara på genereringsförfrågningar bakom Custom LLM, måste kunder säkerställa att den stödjer antingen OpenAI:s Chat Completions eller Responses API. Lyckligtvis stöds denna API-formatsspecifikation enkelt av de flesta stora agentbyggnadsramverk (CrewAI, LangChain, LangGraph, HayStack, LlamaIndex, ...).
När de väl är integrerade, kräver dessa agenter ofta förmågan att läsa och uppdatera sitt interna och externa tillstånd när som helst oavsett vilken röstorkestrator de sitter bakom. Att hantera detta effektivt säkerställer konsekvens med befintliga textbaserade agenter.
Tillståndshantering
Per definition är de data en agent måste spåra för att navigera sin miljö effektivt mycket uppgiftsspecifika. För ElevenLabs Agents som drivs av en extern agent är det användbart att upprätthålla tillstånd över några väl definierade kategorier.
Internt tillstånd styr dynamiken i konversationen. Exempel på element som spåras som en del av agentens interna tillstånd inkluderar:
Externt tillstånd fokuserar å andra sidan främst på relevanta system och individer som agenten interagerar med eller påverkar. Exempel på element som spåras som en del av agentens externa tillstånd inkluderar:
Vi beskriver ett vanligt mönster för att pålitligt upprätthålla denna information under hela livscykeln av en agents relation med en användare.
Översikt
I detta avsnitt täcker vi arkitekturkomponenterna och implementeringsdetaljerna som krävs för att framgångsrikt integrera komplexa externa agenter. Kärnan i detta tillvägagångssätt är förmågan att proxy en godtycklig, men unik identifierare som representerar en session över alla tjänster. För ElevenLabs Agents som använder anpassade LLM:er kan detta enkelt göras genom att skicka den nödvändiga identifieraren som en LLM-parameter inom det extra kroppobjektet som skickas som en del av konversationsöverstyrningar under samtalsinitiering. Genom att göra detta kan identifieraren flöda genom ElevenLabs Agent från användaren ner till den externa agenten.

Observera det tillståndsberoende proxyt bakom den anpassade LLM:en. Denna tjänst, som vanligtvis inte finns, låter oss kartlägga individuella genereringsförfrågningar till godtyckliga identifierare som representerar anslutningar med den externa agenten. Implementeringen av denna tjänst ligger i händerna på de externa agentutvecklarna. I sin enklaste form hanterar proxyt anslutningar representerade av unika identifierare som kartlägger till ElevenLabs-konversationer eller samtals-SID:er (för telefoni). Medan mer avancerade versioner kan införa hierarki i kartläggningen av konversationer till mer intrikata kundrelationer som spänner över flera interaktioner.

I dessa mer avancerade konfigurationer upprätthåller proxyt ytterligare identifierare som går bortom en enda förfrågan kopplad till en enda nedströms session. Istället för att varje identifierare representerar endast en konversation eller samtals-SID, kan proxyt associera en enda identifierare med flera relaterade interaktioner. Detta gör att systemet kan följa kundresor som rör sig över kanaler, återanvända historisk kontext och samordna flera interaktioner samtidigt. Till exempel kan en enda kartläggning gruppera flera webbchatt-sessioner, ett uppföljande röstsamta och ett internt supportflöde under samma logiska kundidentifierare. Proxyt kan sedan dirigera förfrågningar till rätt identifierare baserat på enkla regler samtidigt som det bevarar ett enhetligt tillstånd bakom den anpassade LLM:en. Detta möjliggör mer flexibla och beständiga flerstegsinteraktioner hanterade av den externa agenten.
Meddelandepassering
Utöver att framgångsrikt kartlägga genereringsförfrågningar till högre ordningsenheter, kan det tillståndsberoende proxyt stödja tvåvägs meddelandepassering till externa källor som applikationsfrontend eller en separat routertjänst via API-förfrågningar. I applikationer där detta är nödvändigt, kräver ElevenLabs Agents inte medvetenhet om att meddelanden skickas till andra tjänster.
Till exempel är det ofta användbart för externa agenter att ha insyn i pågående röstaktivitet, så att den kan avgöra om användaren talar, hur länge och om den bör vidta några åtgärder i förväg. Dessa insikter kan härledas direkt och åtgärdas genom att skicka bearbetade röstaktivitetsdetekteringspoäng (VAD) som tillhandahålls av ElevenLabs Agents som klienthändelser mottagna genom konversationswebsocketen. När poäng tas emot från ElevenLabs kan klientapplikationen vidarebefordra VAD-klienthändelser till det tillståndsberoende proxyt baserat på applikationskrav och säkerställa att det inkluderar den godtyckliga sessionsidentifieraren i meddelandet. Det är nödvändigt för det tillståndsberoende proxyt att implementera förfrågningskartläggningslogik som optimalt identifierar den befintliga anslutningen för sessionen.
Detta mönster kan utökas för att rymma vilken händelse som helst från klienten, förutsatt att den kan uttryckas som ett block av JSON. Det är dock också användbart att exponera händelser som härrör från agenten själv. Ett vanligt exempel involverar livscykeln för verktygsanrop eller kunskapsbasfrågor som representerar operationer på externa system. Dessa mekanismer är grundläggande för de agenter företag bygger idag.
När man integrerar externa agenter genom en anpassad LLM, förbises ofta ElevenLabs verktygsanrop och retrieval augmented generation (RAG)-funktioner till förmån för den externa agentens egen implementering. Som ett resultat ligger ägandet av dessa komponenter helt hos den externa agentleverantören. Applikationer drar fortfarande nytta av insyn i verktygsaktivitet, eftersom det gör det möjligt för dem att visa agentens framsteg och uppdatera slutanvändarens upplevelse därefter.
För att ge denna insyn, sänder den externa agenten meddelanden när verktyg anropas, både för förfrågningar och svar. Dessa meddelanden vidarebefordras av det tillståndsberoende proxyt till klientapplikationer, som hanterar dem genom en dedikerad meddelandekö. Detta speglar de mekanismer som används av ElevenLabs Agents' klienthändelser och säkerställer att applikationer kan spåra när agenten läser från eller ändrar ett externt system.

Således, genom att använda dessa kärnkomponenter och möjliggöra tvåvägs meddelandepassering mellan proxyt och klientapplikationen, kan kunder integrera externa agenter inom ElevenLabs Agents för att strikt använda den röstorkestrering den tillhandahåller samtidigt som de behåller äganderätten över alla delar av LLM-orkestreringen.
Koppla tillbaka till tillstånd
Att stödja komplexa externa agenter effektivt kräver en tydlig ansvarsfördelning mellan proxyt och agenten, särskilt när det gäller tillståndshantering. I denna modell är proxyt ansvarig för att upprätthålla en tabell över relevanta interaktioner, grupperade enligt applikationens behov, och för att dirigera meddelanden mellan sig själv och agenten med logik som förblir tillståndslös. I sin tur bör den externa agenten hantera och lagra alla väsentliga interna och externa informationsdelar som bidrar till det övergripande tillståndet.
Även om att släppa denna separation kan ytterligare minska omarbetningen av en befintlig lösning, leder det generellt till mer robusta och skalbara resultat att upprätthålla en strikt gräns när agentens uppgiftsuppsättning växer.
När organisationer mognar i sin användning av röst- och icke-röstaktiverade agenter, förväntar vi oss att mönster för den information som krävs av dessa agenter kristalliseras, vilket gör att vi kan förenkla utvecklingen och ägandet av de tjänster som beskrivs i detta inlägg. Under tiden fortsätter vi att bygga för de krav som redan har uppstått. Vårt Forward Deployed Engineering-team samarbetar nära med kunder för att översätta dessa framväxande behov till konkreta produktfunktioner och säkerställa att våra lösningar utvecklas i takt med verkliga implementeringar.
Om du redan arbetar med en befintlig agent och vill aktivera röst med ElevenLabs Agents samtidigt som du behåller äganderätten över din LLM-orkestrering, prova detta tillvägagångssätt och låt oss veta vad du tycker!

Life Heroes Universe uses character-driven storytelling to inspire learning beyond the classroom.

Granular music creation built on the Eleven Music API
Drivs av ElevenLabs Agenter