被动回调 & 响应 API

被动回调 & 响应 API

回调/响应对照表

回调类响应类onRequest 签名
Audio2LlmCallbackAudio2LlmResponse(agentId, eventId, flag, buf, param, response)
Audio2TtsCallbackAudio2TtsResponse(agentId, eventId, itemId, flag, buf, param, response)
Asr2LlmCallbackAsr2LlmResponse(agentId, eventId, text, param, response)
Asr2TtsCallbackAsr2TtsResponse(agentId, eventId, text, param, response)
AsrVideo2VlmCallbackAsrVideo2VlmResponse(agentId, eventId, flag, text, video, param, response)
AsrVideo2TtsCallbackAsrVideo2TtsResponse(agentId, eventId, flag, text, video, param, response)
AudioVideo2VlmCallbackAudioVideo2VlmResponse(agentId, eventId, flag, data, param, response)
AudioVideo2TtsCallbackAudioVideo2TtsResponse(agentId, eventId, flag, data, param, response)

各 Response 可用方法

ResponseASRLLMVLMTTSSkillInterrupt
Audio2LlmResponse✓✓✓✓
Audio2TtsResponse✓✓✓✓✓
Asr2LlmResponse✓✓✓
Asr2TtsResponse✓✓✓✓
AsrVideo2VlmResponse✓✓✓
AsrVideo2TtsResponse✓✓✓✓
AudioVideo2VlmResponse✓✓✓✓
AudioVideo2TtsResponse✓✓✓✓✓

所有 Response 均支持 onError(eventId, errorCode, errorMsg)。

Function Call 与 Arbiter(v1.5.0)

⚠️ 尚未上线:本能力为 v1.5.0-SNAPSHOT 开发中特性,接口与协议可能调整,正式发布前请勿用于生产环境。

v1.5.0 在被动交互链路上新增 Function Call 分发与 Arbiter 仲裁,接口织入既有的 8 组回调 / 响应类。使用流程见 被动交互指南 · Function Call 开放与 Arbiter 仲裁。

回调方法(8 种回调类均有)

java
public void onFunctionCall(String agentId, String eventId, FunctionCallInfo functionCall, <XxxResponse> response)

默认空实现,重载后可接收网关透传的 function call;<XxxResponse> 为该回调类对应的响应类型。

FunctionCallInfo(com.agibot.aiem.sdk.FunctionCallInfo)

字段类型说明
sourceStringfunction call 来源
policyString处理策略标识
typeStringfunction call 类型
valueString主体取值
paramMap<String, Object>附带参数

响应方法(8 种 Response 类均有)

java
public void onArbiter(String eventId, String decision, AgentParam arbParam)

回传仲裁决策,SDK 下发 agentsdk.function_call.arbiter。decision 取自 ArbiterDecision:

枚举(com.agibot.aiem.sdk.enums.ArbiterDecision)wire 值语义
DELEGATEdelegate委派智能体默认链路处理
OVERRIDEoverride二开应用接管、覆盖默认行为

事件类型

agentsdk.function_call.expose(网关 → SDK,触发 onFunctionCall)/ agentsdk.function_call.arbiter(SDK → 网关,由 onArbiter 发出)。见 枚举参考。

基类共享方法(PassiveCallback)

每个回调类都继承自 PassiveCallback,下列方法可按需重载(不重载使用默认日志实现):

方法触发时机
onRobotOnline(agentId, agentMeta)机器人上线
onRobotOffline(agentId)机器人下线
onFaceInfo(agentId, eventId, param)识别到人脸 / 声纹 UID(v1.4.0 开放)
onVideoFrame(agentId, eventId, flag, buf, isKeyFrame, localTs, param)透传视频帧(flag=2 H264,flag=3 图片)
onGreetSignal(agentId, eventId, param, GreetResponse response)打招呼信令(v1.4.0 合并)
onState(agentId, eventId, stateName, stateValue)机器人状态推送(v1.4.0 合并);模块全集见 机器人端侧状态参考
onHistories(agentId, eventId, List<HistoryInfo> histories)对话历史透传(v1.5.0 新增);HistoryInfo 字段见下表

HistoryInfo(com.agibot.aiem.sdk.HistoryInfo,v1.5.0)

字段类型说明
timestamplong时间戳,用于排序
queryString用户侧输入
answerString智能体侧回复
completeboolean该轮是否完整结束
eventIdString对应会话事件 ID,用于去重

GreetResponse 方法

方法说明
onGreetVlmDelta(eventId, text)VLM 流式片段
onGreetVlmDone(eventId)VLM 流式结束
onGreetTtsDelta(eventId, audioBase64)TTS 音频流式片段——audioBase64 是合成音频字节经 base64 编码后的字符串
onGreetTtsDone(eventId)TTS 音频输出结束
onError(eventId, code, msg)应答异常