被动回调 & 响应 API
被动回调 & 响应 API
回调/响应对照表
| 回调类 | 响应类 | onRequest 签名 |
|---|---|---|
Audio2LlmCallback | Audio2LlmResponse | (agentId, eventId, flag, buf, param, response) |
Audio2TtsCallback | Audio2TtsResponse | (agentId, eventId, itemId, flag, buf, param, response) |
Asr2LlmCallback | Asr2LlmResponse | (agentId, eventId, text, param, response) |
Asr2TtsCallback | Asr2TtsResponse | (agentId, eventId, text, param, response) |
AsrVideo2VlmCallback | AsrVideo2VlmResponse | (agentId, eventId, flag, text, video, param, response) |
AsrVideo2TtsCallback | AsrVideo2TtsResponse | (agentId, eventId, flag, text, video, param, response) |
AudioVideo2VlmCallback | AudioVideo2VlmResponse | (agentId, eventId, flag, data, param, response) |
AudioVideo2TtsCallback | AudioVideo2TtsResponse | (agentId, eventId, flag, data, param, response) |
各 Response 可用方法
| Response | ASR | LLM | VLM | TTS | Skill | Interrupt |
|---|---|---|---|---|---|---|
| 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)
| 字段 | 类型 | 说明 |
|---|---|---|
source | String | function call 来源 |
policy | String | 处理策略标识 |
type | String | function call 类型 |
value | String | 主体取值 |
param | Map<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 值 | 语义 |
|---|---|---|
DELEGATE | delegate | 委派智能体默认链路处理 |
OVERRIDE | override | 二开应用接管、覆盖默认行为 |
ILLEGAL | illegal | 非法 / 兜底值 |
事件类型
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 合并);模块全集见 机器人端侧状态参考 |
onFunctionCall(agentId, eventId, functionCall, response) | Function Call 透传(v1.5.0 新增);functionCall 为 FunctionCallInfo |
onHistories(agentId, eventId, List<HistoryInfo> histories) | 对话历史透传(v1.5.0 新增);HistoryInfo 字段见下表 |
HistoryInfo(com.agibot.aiem.sdk.HistoryInfo,v1.5.0)
| 字段 | 类型 | 说明 |
|---|---|---|
timestamp | long | 时间戳,用于排序 |
query | String | 用户侧输入 |
answer | String | 智能体侧回复 |
complete | boolean | 该轮是否完整结束 |
eventId | String | 对应会话事件 ID,用于去重 |
skill | SkillInfo | 该轮历史携带的技能信息(type / value),可为空 |
GreetResponse 方法
| 方法 | 说明 |
|---|---|
onGreetVlmDelta(eventId, text) | VLM 流式片段 |
onGreetVlmDone(eventId) | VLM 流式结束 |
onGreetTtsDelta(eventId, audioBase64) | TTS 音频流式片段——audioBase64 是合成音频字节经 base64 编码后的字符串 |
onGreetTtsDone(eventId) | TTS 音频输出结束 |
onError(eventId, code, msg) | 应答异常 |