LinkSoul 智能体二开 SDK (JS / 浏览器)

LinkSoul 智能体二开 SDK (JS / 浏览器)

🆕 v1.5.0:浏览器端超视距遥操(Teleop)+ 扩展技能(ExtSkill)

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

JS SDK 是面向浏览器的 TypeScript SDK(ESM),与 Java v1.5.0 共享同一套 wire 协议。Web 操作员调用 TeleopSession.enter → startAudio(param) → sendAudio → finishAudio → exit 接管机器人语音交互;通过 sdk.createExtSkillSession({agentId}) → query() 拉取技能清单 / invoke(extSkillId, input) 触发扩展技能,回执在 sdk.on('message') 里按 AgentEventType.ExtSkill* 判读。详见 超视距遥操指南、扩展技能指南。

⚠️ 浏览器无法直接鉴权(务必先读)

浏览器的 WebSocket API 不能设置自定义请求头,因此不能像原生 SDK 那样在握手时带 X-App-Id / X-Signature。JS SDK 的鉴权通过 authProvider 回调完成:由你的同源服务端用 appSecret 计算 HMAC-SHA256 签名、连上游网关,再把一个本地代理 URL 交回浏览器。appSecret 绝不出现在前端代码里。详见 快速开始 · 服务端代理。

连接信息

项目值
上游 WebSocket 地址wss://open.agibot.com/api/V1/open-portal/app/wss/agent-sdk
appId / appKey / appSecret通过灵心开放平台创建应用获取(appSecret 只放服务端)
包名 / 版本linksoul-agentsdk / 1.5.0
模块格式ESM(import { ... } from 'linksoul-agentsdk')
运行环境现代浏览器(安全上下文 https / localhost);ws 依赖仅用于 Node 侧测试
ts
import { createAgentSdk } from 'linksoul-agentsdk';

const sdk = createAgentSdk(appId, {
  authProvider: async () => {
    // 向同源服务端换取已签名的代理 URL
    const res = await fetch('/api/ws-auth', { method: 'POST', /* ... */ });
    const { url } = await res.json();
    return { url };
  },
});
await sdk.connect();

快速导航

文档说明
快速开始安装 / 导入 + authProvider + 服务端签名代理 + 完整接入代码
超视距遥操指南v1.5.0:Web 操作员通过 SDK 接管机器人语音交互
超视距遥操 APIv1.5.0:createAgentSdk / AgentSdk / TeleopSession / 事件常量 TypeScript 签名
超视距遥操示例v1.5.0:登录 → 连接 → TRRO 视频拉流 → 麦克风推流完整流程
扩展技能指南v1.5.0:通过 ExtSkillSession 查询与触发机器人扩展技能
扩展技能 APIv1.5.0:ExtSkillSession / ExtSkillOptions / 事件常量 TypeScript 签名
扩展技能示例v1.5.0:query 拉清单 → invoke 触发 → 监听结果完整流程
CHANGELOGJS 版 SDK 版本变更记录

指南(Guide)

文档说明
架构概述浏览器鉴权(服务端代理)、心跳转换契约、重连机制
错误处理重连、下行 ACK 判读、常见问题排查
被动交互指南⚠️ 暂未提供——如实说明现状与替代路径
主动交互指南⚠️ 暂未提供——任务流未实现,对比 ExtSkill
语义技能参考⚠️ 暂未提供下发能力;技能全集见原生语言
机器人端侧状态参考⚠️ 暂未提供监听;22 模块定义见原生语言
任务流 payload 协议⚠️ 暂未提供任务流;协议全文见原生语言

API 参考

文档说明
AgentSdk APIAgentSdk / createAgentSdk TypeScript 签名(遥操 + 扩展技能)
枚举 / 常量参考AgentEventType / AgentPolicy / ArbiterDecision
被动回调 & 响应 API⚠️ 暂未提供;仅留协议常量说明
主动请求 API⚠️ 暂未提供;任务流未实现
超视距遥操 APIv1.5.0:TeleopSession / 事件常量 TypeScript 签名
扩展技能 APIv1.5.0:ExtSkillSession / 类型签名

示例(Examples)

文档说明
超视距遥操示例v1.5.0:登录 → 连接 → 视频拉流 → 麦克风推流
扩展技能示例v1.5.0:query → invoke → 监听结果
被动交互示例⚠️ 暂未提供
主动交互示例⚠️ 暂未提供

其他

文档说明
常见问题排除手册 & QA现象 → 排查 → 处理 + QA
名词解释JS 特有约束 / SDK 术语 / 模型 / 交互模式

交互模式

text
┌──────────────────────────────────────────────────────────────┐
│                       灵心平台                                 │
├──────────────────────────────────────────────────────────────┤
│  机器人 ──音频/视频/文本──→ LinkskyGateway ──→ SDK回调        │  被动交互
│  机器人 ←──ASR/LLM/TTS──── LinkskyGateway ←── SDK响应         │
│                                                              │
│  SDK主动请求 ──→ LinkskyGateway ──→ 机器人                    │  主动交互
│  SDK接收结果 ←── LinkskyGateway ←── 机器人                    │
│                                                              │
│  浏览器操作员音频 ─(经服务端代理)→ LinkskyGateway ──→ 机器人   │  超视距遥操(v1.5.0)
│  操作员 ←──enter/exit ack── LinkskyGateway ←── 机器人         │
│                                                              │
│  SDK query/invoke ──→ LinkskyGateway ──→ 机器人扩展技能        │  扩展技能(v1.5.0)
│  SDK ←── queryResult/invokeResult ── LinkskyGateway ←── 机器人│
└──────────────────────────────────────────────────────────────┘
  • JS SDK 当前已开放超视距遥操 + 扩展技能两条路径;被动 / 主动交互请使用 Java / Python / Android / iOS SDK;
  • 超视距遥操:createAgentSdk → sdk.connect() → sdk.createTeleopSession({agentId}) → enter() → startAudio(param) → sendAudio(base64) → finishAudio() → exit();enter/exit/keepalive 的 ACK 在 sdk.on('message') 里按 type 判读。
  • 扩展技能:sdk.createExtSkillSession({agentId}) → query() 拉取技能清单 / invoke(extSkillId, input) 触发技能;回执在 sdk.on('message') 里按 AgentEventType.ExtSkillQuery / ExtSkillQueryResult / ExtSkillInvoke / ExtSkillInvokeAck / ExtSkillInvokeResult 判读。

集成方式

bash
# npm / pnpm / yarn 三选一
npm install linksoul-agentsdk
ts
import { createAgentSdk, AgentEventType } from 'linksoul-agentsdk';

若使用打包器(Vite / webpack / esbuild),直接 import 即可(ESM)。完整接入模板、服务端签名代理见 快速开始。

开发包下载

未接入 npm 私服的离线场景,可直接下载 tarball 后本地安装:

文件类型大小
linksoul-agentsdk-1.5.0.tgznpm tarball(ESM)11 KB
bash
# 本地安装(也可写进 package.json 的 file: 依赖)
npm install ./linksoul-agentsdk-1.5.0.tgz