被动交互指南 · JS / 浏览器
被动交互指南 · JS / 浏览器
⚠️ JS SDK 暂未提供被动交互。 本文档如实说明现状,避免把不存在的 API 当成可用能力。
现状
JS SDK(linksoul-agentsdk)当前没有被动交互实现:
AgentSdk(src/agent-sdk.ts)不含任何被动回调类——没有Audio2LlmCallback/Asr2TtsCallback/AudioVideo2VlmCallback等 8 种回调的对应出口;- 没有
registerAudio2Llm/registerAsr2Tts等register*注册方法; - 没有被动交互所需的
PassiveCallback基类、Response应答对象或技能下发 / 打断 API。
被动交互(机器人发起 → SDK 处理 → 返回 ASR/LLM/VLM/TTS/技能)请使用 Java / Python / Android / iOS SDK。详见:
已预留但未接线的协议能力
protocol/events.ts 中预留了被动交互相关的 wire 常量,但尚未接入任何入库分发逻辑:
ts
export const AgentEventType = {
// ...
FunctionCallExpose: 'agentsdk.function_call.expose', // 预留:Function Call 透传
FunctionCallArbiter: 'agentsdk.function_call.arbiter', // 预留:Arbiter 仲裁决策回传
HistoriesExpose: 'agentsdk.histories.expose', // 预留:对话历史透传
// ...
} as const;
export const ArbiterDecision = {
Delegate: 'delegate',
Override: 'override',
Illegal: 'illegal',
} as const;
这些常量仅供协议对齐参考,不代表 JS SDK 已支持 onFunctionCall / onHistories / onArbiter。功能未落地前请勿在生产环境中依赖。
浏览器侧的替代路径
若你的 Web 端确实需要机器人端侧的语义/技能能力,可选:
- 由服务端代理桥接:服务端代理连通上游网关后,用 Java / Python SDK 的被动能力接收机器人事件,再把结果经自定义通道推给浏览器。
- 改用超视距遥操:v1.5.0 已提供的 超视距遥操,让 Web 操作员接管机器人的语音收发(本质是操作员 ↔ 机器人的实时音频链路,而非 SDK 二开的 ASR/LLM 语义处理)。
二选一的取舍由你的业务形态决定,详见 架构概述。