Skip to navigation

Agentoverdracht

Draag de gebruiker naadloos over tussen ElevenLabs-agents op basis van gedefinieerde voorwaarden.

Overzicht

Met agent-naar-agentoverdracht kan een ElevenLabs-agent het lopende gesprek overdragen aan een andere aangewezen agent wanneer aan specifieke voorwaarden is voldaan. Zo kun je gelaagde conversationele workflows maken waarin verschillende agents specifieke taken of niveaus van complexiteit afhandelen.

Een initiële agent (Orchestrator) kan bijvoorbeeld algemene vragen afhandelen en het gesprek vervolgens op basis van de context overdragen aan een gespecialiseerde agent. Overdrachten kunnen ook genest zijn:

Orchestrator Agent (Initial Qualification)
│
├───> Agent 1 (e.g., Availability Inquiries)
│
├───> Agent 2 (e.g., Technical Support)
│ │
│ └───> Agent 2a (e.g., Hardware Support)
│
└───> Agent 3 (e.g., Billing Issues)
Voorbeeld van hiërarchie voor agentoverdracht

Doel: Gesprekken overdragen tussen gespecialiseerde AI-agents op basis van gebruikersbehoeften.

Triggervoorwaarden: De LLM moet deze tool aanroepen wanneer:

  • Het verzoek van de gebruiker gespecialiseerde kennis of andere agentmogelijkheden vereist
  • De huidige agent de vraag niet goed genoeg kan afhandelen
  • De gespreksstroom aangeeft dat een ander agenttype nodig is

Parameters:

  • reason (string, optioneel): De reden voor de agentoverdracht
  • agent_number (integer, vereist): Nummer vanaf nul van de agent waarnaar moet worden overgedragen (op basis van geconfigureerde overdrachtsregels)

Indeling van functieaanroep:

{
"type": "function",
"function": {
"name": "transfer_to_agent",
"arguments": "{\"reason\": \"User needs billing support\", \"agent_number\": 0}"
}
}

Implementatie: Definieer overdrachtsregels die voorwaarden aan specifieke agent-ID’s koppelen. Configureer naar welke agents de huidige agent kan overdragen. Agents worden in de overdrachtsconfiguratie aangeduid met nummers vanaf nul.

Agentoverdracht inschakelen

Agentoverdracht wordt geconfigureerd met de systeemtool transfer_to_agent.

1

De overdrachtstool toevoegen

Schakel agentoverdracht in door de systeemtool transfer_to_agent te selecteren in de configuratie van je agent, op het tabblad Agent. Kies “Transfer to AI Agent” wanneer je een tool toevoegt.

Overdrachtstool toevoegen
2

Toolbeschrijving configureren (optioneel)

Je kunt een aangepaste beschrijving opgeven om de LLM te laten weten wanneer deze een overdracht moet activeren. Als je dit leeg laat, wordt een standaardbeschrijving gebruikt met de gedefinieerde overdrachtsregels.

Beschrijving van overdrachtstool
3

Overdrachtsregels definiëren

Configureer de specifieke regels voor overdracht aan andere agents. Geef voor elke regel het volgende op:

  • Agent: De doelagent waarnaar je het gesprek overdraagt.
  • Voorwaarde: Een beschrijving in natuurlijke taal van de omstandigheden waaronder de overdracht moet plaatsvinden (bijv. “Gebruiker vraagt naar factureringsgegevens”, “Gebruiker vraagt technische support voor product X”).
  • Vertraging vóór overdracht (milliseconden): De minimale vertraging (in milliseconden) voordat de overdracht plaatsvindt. De standaardwaarde is 0 voor onmiddellijke overdracht.
  • Overdrachtsbericht: Een optioneel aangepast bericht dat tijdens de overdracht wordt afgespeeld. Als je dit leeg laat, vindt de overdracht stilzwijgend plaats.
  • Eerste bericht inschakelen: Of de overgedragen agent na de overdracht zijn eerste bericht moet afspelen. Standaard uitgeschakeld.

De LLM gebruikt deze voorwaarden, samen met de toolbeschrijving, om te bepalen wanneer en naar welke agent (op nummer) het gesprek moet worden overgedragen.

Configuratie van overdrachtsregels

Zorg ervoor dat de gebruikersaccount die de agent maakt, minimaal viewerrechten heeft voor alle doelagents die in de overdrachtsregels zijn opgegeven.

Gedrag bij overdracht

Wanneer een overdracht plaatsvindt, geeft de bovenliggende agent (degene die de overdracht start) bepaalde configuratiewaarden door aan de onderliggende agent (degene die het gesprek ontvangt), terwijl andere volledig worden gereset.

Overname van configuratie

De bovenliggende agent overschrijft de volgende waarden bij elke onderliggende agent, ongeacht de eigen configuratie van de onderliggende agent:

InstellingBeschrijving
ClientgebeurtenissenWelke gebeurtenissen de client verstuurt (bijv. audio, interruption, user_transcript).
TTS-uitvoeraudioformaatFormaat waarin de spraak van de agent wordt verstuurd (bijv. pcm_16000, ulaw_8000).
ASR-invoeraudioformaatFormaat van de gebruikersaudio die de agent verwacht (bijv. pcm_16000, ulaw_8000).

Daarnaast wordt de huidige taal van de bovenliggende agent overgenomen. Als de onderliggende agent deze niet ondersteunt, valt deze terug op zijn eigen standaardtaal. De webhook- en analyseconfiguratie na het gesprek (inclusief evaluatiecriteria en gegevensverzamelingsitems) geldt ook voor het hele gesprek.

Niet overgenomen

Alle andere configuraties worden ingesteld door de onderliggende agent, waaronder, maar niet beperkt tot:

  • Prompt, eerste bericht, LLM, workflow, stem, tools en kennisbank
  • TTS-stem, model, stabiliteit en andere steminstellingen (behalve agent_output_audio_format)
  • ASR-model, kwaliteit en trefwoorden (behalve user_input_audio_format)
  • Beurt/time-out, taalpresets, maximale duur enzovoort

Configureer deze instellingen consistent voor elke agent in de workflow om afwijkend gedrag te voorkomen.

Transcript en chatgeschiedenis

Het volledige transcript blijft behouden gedurende het hele gesprek. Berichten van gebruikers en agents van alle voorgaande agents blijven in de chatgeschiedenis staan.

Tijdens een overdracht worden toolaanroepen van transfer_to_agent verwijderd uit de geschiedenis die zichtbaar is voor de LLM van de onderliggende agent, zodat deze het gesprek voortzet zonder de overdracht te noemen.

Evaluatie na het gesprek

De LLM-evaluator na het gesprek ontvangt het volledige, ongefilterde transcript: alle berichten van gebruikers en agents, en alle toolaanroepen inclusief de overdracht.

Afzonderlijke berichten hebben geen veld agent_id. Om te bepalen welke agent welke berichten heeft geproduceerd, gebruikt de evaluator de toolaanroep transfer_to_agent als grensmarkering in het transcript.

API-implementatie

Je kunt de systeemtool transfer_to_agent configureren wanneer je via de API een agent maakt of bijwerkt.

from elevenlabs import AgentConfig, ConversationalConfig, ElevenLabs
elevenlabs = ElevenLabs(api_key="YOUR_API_KEY")
# Define transfer rules with new options
transfer_rules = [
{
"agent_id": "AGENT_ID_1",
"condition": "When the user asks for billing support.",
"delay_ms": 1000, # 1 second delay
"transfer_message": "I'm connecting you to our billing specialist.",
"enable_transferred_agent_first_message": True,
},
{
"agent_id": "AGENT_ID_2",
"condition": "When the user requests advanced technical help.",
"delay_ms": 0, # Immediate transfer
"transfer_message": None, # Silent transfer
"enable_transferred_agent_first_message": False,
},
]
response = elevenlabs.conversational_ai.agents.create(
conversation_config=ConversationalConfig(
agent=AgentConfig(
first_message="Hi, how can I help you today?",
prompt={
"prompt": "You are a helpful assistant.",
"built_in_tools": {
"transfer_to_agent": {
"type": "system",
"name": "transfer_to_agent",
# Optional custom description
"description": "Transfer the user to a specialized agent based on their request.",
"params": {
"system_tool_type": "transfer_to_agent",
"transfers": transfer_rules,
},
}
},
},
),
),
)
print(response)