智能体转接

根据定义的条件,在 ElevenLabs 智能体之间无缝转接用户。

概述

智能体转接让 ElevenLabs 智能体能在满足特定条件时,将正在进行的对话转交给另一指定智能体。这支持多层对话 workflow,不同智能体可处理特定任务或不同复杂程度的问题。

例如,初始智能体(协调智能体)可处理一般咨询,再根据对话上下文将通话转给专业智能体。转接也可嵌套:

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)
智能体转接层级示例

用途:根据用户需求,在专业 AI 智能体之间转接对话。

触发条件:LLM 应在以下情况调用此工具:

  • 用户请求需要专业知识或其他智能体能力
  • 当前智能体无法妥善处理该查询
  • 对话流程表明需要其他类型的智能体

参数:

  • reason(字符串,可选):转接智能体的原因
  • agent_number(整数,必填):要转接到的智能体的从零开始编号(基于已配置的转接规则)

函数调用格式:

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

实现方式:定义将条件映射到特定智能体 ID 的转接规则。配置当前智能体可转接到哪些智能体。在转接配置中,智能体以从零开始的编号表示。

启用智能体转接

使用 transfer_to_agent 系统工具配置智能体转接。

1

添加转接工具

在 Agent 标签页的智能体配置中,选择 transfer_to_agent 系统工具以启用智能体转接。添加工具时,选择“转接至 AI 智能体”。

添加转接工具
2

配置工具描述(可选)

可提供自定义描述,引导 LLM 判断何时触发转接。留空时,将使用包含已定义转接规则的默认描述。

转接工具描述
3

定义转接规则

配置转接至其他智能体的具体规则。每条规则需指定:

  • 智能体:对话要转接到的目标智能体。
  • 条件:应进行转接的情况说明(例如“用户询问账单详情”“用户请求产品 X 的技术支持”)。
  • 转接前延迟(毫秒):转接前的最短延迟时间(毫秒)。默认为 0,即立即转接。
  • 转接消息:转接过程中播放的可选自定义消息。留空时将静默转接。
  • 启用首条消息:转接后,目标智能体是否应播放首条消息。默认关闭。

LLM 会根据这些条件及工具描述,决定何时转接以及转接至哪个智能体(按编号)。

转接规则配置

请确保创建该智能体的用户账户,对转接规则中指定的所有目标智能体至少拥有查看者权限。

转接行为

发生转接时,父智能体(发起转接的智能体)会将部分配置值传递给 子智能体(接收对话的智能体),而其他配置会完全重置。

配置继承

无论子智能体自身配置如何,父智能体都会覆盖每个子智能体的以下值:

设置说明
客户端事件客户端发送哪些事件(例如 audio、interruption、user_transcript)。
TTS 输出音频格式发送智能体语音的格式(例如 pcm_16000、ulaw_8000)。
ASR 输入音频格式智能体预期接收的用户音频格式(例如 pcm_16000、ulaw_8000)。

此外,父智能体当前使用的语言也会一并传递;如果子智能体不支持该语言,则会回退到自身默认语言。通话后 webhook 和分析配置(包括评估标准和数据收集项)同样适用于整个对话。

不会继承的配置

其他所有配置均由子智能体设置,包括但不限于:

  • 提示词、首条消息、LLM、workflow、音色、工具和知识库
  • TTS 音色、模型、稳定性及其他音色设置(agent_output_audio_format 除外)
  • ASR 模型、质量和关键词(user_input_audio_format 除外)
  • 轮次/超时、语言预设、最长时长等

请在 workflow 中为每个智能体保持一致的这些设置,避免出现行为不匹配。

转录文本和聊天记录

完整转录文本会在整个对话中保留。此前每个智能体的用户和智能体消息都会保留在聊天记录中。

转接期间,面向子智能体 LLM 的历史记录会移除 transfer_to_agent 工具调用,因此它会继续对话,而不会提及转接。

通话后评估

通话后评估 LLM 会收到完整、未过滤的转录文本,包括所有用户和智能体消息,以及包括转接在内的所有工具调用。

单条消息不带有 agent_id 字段。为确定各条消息由哪个智能体生成,评估器会将 transfer_to_agent 工具调用作为转录文本中的边界标记。

API 实现

通过 API 创建或更新智能体时,可以配置 transfer_to_agent 系统工具。

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)