Web SDK常见问题

更新时间:
复制 MD 格式

Client是单例吗?

是。Client.create()采用全局单例模式,多次调用返回同一实例。如果需要重新初始化,请先调用close()销毁当前实例。

如何释放Client资源?

SDK提供两种资源释放方式:

方法

行为

适用场景

close()

彻底销毁实例,释放所有内部资源。实例不可重用。

页面卸载或应用退出时。

logout()

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

用户登出后需要切换账号重新登录的场景。

SingleAgentManager和AgentManager有什么区别?

维度

AgentManager

SingleAgentManager

管理范围

多Agent、多会话

单Agent、单会话

会话指定

每次操作需手动指定agentID或sessionID

自动关联,无需手动指定

适用场景

需要同时管理多个Agent或多个会话

只使用一个Agent的简单场景

ASP流化会话支持Node.js吗?

不支持。流化会话(AspManager)依赖浏览器DOM环境来渲染流化画面,因此仅在浏览器环境中可用。在Node.js环境中,您可以使用除AspManager外的所有其他Manager。

哪些错误可以自动重试?

以下错误类型为可重试错误:

错误类型

说明

NetworkError

网络连接错误。

TimeoutError

请求超时。

RateLimitError

请求频率超限。

ServerError

服务端错误。

您可以使用isRetryable(error)函数快速判断一个错误是否可以重试:

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

try {
  await agentMgr.sendTextMessage({}, { sessionID: 'xxx', content: '你好' });
} catch (err) {
  if (isRetryable(err)) {
    // 可安全重试
  }
}

如何获取Agent的在线状态?

调用listAgents()后,返回的Agent对象中包含onlineStatus字段,取值为online或offline。示例:

const agentList = await agentMgr.listAgents({});
for (const agent of agentList.agents) {
  console.log(`${agent.name}: ${agent.onlineStatus}`);
  // 输出示例: "我的Agent: online"
}