Transferencia de agente

Transfiere al usuario sin interrupciones entre agentes de ElevenLabs según condiciones definidas.

Descripción general

La transferencia entre agentes permite que un agente de ElevenLabs pase la conversación en curso a otro agente designado cuando se cumplan condiciones específicas. Esto permite crear flujos de conversación multinivel en los que distintos agentes se encargan de tareas específicas o de diferentes niveles de complejidad.

Por ejemplo, un agente inicial (orquestador) podría gestionar consultas generales y transferir después la llamada a un agente especializado según el contexto de la conversación. Las transferencias también pueden anidarse:

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)
Ejemplo de jerarquía de transferencia de agentes

Objetivo: Transferir conversaciones entre agentes de IA especializados según las necesidades del usuario.

Condiciones de activación: El LLM debe llamar a esta herramienta cuando:

  • La solicitud del usuario requiere conocimientos especializados o capacidades de otro agente
  • El agente actual no puede gestionar adecuadamente la consulta
  • El flujo de la conversación indica que se necesita otro tipo de agente

Parámetros:

  • reason (string, opcional): El motivo de la transferencia de agente
  • agent_number (integer, obligatorio): Número con índice cero del agente al que transferir (según las reglas de transferencia configuradas)

Formato de llamada de función:

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

Implementación: Define reglas de transferencia que asignen condiciones a ID de agentes específicos. Configura a qué agentes puede transferir el agente actual. Los agentes se identifican mediante números con índice cero en la configuración de transferencia.

Activar la transferencia de agentes

La transferencia de agentes se configura mediante la herramienta del sistema transfer_to_agent.

1

Añade la herramienta de transferencia

Activa la transferencia de agentes seleccionando la herramienta del sistema transfer_to_agent en la configuración de tu agente, dentro de la pestaña Agent. Al añadir una herramienta, elige “Transfer to AI Agent”.

Añadir herramienta de transferencia
2

Configura la descripción de la herramienta (opcional)

Puedes proporcionar una descripción personalizada para indicar al LLM cuándo debe activar una transferencia. Si la dejas en blanco, se utilizará una descripción predeterminada que incluye las reglas de transferencia definidas.

Descripción de la herramienta de transferencia
3

Define las reglas de transferencia

Configura las reglas específicas para transferir a otros agentes. Para cada regla, especifica:

  • Agente: El agente de destino al que se transferirá la conversación.
  • Condición: Una descripción en lenguaje natural de las circunstancias en las que debe realizarse la transferencia (por ejemplo, “El usuario pregunta sobre detalles de facturación”, “El usuario solicita asistencia técnica para el producto X”).
  • Retraso antes de la transferencia (milisegundos): El retraso mínimo (en milisegundos) antes de que se produzca la transferencia. De forma predeterminada, es 0 para una transferencia inmediata.
  • Mensaje de transferencia: Un mensaje personalizado opcional que se reproduce durante la transferencia. Si se deja en blanco, la transferencia se realizará en silencio.
  • Activar primer mensaje: Indica si el agente transferido debe reproducir su primer mensaje después de la transferencia. De forma predeterminada, está desactivado.

El LLM utilizará estas condiciones, junto con la descripción de la herramienta, para decidir cuándo y a qué agente (por número) transferir.

Configuración de reglas de transferencia

Asegúrate de que la cuenta de usuario que crea el agente tenga al menos permisos de visualización para cualquier agente de destino especificado en las reglas de transferencia.

Comportamiento de la transferencia

Cuando se produce una transferencia, el agente principal (el que inicia la transferencia) transmite determinados valores de configuración al agente secundario (el que recibe la conversación), mientras que otros se restablecen por completo.

Herencia de configuración

El agente principal sobrescribe los siguientes valores en cada agente secundario, independientemente de la configuración propia de este:

AjusteDescripción
Eventos del clienteQué eventos envía el cliente (p. ej., audio, interruption, user_transcript).
Formato de audio de salida de TTSFormato en el que se envía la voz del agente (p. ej., pcm_16000, ulaw_8000).
Formato de audio de entrada de ASRFormato de audio del usuario que espera el agente (p. ej., pcm_16000, ulaw_8000).

Además, se conserva el idioma actual del agente principal; si el agente secundario no lo admite, se usa su propio idioma predeterminado. La configuración del webhook y del análisis posterior a la llamada (incluidos los criterios de evaluación y los elementos de recopilación de datos) también se aplica a toda la conversación.

No se hereda

El resto de configuraciones las establece el agente secundario, incluidas, entre otras:

  • Prompt, primer mensaje, LLM, workflow, voz, herramientas y base de conocimientos
  • Voz de TTS, modelo, estabilidad y otros ajustes de voz (excepto agent_output_audio_format)
  • Modelo de ASR, calidad y palabras clave (excepto user_input_audio_format)
  • Turno/tiempo de espera, ajustes predefinidos de idioma, duración máxima, etc.

Configura estos ajustes de forma coherente en cada agente del workflow para evitar comportamientos incoherentes.

Transcripción e historial de chat

La transcripción completa se conserva durante toda la conversación. Los mensajes del usuario y del agente de todos los agentes anteriores permanecen en el historial de chat.

Durante una transferencia, las llamadas a la herramienta transfer_to_agent se eliminan del historial visible para el LLM del agente secundario, para que continúe la conversación sin mencionar el traspaso.

Evaluación posterior a la llamada

El LLM evaluador posterior a la llamada recibe la transcripción completa sin filtrar: todos los mensajes del usuario y del agente, y todas las llamadas a herramientas, incluida la transferencia.

Los mensajes individuales no incluyen un campo agent_id. Para determinar qué agente generó cada mensaje, el evaluador utiliza la llamada a la herramienta transfer_to_agent como marcador de límite en la transcripción.

Implementación mediante API

Puedes configurar la herramienta del sistema transfer_to_agent al crear o actualizar un agente mediante la 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)