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