Vai alla navigazione

Trasferimento dell'agente

Trasferisci facilmente l'utente tra gli agenti ElevenLabs in base a condizioni definite.

Panoramica

Il trasferimento da agente ad agente consente a un agente ElevenLabs di passare la conversazione in corso a un altro agente designato quando vengono soddisfatte condizioni specifiche. In questo modo puoi creare workflow conversazionali multilivello, in cui agenti diversi gestiscono attività specifiche o diversi livelli di complessità.

Ad esempio, un agente iniziale (Orchestrator) potrebbe gestire le richieste generiche e poi trasferire la chiamata a un agente specializzato in base al contesto della conversazione. I trasferimenti possono anche essere annidati:

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)
Esempio di gerarchia di trasferimento tra agenti

Scopo: trasferire 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 diverso
  • L’agente attuale non è in grado di gestire adeguatamente la query
  • Il flusso della conversazione indica la necessità di un tipo di agente diverso

Parametri:

  • reason (stringa, facoltativo): il motivo del trasferimento dell’agente
  • agent_number (intero, obbligatorio): numero con indice a partire da zero dell’agente a cui trasferire la conversazione (in base alle regole di trasferimento configurate)

Formato della chiamata di funzione:

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

Implementazione: definisci regole di trasferimento che associano le condizioni a ID di agenti specifici. Configura gli agenti a cui l’agente attuale può trasferire la conversazione. Nella configurazione del trasferimento, gli agenti sono indicati da numeri con indice a partire da zero.

Abilitare il trasferimento tra agenti

Il trasferimento tra agenti si configura tramite lo strumento di sistema transfer_to_agent.

1

Aggiungi lo strumento di trasferimento

Abilita il trasferimento tra agenti selezionando lo strumento di sistema transfer_to_agent nella configurazione del tuo agente, nella scheda Agent. Quando aggiungi uno strumento, scegli “Transfer to AI Agent”.

Aggiungere lo strumento di trasferimento
2

Configura la descrizione dello strumento (facoltativo)

Puoi fornire una descrizione personalizzata per indicare all’LLM quando attivare un trasferimento. Se la lasci vuota, verrà utilizzata una descrizione predefinita che include le regole di trasferimento definite.

Descrizione dello strumento di trasferimento
3

Definisci le regole di trasferimento

Configura le regole specifiche per il trasferimento ad altri agenti. Per ogni regola, specifica:

  • Agente: l’agente di destinazione a cui trasferire la conversazione.
  • Condizione: una descrizione in linguaggio naturale delle circostanze in cui deve avvenire il trasferimento (ad esempio, “L’utente chiede informazioni sui dettagli di fatturazione”, “L’utente richiede assistenza tecnica per il prodotto X”).
  • Ritardo prima del trasferimento (millisecondi): il ritardo minimo (in millisecondi) prima che avvenga il trasferimento. Il valore predefinito è 0 per un trasferimento immediato.
  • Messaggio di trasferimento: un messaggio personalizzato facoltativo da riprodurre durante il trasferimento. Se lo lasci vuoto, il trasferimento avverrà in modo silenzioso.
  • Abilita il primo messaggio: indica se l’agente a cui viene trasferita la conversazione deve riprodurre il suo primo messaggio dopo il trasferimento. Per impostazione predefinita è disattivato.

L’LLM utilizzerà queste condizioni, insieme alla descrizione dello strumento, per decidere quando e a quale agente (per numero) trasferire la conversazione.

Configurazione delle regole di trasferimento

Assicurati che l’account utente che crea l’agente disponga almeno delle autorizzazioni di visualizzazione per tutti gli agenti di destinazione specificati nelle regole di trasferimento.

Comportamento del trasferimento

Quando avviene un trasferimento, l’agente padre (quello che avvia il trasferimento) passa alcuni valori di configurazione all’agente figlio (quello che riceve la conversazione), mentre altri vengono completamente reimpostati.

Ereditarietà della configurazione

L’agente padre sovrascrive i seguenti valori per ogni agente figlio, indipendentemente dalla configurazione dell’agente figlio:

ImpostazioneDescrizione
Eventi clientGli eventi inviati dal client (ad es. audio, interruption, user_transcript).
Formato audio di output TTSIl formato in cui viene inviato il parlato dell’agente (ad es. pcm_16000, ulaw_8000).
Formato audio di input ASRIl formato dell’audio utente previsto dall’agente (ad es. pcm_16000, ulaw_8000).

Inoltre, viene mantenuta la lingua corrente dell’agente padre: se l’agente figlio non la supporta, viene usata la sua lingua predefinita. Anche la configurazione del webhook post-chiamata e dell’analisi (inclusi i criteri di valutazione e gli elementi di raccolta dati) si applica all’intera conversazione.

Non ereditato

Tutte le altre configurazioni vengono impostate dall’agente figlio, incluse, a titolo esemplificativo:

  • Prompt, primo messaggio, LLM, workflow, voce, strumenti e knowledge base
  • Voce TTS, modello, stabilità e altre impostazioni vocali (tranne agent_output_audio_format)
  • Modello ASR, qualità e parole chiave (tranne user_input_audio_format)
  • Turno/timeout, preimpostazioni della lingua, durata massima ecc.

Configura queste impostazioni in modo coerente per ogni agente nel workflow, per evitare comportamenti non uniformi.

Trascrizione e cronologia chat

La trascrizione completa viene mantenuta per l’intera conversazione. I messaggi dell’utente e dell’agente di ogni agente precedente rimangono nella cronologia chat.

Durante un trasferimento, le chiamate allo strumento transfer_to_agent vengono rimosse dalla cronologia visibile all’LLM dell’agente figlio, che continua quindi la conversazione senza menzionare il passaggio di consegne.

Valutazione post-chiamata

L’LLM che esegue la valutazione post-chiamata riceve la trascrizione completa e non filtrata: tutti i messaggi dell’utente e dell’agente, nonché tutte le chiamate agli strumenti, incluso il trasferimento.

I singoli messaggi non contengono un campo agent_id. Per determinare quale agente ha prodotto ciascun messaggio, il valutatore usa la chiamata allo strumento transfer_to_agent come indicatore di confine nella trascrizione.

Implementazione API

Puoi configurare lo strumento di sistema transfer_to_agent quando crei o aggiorni un agente tramite l’API.

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)