Hoppa till navigering

Agentöverföring

Överför användaren smidigt mellan ElevenLabs-agenter baserat på definierade villkor.

Översikt

Agentöverföring gör det möjligt för en ElevenLabs-agent att överlämna det pågående samtalet till en annan angiven agent när specifika villkor uppfylls. Det möjliggör konversationsflöden i flera lager där olika agenter hanterar specifika uppgifter eller komplexitetsnivåer.

Till exempel kan en inledande agent (Orkestrerare) hantera allmänna frågor och sedan överföra samtalet till en specialiserad agent utifrån samtalets sammanhang. Överföringar kan också kapslas:

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)
Exempel på hierarki för agentöverföring

Syfte: Överför konversationer mellan specialiserade AI-agenter utifrån användarens behov.

Utlösarvillkor: LLM:en ska anropa det här verktyget när:

  • Användarens begäran kräver specialiserad kunskap eller andra agentfunktioner
  • Den aktuella agenten inte kan hantera frågan tillräckligt bra
  • Konversationsflödet visar att en annan agenttyp behövs

Parametrar:

  • reason (sträng, valfritt): Orsaken till agentöverföringen
  • agent_number (heltal, krävs): Nollindexerat nummer för agenten att överföra till (baserat på konfigurerade överföringsregler)

Format för funktionsanrop:

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

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.

Aktivera agentöverföring

Agentöverföring konfigureras med systemverktyget transfer_to_agent.

1

Lägg till överföringsverktyget

Aktivera agentöverföring genom att välja systemverktyget transfer_to_agent i agentens konfiguration på fliken Agent. Välj “Överför till AI-agent” när du lägger till ett verktyg.

Lägg till överföringsverktyg
2

Konfigurera verktygsbeskrivning (valfritt)

Du kan ange en anpassad beskrivning som vägleder LLM:en om när en överföring ska utlösas. Om fältet lämnas tomt används en standardbeskrivning som omfattar de definierade överföringsreglerna.

Beskrivning av överföringsverktyg
3

Definiera överföringsregler

Konfigurera de specifika reglerna för överföring till andra agenter. Ange följande för varje regel:

  • Agent: Målagenten som samtalet ska överföras till.
  • Villkor: En beskrivning på naturligt språk av omständigheterna då överföringen ska ske (t.ex. “Användaren frågar om faktureringsuppgifter”, “Användaren begär teknisk support för produkt X”).
  • Fördröjning före överföring (millisekunder): Minsta fördröjning (i millisekunder) innan överföringen sker. Standardvärdet är 0 för omedelbar överföring.
  • Överföringsmeddelande: Ett valfritt anpassat meddelande som spelas upp under överföringen. Om fältet lämnas tomt sker överföringen tyst.
  • Aktivera första meddelandet: Om den överförda agenten ska spela upp sitt första meddelande efter överföringen. Av som standard.

LLM:en använder dessa villkor, tillsammans med verktygsbeskrivningen, för att avgöra när och till vilken agent (efter nummer) överföringen ska ske.

Konfiguration av överföringsregler

Se till att användarkontot som skapar agenten har minst läsbehörighet för alla målagenter som anges i överföringsreglerna.

Överföringsbeteende

När en överföring sker skickar överordnad agent (den som initierar överföringen) vissa konfigurationsvärden till underordnad agent (den som tar emot samtalet), medan andra återställs helt.

Arv av konfiguration

Den överordnade agenten skriver över följande värden för varje underordnad agent, oavsett den underordnade agentens egen konfiguration:

InställningBeskrivning
KlienthändelserVilka händelser klienten skickar (t.ex. audio, interruption, user_transcript).
TTS-ljudformat för utdataFormatet som agentens tal skickas i (t.ex. pcm_16000, ulaw_8000).
ASR-ljudformat för indataFormatet på användarljud som agenten förväntar sig (t.ex. pcm_16000, ulaw_8000).

Dessutom följer den överordnade agentens aktuella språk med — om den underordnade agenten inte stöder det används dess eget standardspråk. Konfigurationen för webhook och analys efter samtalet (inklusive utvärderingskriterier och datainsamlingsobjekt) gäller också för hela samtalet.

Ärvs inte

Alla andra konfigurationer ställs in av den underordnade agenten, inklusive men inte begränsat till:

  • Prompt, första meddelande, LLM, workflow, röst, verktyg och kunskapsbas
  • TTS-röst, modell, stabilitet och andra röstinställningar (utom agent_output_audio_format)
  • ASR-modell, kvalitet och nyckelord (utom user_input_audio_format)
  • Tur-/timeoutinställningar, språkförinställningar, maxlängd osv.

Konfigurera dessa inställningar konsekvent för varje agent i workflowet för att undvika felaktigt matchat beteende.

Transkript och chatthistorik

Hela transkriptet bevaras genom hela samtalet. Användar- och agentmeddelanden från alla föregående agenter finns kvar i chatthistoriken.

Under en överföring tas transfer_to_agent-verktygsanrop bort från historiken som är synlig för den underordnade agentens LLM, så att den kan fortsätta samtalet utan att nämna överlämningen.

Utvärdering efter samtalet

LLM:en för utvärdering efter samtalet får hela det ofiltrerade transkriptet — alla användar- och agentmeddelanden samt alla verktygsanrop, inklusive överföringen.

Enskilda meddelanden har inget agent_id-fält. För att avgöra vilken agent som skapade vilka meddelanden använder utvärderaren transfer_to_agent-verktygsanropet som gränsmarkör i transkriptet.

API-implementering

Du kan konfigurera systemverktyget transfer_to_agent när du skapar eller uppdaterar en agent via API:et.

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)