- 首选为访问专家智能体的程序创建一个 Key,用于身份验证。

- 使用 Key 访问专家智能体的 Rest APIs,或者使用 LangGraph SDK 访问 XpertAI 平台。
直接使用 REST API 调用智能体
调用接口是POST /api/ai/v1/chat,不是创建知识库的 /api/ai/v1/kb。
完整参数与响应。
以下请求结构对应当前服务端的 action 协议。私有部署请先确认服务版本支持此结构,并在自己的部署上完成首轮和续聊验收;旧版接口不能仅凭相同路径判断兼容。
调用前准备
- 发布要调用的数字专家,记录其 ID(
xpertId),不要填写名称或内部agentKey。 - 使用有权访问该专家的 API Key。Key 只保存在服务端环境变量中,不要放进浏览器代码。
- 设置 API 服务地址。
XPERT_BASE_URL是域名或部署前缀,不包含/api/ai,例如https://api.xpertai.cn;私有部署请替换为自己的地址。
Authorization: Bearer <API_KEY>,也可使用 x-api-key。
本教程使用 API Key;ChatKit 的临时 client secret 有有效期和绑定范围,不能当成通用 API Key。
首次发送消息
request.message.input 是输入对象,其中的 input 是用户文本,不是直接把消息字符串传给 request。
首次调用省略 request.conversationId;options.xpertId 指定已发布专家。
如专家要求额外输入变量,应按专家定义填写 request.state 或输入对象,不能只发送文本。
附件须先上传,再传文件句柄;不能直接传浏览器 File 对象。
解析 SSE 并继续对话
返回内容是text/event-stream。以下是简化的示意帧,实际事件包含更多字段:
- 保存
on_conversation_start的data.id,作为后续请求的request.conversationId。 - 文本增量的
type是message;data可以是字符串,也可以是{ "type": "text", "text": "..." }。工具、组件等结构不能直接拼接成文本。 - 生命周期事件的
type是event,事件名在 JSON 的event字段里,不能只监听 SSE 的原生event:行。 - 忽略以
:开始的心跳注释;v1 当前实现也可能把: keep-alive放在 SSE 的data:中,解析 JSON 前应跳过这种心跳。网络数据块不等于完整 SSE 帧,要处理跨块 UTF-8、多行data:和空行分隔。 - 收到
on_conversation_end后检查data.status和data.error。错误也可能通过原生event: error或on_error返回;HTTP 2xx 本身不代表执行成功。 on_interrupt表示需要确认或补充输入,不是正常回答结束。断流前没有结束事件时,也不能当成成功或盲目重发,避免重复执行工具操作。
conversationId 与 LangGraph 的 thread_id 是不同字段,不要互换。
续聊会解析会话绑定的专家;若同时填写 xpertId,它必须与会话专家或其可访问发布版本一致。
项目对话还需要相应权限,request.projectId、options.projectId 与已有会话项目不能冲突。
可运行的 Node.js 示例
下载 agent-chat.mjs,使用 Node.js 22 或更新版本运行:chat() 时传入 timeoutMs 调整。超时不证明服务器已停止执行。
此示例用于文本对话;需要工具确认或富内容展示的应用应扩展对应事件处理。
重试、中断恢复与运行中追加
这些操作沿用相同端点,通过request.action 区分;具体字段见接口参考中的各请求类型。
恢复时的
target 和 decision.payload 应来自实际中断事件及该工具的要求;不要编造执行 ID 或固定套用确认内容。
clientMessageId 不能视为服务端幂等保证。运行状态不允许该操作时,应处理服务端错误。
常见问题与验收
上线前用目标部署及实际调用身份验证:首轮能回复;第二轮复用同一会话并理解前文;无效 Key 被拒绝;模型/工具失败和断流不会误报成功。
对于带工具的专家,还应测试中断确认和对应工具行为。
使用 LangGraph SDK 调用 XpertAI 平台
XpertAI 智能体平台,可通过 LangGraph SDK (@langchain/langgraph-sdk(JS/TS SDK) / langgraph-sdk Python SDK)与其交互。
该 SDK 封装了与 LangGraph REST API 通信的核心能力,可以方便地管理助手 (assistants)、线程 (threads)、运行 (runs)、持久存储 (store) 等核心组件。
参考代码 XpertAI SDK 示例
1. 安装
确保已经安装 Node.js 环境,然后在项目中安装 SDK:http://localhost:8123(如使用 langgraph-cli 本地启动);否则需在配置时指定 API URL 或 apiKey (npm)。
2. 初始化客户端
在 JavaScript/TypeScript 中,可以这样创建一个Client 实例:
http://localhost:8123 (npm)。
3. 管理数字专家(智能体)
列出已有数字专家
获取单个数字专家
4. 创建与管理 Threads(线程)
创建新线程(空状态)
thread_id、status 等属性 (LangGraph)。
指定线程 ID
查询线程列表 & 获取状态
5. 启动运行(Runs)
可以发起对某个数字专家在线程中的运行,包括支持流式返回。启动流式返回的运行
其他运行操作示例
6. 使用 Store(持久存储)
存储会话中或任务中需要跨请求保存的数据。StoreClient 所定义 (LangGraph)。
7. XpertAI 平台集成 Tips
- 配置默认 API 地址与密钥:API 地址需要显式指定,密钥可使用环境变量
LANGGRAPH_API_KEY统一配置。 - Stream 输出到前端:适用 React 等前端,可以通过 SDK 的流式能力构建实时对话界面。
- 持久记忆:通过 Store 功能保存会话关键数据,增强智能体的记忆能力。