认证说明
所有API接口都需要在请求头中包含有效的认证令牌:
Authorization: Bearer <token>获取token方式参见 平台api概要
当认证失败时,请求响应状态码为200,但返回以下响应:
{
"code": 401,
"msg": "未登录",
"data": []
}API列表
获取用户智能体列表(支持分页)
获取用户智能体列表(支持分页)
获取当前用户的智能体列表,支持分页查询。包含智能体的基本信息和配置状态
https://xrobo.qiniu.com/xiaozhi/agent/list基本信息
请求参数
请求头
请求示例
响应示例
状态码
分页规则说明
默认行为:
limit和cursor都不传:返回全量列表(兼容旧版本),nextCursor为null- 只传
cursor:limit默认为 20 limit <= 0:自动修正为 20limit > 100:自动修正为 100
游标说明:
nextCursor为null表示无更多数据- 游标格式为32位小写十六进制字符串(如:
4f3a8c7e0b6f4b5c9d3d0b8a2a1f0c9d)
分页使用示例
示例1:获取全量列表(兼容模式)
GET /xiaozhi/agent/list返回全量列表,nextCursor 为 null
示例2:首页查询
GET /xiaozhi/agent/list?limit=20获取前20条记录
示例3:翻页查询
GET /xiaozhi/agent/list?limit=20&cursor=4f3a8c7e0b6f4b5c9d3d0b8a2a1f0c9d从指定游标位置继续获取20条记录
示例4:参数自动修正
GET /xiaozhi/agent/list?limit=0
# 服务端自动修正为 limit=20
GET /xiaozhi/agent/list?limit=1000
# 服务端自动修正为 limit=100示例5:无效游标的错误响应
GET /xiaozhi/agent/list?limit=20&cursor=invalid-cursor{
"code": 500,
"msg": "无效的游标参数",
"data": null
}示例6:数据已全部获取
{
"code": 0,
"msg": "success",
"data": [],
"nextCursor": null
}搜索智能体
搜索智能体
支持按设备 MAC 地址或智能体 ID 搜索智能体
https://xrobo.qiniu.com/xiaozhi/agent/search基本信息
请求参数
请求头
请求示例
响应示例
状态码
搜索类型与匹配规则
- mac(设备 MAC 地址):采用精确匹配,查询绑定该 MAC 设备且归属于当前用户的智能体
- agent_id(智能体 ID):采用精确匹配,按智能体 ID 查询归属于当前用户的智能体
📌 说明:搜索结果目前为全量返回,响应体中的 nextCursor 固定为 null,无需处理游标分页。
INFO
创建智能体时可指定大语言模型和意图模型;未传模型ID时使用默认模板配置,也可在创建后通过更新接口修改
创建智能体
创建智能体
创建一个新的智能体,可在创建时指定大语言模型和意图模型。未指定的模型使用默认模板配置,返回data为新智能体的ID,可用于更新、删除等api
https://xrobo.qiniu.com/xiaozhi/agent基本信息
请求参数
请求头
请求示例
响应示例
状态码
更新智能体
更新智能体
更新指定智能体的配置信息,包括模型配置、系统提示词、记忆设置、插件函数等
https://xrobo.qiniu.com/xiaozhi/agent/{id}基本信息
请求参数
请求头
请求示例
响应示例
状态码
INFO
更新智能体时,只需传递需要修改的字段,未传递的字段可以不传
LLM 参数说明
extra.llm 下的标准参数(temperature、top_p 等)越界会被自动夹取、不报错;extra.llm.custom_params.body 下的自定义参数会按所选模型的 schema 校验,非法参数直接拒绝。支持哪些自定义参数取决于所选模型、且会随模型调整而变化,具体 key/类型请以模型 schema 查询结果为准,详见 大语言模型 API 的「大模型自定义参数(custom_params)」一节。
记忆模型说明
memModelId 用于配置智能体的记忆模式。详细说明及系统行为请参见 长期记忆 API。
删除智能体
删除智能体
删除指定的智能体,此操作不可逆,请谨慎使用
https://xrobo.qiniu.com/xiaozhi/agent/{id}基本信息
请求参数
请求头
请求示例
响应示例
状态码
WARNING
删除操作不可逆,请确认后再执行
切换设备关联智能体
Base URL: https://xrobo.qiniu.com/v1
将设备切换到目标智能体。对于已正式注册的设备,默认会把该设备的全部聊天历史迁移至目标智能体;可通过请求体禁止迁移。若设备尚未注册、但存在预注册记录,则仅更新预注册设备绑定的智能体,不涉及聊天记录迁移。
响应 HTTP 状态码当前统一为 200 OK;请以响应体的 code 判断业务是否成功。code = 0 表示成功,非 0 表示失败。
切换设备关联智能体
切换设备到目标智能体;已注册设备默认迁移该 MAC 下全部聊天历史,预注册设备仅更新绑定关系
https://xrobo.qiniu.com/v1/devices/{mac_address}/agent/{agent_id}基本信息
请求参数
请求头
请求示例
响应示例
状态码
请求体必填
请求体必须存在,即使使用默认行为也必须传递 {}。请求体缺失或不是合法 JSON 时,接口返回业务错误 code: 400。
请求体
{
"disable_chat_history_migration": false
}disable_chat_history_migration 为可选布尔值,默认 false:
| 值 | 已注册设备行为 | 预注册设备行为 |
|---|---|---|
false 或省略 | 切换设备绑定,并将该 MAC 下全部聊天记录迁移至目标智能体。 | 仅更新预注册设备绑定,不迁移聊天记录。 |
true | 仅切换设备绑定,原聊天记录保留在原智能体名下。 | 仅更新预注册设备绑定,不迁移聊天记录。 |
切换且迁移聊天历史(默认)
curl -X PUT 'https://xrobo.qiniu.com/v1/devices/AB:CA:A9:60:D8:48/agent/03fe2c47ec8c47a28c7f382a47b4f838' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{}'切换但保留原聊天历史归属
curl -X PUT 'https://xrobo.qiniu.com/v1/devices/AB:CA:A9:60:D8:48/agent/03fe2c47ec8c47a28c7f382a47b4f838' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"disable_chat_history_migration":true}'权限和行为说明
| 情况 | 行为 |
|---|---|
| 目标智能体不属于当前用户 | 拒绝切换。 |
| 已注册设备不属于当前用户 | 拒绝切换。 |
| 已注册设备的原智能体不属于当前用户 | 拒绝切换。 |
| 预注册设备不属于当前用户 | 拒绝切换。 |
| 已注册和预注册表中均找不到设备 | 返回设备不存在。 |
常见失败响应
{
"code": 400,
"msg": "invalid request body",
"reqid": "request-id",
"data": null
}code | msg | 场景 |
|---|---|---|
400 | invalid mac address / invalid mac address. format: ... | MAC 地址为空或格式不合法。 |
400 | invalid agent id | 目标智能体 ID 为空。 |
400 | invalid request body | 没有请求体或 JSON 格式不正确。 |
401 | authorization header required / invalid token | 未认证或认证凭证无效。 |
403 | token is expired | 登录 Token 已过期。 |
403 | permission denied | 当前用户无该设备或预注册设备的操作权限。 |
404 | device not found | 已注册和预注册记录中均不存在该 MAC。 |
非 0 | 智能体不存在或无智能体权限 | 目标智能体不存在、不归属当前用户,或原智能体归属校验失败。 |
599 | 具体错误信息 | 服务端内部异常。 |
获取智能体详情
获取智能体详情
获取指定智能体的配置详情,包括基础信息、模型配置、提示词、知识库绑定、设备数量和最近连接时间
https://xrobo.qiniu.com/xiaozhi/agent/{id}