Web SDK

更新时间:
复制 MD 格式

JVS Web SDK是无影提供的JavaScript SDK,用于在Web应用中集成Agent管理、会话消息、技能管理、积分管理、模型配置和云桌面流化等能力。

概述

JVS Web SDK是无影提供的JavaScript SDK,用于在Web应用中集成Agent管理、会话消息、技能管理、积分管理、模型配置和云桌面流化等能力。通过JVS Web SDK,您可以快速构建基于无影Agent的智能应用,实现与Agent的对话交互、技能扩展、模型切换等功能。

功能特性

JVS Web SDK提供以下核心能力:

功能模块

说明

Agent管理

查询Agent列表、创建和管理会话、发送文本/图片/文件消息、订阅实时事件、获取历史消息。

技能管理

查询技能分类和已安装技能、启用或禁用技能、安装或卸载技能。

积分管理

查询积分套餐和已绑定的Agent、查询积分使用情况。

模型配置

查询Agent的可用模型列表、为会话设置指定的LLM模型。

云桌面流化

启动和管理云桌面或云应用的流化会话(仅浏览器环境)。

运行环境

JVS Web SDK同时支持浏览器和Node.js两种运行环境。

运行环境

模块格式

说明

浏览器

ESM(.mjs)

支持所有功能,包括云桌面流化。

Node.js

CJS(.js)/ ESM(.mjs)

支持除云桌面流化外的所有功能。提供TypeScript类型定义文件(.d.ts)。

SDK架构

JVS Web SDK采用全局单例模式,通过Client类作为入口,按需构建不同的功能管理器(Manager)。

SDK的整体架构如下:

Client(全局单例)
├── AgentManager          // 多Agent管理:Agent列表、会话、消息、事件
├── SingleAgentManager    // 单Agent简化模式:自动关联Agent和会话
├── SkillManager          // 技能管理:分类查询、安装卸载、启用禁用
├── CreditManager         // 积分管理:套餐查询、使用统计
├── ModelManager          // 模型配置:模型查询、会话模型切换
└── AspManager            // 流化管理:云桌面/云应用流化会话(仅浏览器)

快速开始

浏览器环境(ESM)

<script type="module">
  import { Client } from './wuying-sdk.mjs';
</script>

Node.js环境

// ESM模块
import { Client } from '@aliyun/wuying-sdk';

// CommonJS模块
const { Client } = require('@aliyun/wuying-sdk');

使用AuthCode初始化SDK。AuthCode由服务端生成后传递给前端使用。

import { Client } from './wuying-sdk.mjs';

// 创建Client实例(全局单例)
const client = Client.create({
  authCode: 'your-auth-code',
});

// 构建所需的Manager
const agentManager = await client.buildAgentManager({});

// 查询Agent列表
const agentList = await agentManager.listAgents({});
console.log('Agent数量:', agentList?.agents.length);

// 使用完毕后释放资源
await client.close();
说明

AuthCode应由服务端生成后传递给前端,请勿在前端代码中直接使用AK/SK。

1. Client

ClientSDK的入口类,采用全局单例模式。通过Client.create()创建实例后,可按需构建各类功能管理器。

1.1 ClientOptions

参数

类型

必填

说明

authCode

string

鉴权码,由服务端生成。

1.2 UserConfig

可选的用户配置参数。

参数

类型

必填

说明

timeout

number

请求超时时间,单位为毫秒。默认值:30000。

maxRetries

number

最大重试次数。默认值:3。

logger

Logger

自定义日志对象。

clientId

string

客户端标识。默认值:'sdk-client'。

imDataDir

string

消息数据存储目录。默认值:'/openim_db'。仅Node.js环境生效。

imPlatformId

number

消息平台标识。默认值:1。仅Node.js环境生效。

1.3 方法列表

方法

说明

Client.create(options, userConfig?)

创建或获取全局单例Client实例。

buildAgentManager(ctx)

构建多Agent管理器。

buildSingleAgentManager(ctx)

构建单Agent管理器,自动关联Agent和会话。

buildSkillManager(ctx)

构建技能管理器。

buildCreditManager(ctx)

构建积分管理器。

buildModelManager(ctx)

构建模型配置管理器。

buildAspManager(ctx)

构建流化管理器(仅浏览器环境)。

subscribeEvent(callback, ...opts)

订阅全局事件。

listSubscriptions()

列出当前所有活跃的事件订阅。

logout()

清理状态,保留实例可重用。

close()

彻底销毁实例并释放所有内部资源。

初始化示例

import { Client } from './wuying-sdk.mjs';

const client = Client.create({
  authCode: 'your-auth-code',
}, {
  timeout: 30000,
  maxRetries: 3,
});

// 构建所需的Manager
const agentManager = await client.buildAgentManager({});
const skillManager = await client.buildSkillManager({});

// 使用完毕后释放资源
await client.close();

2. AgentManager

Agent、多会话统一管理器,提供Agent查询、会话管理、消息收发和事件订阅等功能。

2.1 Agent操作

listAgents(ctx, req?)

查询Agent列表。

参数

类型

必填

说明

pageNum

number

页码。默认值:1。

pageSize

number

每页数量。默认值:20。

keyword

string

搜索关键字,用于过滤Agent。

queryFotaUpdate

boolean

是否查询FOTA升级信息。设置为true时,返回的Agent对象中fotaUpdate字段会被填充。

返回AgentList对象,包含agents(Agent数组)和total(总数)。

2.2 会话操作

listSessions(ctx, req?)

查询会话列表。

参数

类型

必填

说明

agentID

string

Agent ID,按指定Agent过滤会话。

offset

number

偏移量。默认值:0。

count

number

每页数量。默认值:20。

keyword

string

搜索关键字。

createSession(ctx, req)

创建一个新会话。

参数

类型

必填

说明

agentID

string

要创建会话的Agent ID。

返回Session对象。

dismissSession(ctx, req)

解散一个已存在的会话。该操作不可恢复。

参数

类型

必填

说明

sessionID

string

要解散的会话ID。必须传入纯数字格式的ID(例如"3539096907"),可直接使用Session对象的groupId属性。

警告

会话解散后不可恢复,请谨慎操作。

2.3 消息操作

方法

说明

sendTextMessage(ctx, req)

发送文本消息。需指定sessionIDcontent。

sendTextMessageWithSync(ctx, req)

发送文本消息并等待Agent响应。可设置超时时间(默认60秒)。

sendImageMessage(ctx, req)

发送图片消息。需指定sessionIDimagePath。

sendFileMessage(ctx, req)

发送文件消息。需指定sessionIDfilePath。

sendMergerMessage(ctx, req)

发送合并消息。需指定sessionID、titlesummaries。

sendCompositeMessage(ctx, req)

发送复合消息,可同时包含文本、图片和文件。

getSessionHistoryMessageList(ctx, req)

获取会话的历史消息列表,支持分页。

2.4 事件订阅

subscribeEvent(ctx, req, callback)

订阅指定会话的事件。返回EventHandle对象,调用其unsubscribe()方法可取消订阅。

参数

类型

必填

说明

sessionID

string

要订阅事件的会话ID。

eventTypes

EventType[]

要订阅的事件类型列表。不指定则订阅所有类型。

2.5 完整示例

import { Client, EventType } from './wuying-sdk.mjs';

async function agentExample() {
  const client = Client.create({ authCode: 'your-auth-code' });

  try {
    const agentMgr = await client.buildAgentManager({});

    // 查询Agent列表
    const agentList = await agentMgr.listAgents({}, { pageSize: 20 });
    if (!agentList?.agents.length) {
      console.error('没有可用的Agent');
      return;
    }
    const agent = agentList.agents[0];

    // 创建会话
    const session = await agentMgr.createSession({}, { agentID: agent.id });

    // 订阅事件
    const handle = agentMgr.subscribeEvent(
      {},
      { sessionID: session.id, eventTypes: [EventType.Message, EventType.StreamMessage] },
      (event) => {
        if (event.type === EventType.Message) {
          console.log('收到消息:', event.message?.content);
        }
      }
    );

    // 发送消息
    await agentMgr.sendTextMessage({}, {
      sessionID: session.id,
      content: '你好',
    });

    // 发送消息并等待响应
    const response = await agentMgr.sendTextMessageWithSync({}, {
      sessionID: session.id,
      content: '请帮我查询天气',
      timeoutSeconds: 30,
    });
    console.log('Agent回复:', response?.messages.map(m => m.content));

    // 取消订阅
    handle.unsubscribe();
  } finally {
    await client.close();
  }
}

2.6 FOTA升级

FOTA(Firmware Over-The-Air)升级功能用于为底层实例为云桌面的Agent执行固件升级。

查询FOTA信息

通过listAgents方法并设置queryFotaUpdate: true,返回的Agent对象中fotaUpdate字段会被填充。当fotaUpdate.newFotaVersion不为空时,表示该Agent存在可用的FOTA升级。

AgentFotaUpdate类型

字段

类型

说明

newFotaVersion

string

可升级的目标FOTA版本。不为空时表示有可用升级。

currentFotaVersion

string

当前FOTA版本。

approveFotaUpdate(ctx, req)

执行FOTA升级。

参数

类型

必填

说明

resourceId

string

目标资源ID,可通过agent.runtimeResourceInfo.resourceId获取。

appVersion

string

目标升级版本,可通过agent.fotaUpdate.newFotaVersion获取。

regionId

string

地域ID。默认值:cn-shanghai。升级不在默认地域的Agent时,必须显式传入正确的regionId。

FOTA升级示例

const agentMgr = await client.buildAgentManager({});

// 查询Agent列表并获取FOTA信息
const result = await agentMgr.listAgents({}, { queryFotaUpdate: true });

for (const agent of result?.agents ?? []) {
  if (agent.fotaUpdate?.newFotaVersion) {
    console.log(
      `Agent ${agent.name} 有可用升级: ${agent.fotaUpdate.currentFotaVersion} → ${agent.fotaUpdate.newFotaVersion}`
    );

    // 执行升级
    await agentMgr.approveFotaUpdate({}, {
      resourceId: agent.runtimeResourceInfo.resourceId,
      appVersion: agent.fotaUpdate.newFotaVersion,
    });
    console.log(`Agent ${agent.name} FOTA升级已提交`);
  }
}

2.7 更新Agent实例

updateAgentInstance(ctx, req)

更新Agent底层实例的配置(如实例规格、镜像等)。

参数

类型

必填

说明

resourceId

string

Agent底层资源ID。可从agent.runtimeResourceInfo.resourceId获取。

3. SingleAgentManager

简化的单Agent管理器。自动关联一个Agent和对应的会话,无需在每次操作时手动指定sessionID,适合只使用单个Agent的场景。

方法

说明

agent()

获取关联的Agent对象。

groupID()

获取会话组ID。

sendTextMessage(ctx, req)

发送文本消息,无需指定sessionID。

sendTextMessageWithSync(ctx, req)

发送消息并等待响应。

sendImageMessage(ctx, req)

发送图片消息。

sendFileMessage(ctx, req)

发送文件消息。

subscribeEvent(ctx, req, callback)

订阅会话事件。

getSessionHistoryMessageList(ctx, req)

获取历史消息。

使用示例

const sam = await client.buildSingleAgentManager({});

console.log('Agent:', sam.agent().name);

// 直接发送消息,无需指定sessionID
const msg = await sam.sendTextMessage({}, { content: '你好' });
console.log('发送成功:', msg?.id);

4. SkillManager

技能管理器,提供技能分类查询、已安装技能查询、技能启用/禁用和安装/卸载等功能。

4.1 方法列表

方法

说明

listCategories(ctx)

获取技能分类列表。

listInstalledSkills(ctx, req)

查询指定桌面已安装的技能列表。需指定desktopID。可选参数:categoryID(按分类过滤)、skillName(按技能名称过滤)。

listAgentAuthedSkills(ctx, req)

查询Agent授权的技能列表。需指定desktopID。

setSkillEnabled(ctx, req)

启用或禁用技能。自动等待操作完成并返回最终结果。

entInstallSkills(ctx, req)

安装技能。自动等待操作完成并返回最终结果。

entUninstallSkills(ctx, req)

卸载技能。自动等待操作完成并返回最终结果。

4.2 使用示例

const skillMgr = await client.buildSkillManager({});

// 获取技能分类
const categories = await skillMgr.listCategories({});
console.log('分类:', categories.map(c => c.categoryName));

// 查询已安装技能
const installed = await skillMgr.listInstalledSkills({}, {
  desktopID: 'ecd-xxx',
});

// 启用技能(自动等待操作完成)
const tasks = await skillMgr.setSkillEnabled({}, {
  desktopID: 'ecd-xxx',
  skillNames: ['agent-browser'],
  enabled: true,
});
for (const task of tasks) {
  console.log(`任务 ${task.taskId}: ${task.operationStatus}`);
}

// 安装技能
const installTasks = await skillMgr.entInstallSkills({}, {
  desktopID: 'ecd-xxx',
  skillIds: ['skill-id-001'],
});

5. CreditManager

积分管理器,提供积分套餐查询和积分使用信息查询功能。

5.1 方法列表

方法

说明

describeCreditPackageAgents(ctx, req?)

查询积分套餐绑定的Agent列表。可选参数:agentType(Agent类型过滤)、agentIds(指定Agent ID列表)、fillAgent(是否填充Agent详细信息)。返回结果包含每个AgentusedCredit、totalCreditexpiredTime。

describeCreditUsageInfo(ctx, req?)

查询积分使用信息。可选参数:usageType(使用类型)、instanceIds(实例ID列表)、agentType(Agent类型)、agentIds(Agent ID列表)、fillAgent(是否填充Agent详细信息)。

5.2 使用示例

const creditMgr = await client.buildCreditManager({});

// 查询积分套餐
const agents = await creditMgr.describeCreditPackageAgents({});
for (const agent of agents) {
  console.log(`Agent ${agent.agentId}: 已用 ${agent.usedCredit}/${agent.totalCredit}, 过期时间 ${agent.expiredTime}`);
}

// 查询积分使用信息
const usage = await creditMgr.describeCreditUsageInfo({}, {
  usageType: 'AGENT',
});
for (const item of usage.usageInfoList) {
  const data = item.usageInfo;
  console.log(`${item.usageInfoKey}: ${data.totalUsedCredit}/${data.totalCredit}`);
}

6. ModelManager

模型配置管理器,提供Agent实例模型配置查询和会话模型设置功能。

6.1 方法列表

方法

说明

getAgentInstanceModelConfig(ctx, req)

获取Agent实例的模型配置,包含可用的模型提供商和LLM列表。

setChannelGroupModel(ctx, req)

为指定会话设置LLM模型。

6.2 getAgentInstanceModelConfig请求参数

参数

类型

必填

说明

agentInstanceId

string

Agent实例ID。

agentProvider

string

Agent类型。默认值:OpenClaw。

agentPlatform

string

Agent平台。取值:ENTERPRISE、ENTERPRISE_JVS。默认值:ENTERPRISE。

channelSessionId

string

会话ID,用于获取特定会话的模型配置。

6.3 setChannelGroupModel请求参数

参数

类型

必填

说明

agentInstanceId

string

Agent实例ID。

groupId

string

会话组ID。

providerName

string

模型提供商ID,例如"bailian"。

llmCode

string

模型ID,例如"qwen3.5-plus"。

6.4 使用示例

const modelMgr = await client.buildModelManager({});

// 查询模型配置
const config = await modelMgr.getAgentInstanceModelConfig({}, {
  agentInstanceId: 'inst-xxx',
});

if (config) {
  console.log('默认模型:', config.defaultModel);
  for (const provider of config.modelProviderList) {
    console.log(`提供商: ${provider.name}`);
    for (const llm of provider.llmInfoList) {
      console.log(`  - ${llm.name} (${llm.llmCode})`);
    }
  }
}

// 切换会话模型
await modelMgr.setChannelGroupModel({}, {
  agentInstanceId: 'inst-xxx',
  groupId: 'grp-xxx',
  providerName: 'bailian',
  llmCode: 'qwen3.5-plus',
});

7. AspManager

流化会话管理器,用于管理云桌面或云应用的流化会话生命周期。仅支持浏览器环境。

7.1 方法列表

方法

说明

startAspStream(ctx, req)

启动流化会话。

stopAspStream()

停止流化会话并释放资源。

getAspStreamSession()

获取当前流化会话信息。

7.2 startAspStream请求参数

参数

类型

必填

说明

resourceId

string

资源ID。

containerElementId

string

条件必填

容器元素ID。inline模式下必填。

streamType

AspStreamType

流化类型。取值:desktop(云电脑)、application(云应用)。默认值:desktop。

regionId

string

地域ID。默认值:cn-shanghai。

openType

string

打开方式。取值:inline(内嵌)、newTab(新标签页)。默认值:inline。

containerUrl

string

流化容器页面URL。用于自定义流化页面地址。

width

string

宽度。默认值:'100%'。

height

string

高度。默认值:'100%'。

7.3 AspStreamStatus枚举

流化会话状态枚举,可通过getAspStreamSession().status获取。

说明

creating

创建中。

connecting

连接中。

connected

已连接。

disconnected

已断开。

error

错误。

7.4 使用示例

const aspMgr = await client.buildAspManager({});

// 启动云桌面流化(inline模式)
await aspMgr.startAspStream({}, {
  resourceId: 'desktop-resource-id',
  streamType: 'desktop',
  containerElementId: 'stream-container',
  openType: 'inline',
  width: '100%',
  height: '100%',
});

// 查询流化会话状态
const session = aspMgr.getAspStreamSession();
console.log('状态:', session?.status);

// 停止流化
await aspMgr.stopAspStream();

8. 事件类型

SDK支持以下事件类型,可用于subscribeEvent方法的事件过滤。

事件类型

说明

Message

收到完整消息。

StreamMessage

收到流式消息片段。

SessionStart

会话已开始。

SessionFinish

会话已结束。

SessionFailed

会话失败。

AgentStatus

Agent状态变更。

SyncProgress

同步进度更新。

Connecting

正在建立连接。

Connected

连接已建立。

ConnectFailed

连接失败。

Disconnect

连接已断开。

Error

发生错误。

Status

通用状态变更通知。

TokenExpired

认证Token已过期。

KickedOffline

被踢下线(其他设备登录)。

8.1 全局事件订阅

通过client.subscribeEvent()可订阅全局事件,支持以下过滤选项:

过滤选项

说明

withEventTypes(...types)

按事件类型过滤。

withSessionIDs(...ids)

按会话ID过滤。

withContentKeywords(...keywords)

按消息内容关键字过滤。

withSenderPattern(pattern)

按发送者模式过滤。

withTimeRange(start, end)

按时间范围过滤事件。

withMetadataFilter(key, value)

按元数据键值对过滤。

withCustomFilter(fn)

自定义过滤函数。

withAsyncDelivery(async)

设置是否异步投递事件。

withCallback(callback)

设置事件回调函数。

withCallbackTimeout(ms)

设置回调超时时间。

import { EventType, withEventTypes, withSessionIDs } from './wuying-sdk.mjs';

// 订阅所有消息事件
const handle = client.subscribeEvent(
  (event) => { console.log('消息:', event.message?.content); },
  withEventTypes(EventType.Message, EventType.StreamMessage)
);

// 取消订阅
handle.unsubscribe();

9. 异步调用模式

所有Manager方法默认使用await同步等待返回。如果需要异步模式(方法立即返回null,结果通过回调传递),可使用WithAsync

import { WithAsync } from './wuying-sdk.mjs';

// 异步模式:方法立即返回null
const result = await agentManager.sendTextMessage(
  {},
  { sessionID: 'xxx', content: 'hello' },
  WithAsync((msg, err) => {
    if (err) console.error('发送失败:', err);
    else console.log('消息已发送:', msg?.id);
  })
);
console.log(result); // null

10. 错误处理

SDK定义了以下错误类型,均继承自SDKError基类。

错误类

错误码

说明

NetworkError

NETWORK_ERROR

网络错误,可重试。

TimeoutError

TIMEOUT

请求超时,可重试。

AuthError

AUTH_ERROR

认证错误,请检查AuthCode。

PermissionError

PERMISSION_ERROR

权限不足。

BusinessError

BUSINESS_ERROR

业务逻辑错误。

RateLimitError

RATE_LIMIT_ERROR

请求频率超限,可重试。

ServerError

SERVER_ERROR

服务端错误,可重试。

APIError

API_ERROR

API调用错误,包含HTTP状态码。

使用isRetryable(error)函数判断错误是否可重试。NetworkError、TimeoutError、RateLimitErrorServerError均为可重试错误。

import { AuthError, TimeoutError, NetworkError, isRetryable } from './wuying-sdk.mjs';

try {
  const agents = await agentMgr.listAgents({});
} catch (err) {
  if (err instanceof AuthError) {
    console.error('认证失败,请检查AuthCode');
  } else if (err instanceof TimeoutError) {
    console.error('请求超时');
  } else if (isRetryable(err)) {
    console.log('可重试的错误,建议重试');
  }
}

11. 基础类型

11.1 ExecutionContext

所有Manager方法的第一个参数均为ExecutionContext,用于传递执行上下文信息。

字段

类型

必填

说明

signal

AbortSignal

用于取消请求的信号对象。

traceId

string

请求追踪ID,用于日志和调试。

timeout

number

请求超时时间(毫秒)。

11.2 枚举类型

SDK提供以下枚举类型:

枚举

取值

说明

MessageRole

user、assistant、system

消息角色。

MessageType

text、image、file

消息内容类型。

AgentStatus

ready、building、error、unknown

Agent运行状态。

AgentOnlineStatus

online、offline

Agent在线状态。

SessionStatus

active、closed、expired

会话状态。

AgentPlatform

ENTERPRISE、ENTERPRISE_JVS

Agent平台类型。

11.3 Agent

Agent对象包含以下主要字段:

字段

类型

说明

id

string

Agent唯一标识。

name

string

Agent名称。

type

string

Agent类型。

status

AgentStatus

Agent运行状态。

imId

string

AgentIM通讯标识。

avatarUrl

string

Agent头像URL。

description

string

Agent描述信息。

runtimeId

string

运行时实例ID。

runtimeType

string

运行时类型。

regionId

string

所属地域ID。

osType

string

操作系统类型。

agentPlatform

string

Agent平台类型。取值:ENTERPRISE、ENTERPRISE_JVS。

runtimeResourceInfo

object

运行时资源信息,包含resourceId、resourceStatus、resourceName等字段。仅listAgents返回时填充。

fotaUpdate

AgentFotaUpdate

FOTA升级信息。仅在listAgents设置queryFotaUpdate: true时填充。

onlineStatus

AgentOnlineStatus

Agent在线状态。

11.4 Session

会话对象包含以下字段:

字段

类型

说明

id

string

会话唯一标识。

agentId

string

所属AgentID。

userId

string

会话所属用户ID。

groupId

string

会话组ID(纯数字格式)。用于dismissSession等操作。

conversationId

string

对话ID。

status

SessionStatus

会话状态。

createdAt

Date

会话创建时间。

11.5 Message

消息对象包含以下主要字段:

字段

类型

说明

id

string

消息唯一标识。

sessionId

string

所属会话ID。

role

MessageRole

消息角色。

type

MessageType

消息类型。

sender

string

消息发送者标识。

timestamp

Date

消息时间戳。

content

string

消息文本内容。

textElem

TextElem

文本消息元素,包含文本内容详情。

streamTextElem

StreamTextElem

流式文本消息元素,包含流式片段内容。

imageElem

ImageElem

图片消息元素。

fileElem

FileElem

文件消息元素。

isFinal

boolean

是否为流式消息的最终片段。

roundID

string

对话轮次ID。

11.6 SyncMessageResponse

sendTextMessageWithSync方法的返回类型,包含以下字段:

字段

类型

说明

roundID

string

对话轮次ID。

messages

Message[]

同步返回的消息列表。

11.7 Event

事件对象包含以下字段:

字段

类型

说明

type

EventType

事件类型。

message

Message | null

关联的消息对象(消息类事件时有值)。

source

EventSource

事件来源信息。

timestamp

Date

事件发生时间。

sessionID

string

关联的会话ID。

metadata

Record<string, string>

事件附加元数据。

12. 模型便捷方法

SDK提供一组便捷方法,可直接在Agent、SessionSkill对象上操作,无需手动传递ID参数。这些方法是对应Manager方法的语法糖,内部自动提取对象的ID进行调用。

12.1 Agent便捷方法

方法

说明

agentListSessions(agent, ctx)

获取指定Agent的会话列表。

agentCreateSession(agent, ctx)

为指定Agent创建新会话。

agentListInstalledSkills(agent, ctx)

获取指定Agent已安装的技能列表。

12.2 Session便捷方法

方法

说明

sessionSendTextMessage(session, ctx, content)

发送文本消息(异步,不等待回复)。

sessionSendTextMessageSync(session, ctx, content, timeout?)

发送文本消息并同步等待完整回复。

sessionSendImageMessage(session, ctx, imagePath)

发送图片消息。

sessionSendFileMessage(session, ctx, filePath)

发送文件消息。

sessionGetHistoryMessageList(session, ctx)

获取会话历史消息列表。

sessionSubscribeEvent(session, ctx, callback)

订阅指定会话的事件。

12.3 Skill便捷方法

方法

说明

skillEnable(skill, ctx)

启用指定技能。

skillDisable(skill, ctx)

禁用指定技能。

12.4 使用示例

import { agentListSessions, agentCreateSession, sessionSendTextMessage, sessionSendTextMessageSync, sessionSubscribeEvent, skillEnable } from './wuying-sdk.mjs';

// Agent便捷方法
const agent = agentList.agents[0];
const sessions = await agentListSessions(agent, {});
const newSession = await agentCreateSession(agent, {});

// Session便捷方法:发送消息并同步等待回复
const response = await sessionSendTextMessageSync(newSession, {}, '你好,请介绍一下你自己');
console.log('回复:', response?.messages.map(m => m.content).join(''));

// Session便捷方法:订阅事件
const handle = sessionSubscribeEvent(newSession, {}, (event) => {
  console.log('收到事件:', event.type, event.message?.content);
});

// Skill便捷方法
const skills = await agentListInstalledSkills(agent, {});
await skillEnable(skills[0], {});