打断智能体
在不同场景下,需要支持不同的方式来打断智能体说话。目前支持两种打断形式,且两种打断组合使用。
打断方式 | 打断说明 |
---|---|
语音打断 | 若开启语音打断,则智能体正在说话时,持续监听用户说话状态及识别说话内容,若用户开始说话,则会打断停止智能体说话(停止本轮LLM请求、TTS请求),并开始下一轮回答。若关闭语音打断,则直到智能体说话结束,才开始下一轮:监听用户说话状态及说话内容,并开始回答。 |
手动打断 | 通过 API ,即可直接打断智能体本轮内容 |
常见场景
语音通话模式 | 打断组合 | 常见场景 |
---|---|---|
自然语音聊天 | ✅开启语音打断 ❌不用手动打断 | AI虚拟陪聊 AI智能对话语音助手 AI客服 |
Push-to-talk的对讲机模式 | ❌关闭语音打断 ✅使用手动打断 | 异常嘈杂的展会环境 研讨会中短暂发言 狼人杀等有规定时间的发言 |
使用步骤
开启或关闭语音打断
在创建智能体实例时可通过设置 AdvancedConfig.InterruptMode
参数控制语音打断开或者关。
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
InterruptMode | Number | 否 | 智能体回复时被用户语音打断的模式:
|
手动打断
调用打断智能体实例状态接口(InterruptAgentInstance)时传入创建智能体实例接口返回的 AgentInstanceId
,即可立即打断智能体讲话。
获取智能体被打断的事件通知
1
配置回调地址
请联系 ZEGO 技术支持配置用于接收 AI Agent 后台回调的地址。
2
启用回调接收
创建智能体实例 时,请求参数 CallbackConfig.Interrupted
设置为 1。
3
接收回调
当智能体被打断时,AI Agent 后台会向上述配置的地址发送打断事件通知(Event
为Interrupted
),内容示例如下:
Untitled
{
"AppId": 123456789,
"Nonce": "abcdd22113",
"Timestamp": 1747033950524,
"Sequence": 1921825797275873300,
"Signature": "XXXXXXX",
"Event": "Interrupted",
"RoomId": "90000001237",
"AgentInstanceId": "1921825671047294976",
"AgentUserId": "apitest689_agent",
"Data": {
"Round": 1481651956,
"Reason": 1
}
}
1
Reason
(被打断的原因)解释如下:
参数 | 类型 | 说明 |
---|---|---|
Reason | Number | 被打断的原因: |