帮你快速理解、总结文档立即下载

接收 AI 机器人状态(客户端)

最近更新时间:2026-10-29 21:43:33
我的收藏

功能概述

TRTC AI 实时对话 2.0 提供了丰富的状态回调功能。这些状态回调通过 TRTC 的自定义消息发送,使得在客户端上可以方便地实现丰富的状态切换,例如"聆听中"、"思考中"、“说话中”等状态。
通过 实验性接口事件回调 监听 onAIConversationEvent 回调,在客户端上监听回调来接收实时 AI 状态的数据。

状态接收

连接机器人

如果需要接收字幕信息,需要先通过 实验性接口(callExperimentalAPI) 调用 connect 连接对应的 AI 机器人。
TRTCCloud.callExperimentalAPI:
{
"api": "aiConversation",
"params": {
"command": "connect",
"robotid": "ai_bot_001"
}
}
robotid 是通过 REST API CreateVoiceConversation 创建任务时填入的 AgentConfig.UserId。
连接结果通过 TRTCCloudListener.onExperimentalEvent 回调,eventName 为 onAIConversationEvent,params 为:
{
"event": "onCommand",
"robotid": "ai_bot_001",
"command": "connect",
"errCode": 0,
"errMsg": "ok"
}
errCode
含义
0
连接成功。
-2
参数错误,缺少 robotid。
2001
任务不存在或已结束。
2002
SDK 版本过低。

监听状态

完成连接之后,机器人状态会通过 onExperimentalEvent 实时回调,eventName 为 onAIConversationEvent。params.event 为 agentState。

消息格式

{
"event": "agentState",
"robotid": "ai_bot_001",
"data": {
"type": 10102,
"robotid": "ai_bot_001",
"sender": "tts_bot_001",
"payload": {
"taskid": "task-id",
"state": {
"code": 2,
"desc": "thinking"
},
"timestamp": 1751196060800
}
}
}
字段
类型
说明
event
String
固定为 agentState。
robotid
String
当前连接的 AI 机器人 UserId。
data.type
Number
消息类型,机器人状态为 10102。
data.robotid
String
AI 对话机器人 UserId(AgentConfig.UserId)。
data.sender
String
实际发送方 UserId,状态消息为对应的 TTS 机器人。
data.payload.taskid
String
AI 对话任务 ID。
data.payload.state.code
Number
当前状态码,见下表。
data.payload.state.desc
String
状态描述。
data.payload.timestamp
Number
状态切换的 UTC 时间戳,单位毫秒。
说明:
data.payload(类型:Object,说明:状态负载)与 data.payload.state(类型:Object,说明:状态对象)为嵌套对象。
state.code
含义
0
空闲
1
聆听中
2
思考中
3
说话中
4
被打断
5
已说完