配置 API 接入
概述
API 接入用于让 Super App、BI 后端等第三方应用调用当前智能体。应用可以发起和继续对话、读取会话历史与交付文件,也可以查询运行轨迹、停止运行及提交回复反馈。
配置入口位于智能体配置页的「发布与集成 > 渠道入口」。本文介绍接入配置和最小调用流程;完整接口参数、响应与文件上传方式,可在「API 接入」区域点击「查看接入文档」查看。
使用前提与执行身份
- 已准备好目标智能体,当前账号有权编辑该智能体。
- 创建接入的账号已配置业务所需的 BI 凭据和连接器,并能在 DecideX 中正常使用该智能体。
- 第三方应用能够安全保存调用凭证,并为用户提供稳定的用户标识。
API 会话使用创建接入账号的身份、BI 凭据和记忆执行。建议使用专用账号创建接入,并为该账号配置所需连接器和数据权限。
「外部用户身份验证」用于关联外部用户身份及会话记录,不会把执行权限切换为该外部用户的权限。第三方应用需要自行控制哪些用户可以调用,以及向哪些用户展示返回的数据。
创建 API 接入
-
打开目标智能体的配置页,进入「发布与集成 > 渠道入口」,在「API 接入」区域点击添加按钮。
-
填写「接入名称」,建议包含应用名称及环境,例如「经销商经营门户 - 生产环境」。
-
按下表配置浏览器来源、身份验证与执行详情,点击「创建 API 接入」。

| 配置项 | 填写方式与作用 |
|---|---|
| 接入名称 | 用于区分第三方应用及环境 |
| 浏览器允许来源(Origin 白名单) | 浏览器直连时填写发起请求页面的 Origin,每行一个。格式为协议、域名及端口,不包含路径,例如 https://portal.example.com 或 http://localhost:3000。填写第三方页面的来源,而不是 API 接口地址 |
| 外部用户身份验证 | 默认「关闭(仅调用凭证)」;选择「Galaxy Token 验证」后,创建会话还需携带可验证的 Galaxy 用户 Token |
| 允许查看执行详情 | 默认不开启。开启后向调用方开放所属会话的操作说明、命令、输出和错误,可能包含业务数据及运行环境信息;不返回原始协议包和内部推理 |
| 加入白名单 | 将页面显示的「当前 DecideX 页面 Origin」加入列表;接入其他站点时,仍需填写该站点的实际 Origin |
推荐由第三方应用后端保存凭证并调用 DecideX,浏览器只请求第三方应用后端。不携带 Origin 的后端请求不使用浏览器来源白名单;浏览器直连时,请求 Origin 必须与白名单匹配。
生成与保存调用凭证
- 在创建的 API 接入下点击「生成凭证」。
- 点击「复制」,立即将凭证保存到第三方应用后端的安全配置中。关闭展示窗口后,无法再次查看该凭证的完整明文。
- 在请求中通过
Authorization: Bearer <调用凭证>携带凭证。
一个接入可以生成多个凭证。若未保存明文,可重新生成凭证并更新调用方配置;不再使用的旧凭证应吊销。
调用凭证代表该 API 接入的调用权限。不要将长期凭证放入公开文档、截图、前端代码、URL 或日志。浏览器直连仅适合受控内部场景,Origin 白名单不能代替用户身份验证和应用侧权限控制。
配置外部用户身份
调用会话接口时,第三方应用需提供稳定的外部用户 ID。DecideX 按 API 接入和外部用户 ID 隔离会话,同一用户续聊或查询历史时应保持 ID 一致。
| 请求头 | 用途 |
|---|---|
Authorization | 填写 Bearer <调用凭证>,用于识别并授权 API 接入 |
Decidex-External-User-Id | 第三方应用侧的稳定用户 ID,例如 portal-user-10086;不是 DecideX 用户 ID |
Decidex-External-User-Token | 开启「Galaxy Token 验证」后,创建会话时提供 Galaxy 签发的当前用户 JWT;续聊已有会话不需要此请求头 |
开启「Galaxy Token 验证」时,Token 中的 sub 必须与 Decidex-External-User-Id 一致。系统验证后为用户建立本地身份并关联会话记录,但会话仍以创建接入账号的身份与权限执行。
外部用户 ID 应由可信后端确定,不应允许普通用户随意替换为他人的 ID。查询模型列表不涉及用户会话,只需调用凭证,无需外部用户 ID。
验证 API 调用
在「API 接入」区域点击「查看接入文档」,按当前环境的接口说明接入。下面以同步对话为例,验证新建会话和续聊。
创建会话并发送首条消息
将 DECIDEX_BASE_URL 设置为当前 DecideX 部署地址,将 SERVICE_AGENT_TOKEN 设置为已安全保存的调用凭证。以下示例适用于关闭外部用户身份验证的接入;开启时需另加 Decidex-External-User-Token 请求头。
curl -sS "$DECIDEX_BASE_URL/api/service-agent/chat" \
-H "Authorization: Bearer $SERVICE_AGENT_TOKEN" \
-H "Decidex-External-User-Id: portal-user-10086" \
-H "Content-Type: application/json" \
-d '{
"message": "你能帮我完成哪些业务分析?",
"newSession": { "title": "业务分析咨询" }
}'
接口完成本轮回答后,返回 sessionId、runId、用户消息、智能体回复和交付文件等信息。检查 assistantMessage.content 是否正常,并保存 sessionId 用于续聊。
示例未指定模型,系统优先使用智能体配置的有效默认模型,否则使用平台默认模型。需要指定模型及推理档位时,先通过 GET /api/service-agent/models 查询可用选项。
继续已有会话
保持相同 API 接入和外部用户 ID,将返回的 sessionId 放入下一次请求。
curl -sS "$DECIDEX_BASE_URL/api/service-agent/chat" \
-H "Authorization: Bearer $SERVICE_AGENT_TOKEN" \
-H "Decidex-External-User-Id: portal-user-10086" \
-H "Content-Type: application/json" \
-d '{
"sessionId": "替换为上一轮返回的 sessionId",
"message": "请进一步说明分析所需的数据。"
}'
newSession 与 sessionId 必须二选一,不能同时填写或都不填写。系统不会自动复用最近会话。结果不确定时,不要自动重试新建会话请求,以免创建重复会话;若失败响应已返回 sessionId,应保留该 ID 继续处理。
接入更多会话能力
| 能力 | 使用方式 |
|---|---|
| 异步对话 | 使用 POST /api/service-agent/chat/async,立即获取会话和运行 ID,再轮询运行轨迹;运行结束后读取消息及交付文件 |
| 会话历史 | 查询当前外部用户的会话列表及指定会话的消息 |
| 工作轨迹 | 根据会话和运行 ID 查询阶段、步骤和状态;开启「允许查看执行详情」后,可读取额外的操作详情 |
| 停止运行 | 使用停止接口,停止指定会话中尚未结束的运行;需要运行中停止能力时采用异步对话 |
| 回复反馈 | 对已成功完成的回复提交、修改或撤销点赞、点踩反馈 |
| 交付文件 | 使用响应中返回的文件地址,携带相同鉴权信息读取或下载 |
具体路径、参数和响应格式见页面中的「查看接入文档」。
管理接入与凭证
在「渠道入口 > API 接入」中找到对应接入,可执行以下操作。
| 操作 | 作用与注意事项 |
|---|---|
| 修改并保存 | 调整接入名称、允许来源、外部用户身份验证和执行详情设置后,点击「保存」 |
| 生成凭证 | 为接入生成新的调用凭证。更换凭证时,先更新调用方并验证成功,再吊销旧凭证 |
| 吊销 | 吊销选定凭证,后续使用该凭证的请求将无法通过鉴权;吊销后不能恢复 |
| 停用/启用 | 停用后阻止该接入的后续调用,需要恢复时重新启用 |
| 删除 | 永久删除接入、全部调用凭证及外部会话列表映射,外部应用无法继续原会话;底层审计记录仍保留,此操作不可恢复 |
| 刷新 | 重新加载接入列表,查看当前状态及最近使用情况 |
停用接入或吊销凭证不等于停止已启动的运行。需要终止运行时,应使用停止运行接口。
常见问题
| 问题 | 检查方式 |
|---|---|
| 凭证无效或调用被拒绝 | 检查请求头、接入是否启用、凭证是否已吊销或过期,以及创建接入账号是否仍可用 |
| 浏览器调用失败,后端调用正常 | 核对实际请求 Origin 与白名单,包括协议、域名及端口;不要填写带路径的页面 URL |
| 开启身份验证后无法创建会话 | 检查是否携带有效的 Galaxy 用户 Token,且 sub 与外部用户 ID 一致 |
| 无法读取或继续已有会话 | 确认调用凭证属于原 API 接入,外部用户 ID 与创建会话时一致,且会话 ID 正确 |
| 能返回回答,但无法获取业务数据 | 检查创建接入账号的 BI 凭据、连接器、数据权限及智能体配置;外部用户身份验证不会改变执行身份 |
| 看不到命令、输出或错误详情 | 检查是否开启「允许查看执行详情」。关闭时只返回精简轨迹;开启后也不返回内部推理和原始协议包 |