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 接管机器人语音交互 |
| 超视距遥操 API | v1.5.0:createAgentSdk / AgentSdk / TeleopSession / 事件常量 TypeScript 签名 |
| 超视距遥操示例 | v1.5.0:登录 → 连接 → TRRO 视频拉流 → 麦克风推流完整流程 |
| 扩展技能指南 | v1.5.0:通过 ExtSkillSession 查询与触发机器人扩展技能 |
| 扩展技能 API | v1.5.0:ExtSkillSession / ExtSkillOptions / 事件常量 TypeScript 签名 |
| 扩展技能示例 | v1.5.0:query 拉清单 → invoke 触发 → 监听结果完整流程 |
| CHANGELOG | JS 版 SDK 版本变更记录 |
指南(Guide)
| 文档 | 说明 |
|---|---|
| 架构概述 | 浏览器鉴权(服务端代理)、心跳转换契约、重连机制 |
| 错误处理 | 重连、下行 ACK 判读、常见问题排查 |
| 被动交互指南 | ⚠️ 暂未提供——如实说明现状与替代路径 |
| 主动交互指南 | ⚠️ 暂未提供——任务流未实现,对比 ExtSkill |
| 语义技能参考 | ⚠️ 暂未提供下发能力;技能全集见原生语言 |
| 机器人端侧状态参考 | ⚠️ 暂未提供监听;22 模块定义见原生语言 |
| 任务流 payload 协议 | ⚠️ 暂未提供任务流;协议全文见原生语言 |
API 参考
| 文档 | 说明 |
|---|---|
| AgentSdk API | AgentSdk / createAgentSdk TypeScript 签名(遥操 + 扩展技能) |
| 枚举 / 常量参考 | AgentEventType / AgentPolicy / ArbiterDecision |
| 被动回调 & 响应 API | ⚠️ 暂未提供;仅留协议常量说明 |
| 主动请求 API | ⚠️ 暂未提供;任务流未实现 |
| 超视距遥操 API | v1.5.0:TeleopSession / 事件常量 TypeScript 签名 |
| 扩展技能 API | v1.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.tgz | npm tarball(ESM) | 11 KB |
bash
# 本地安装(也可写进 package.json 的 file: 依赖)
npm install ./linksoul-agentsdk-1.5.0.tgz