查看 Markdown
POST/api/agent/run/async

异步运行智能体

提交任务后立即返回 requestId,客户端通过 /run/stream 接口读取 SSE 事件流。支持通过urlAttachments传入最多10个HTTPS URL附件,并可与attachmentIds同时使用。任务提交成功不代表URL附件已经导入完成,导入进度和失败结果需通过SSE事件或任务状态获取。可通过 capabilityConfig 限制本次运行可调用的工具和 Skill;不传时沿用智能体配置,传入时只能进一步收窄智能体已有能力。Finx服务传入非空白名单或黑名单时限制本次运行可用范围,白名单优先;空集合或不传时沿用智能体配置;限制会由本次运行派生的定时任务自动继承。可通过 environmentId 指定本次运行使用的沙箱环境(仅在隐式创建新会话时生效,已有会话沿用其原绑定环境),环境必须归属当前租户/应用,否则返回无权访问错误。未传 sessionId 和 bizKey 时可通过 projectId 创建项目会话;projectId 与二者互斥。vaultIds 可在隐式创建新会话时绑定当前应用空间密钥;已有会话沿用原密钥绑定,不传或空列表时不绑定密钥;密钥不归属当前租户/应用时返回无权访问错误。可通过 knowledgeLibraryIds 指定本次运行使用的知识库,非空时覆盖智能体已启用的集合,不传或空数组时回落到智能体已启用的集合;传入的知识库必须全部属于当前应用空间,只要有一个不属于本应用空间则整个请求返回无权访问。

可通过 virtualTools 声明本次运行的客户端展示工具,让模型产出一次结构化的渲染指令,由您的终端渲染图表、卡片等界面元素:服务端不执行您的任何代码,模型发起调用时按 parameters 校验参数,返回预设 mockResponse;省略或null使用默认success回执;调用内容从既有 SSE 事件流的 TOOL_CALL_GENERATING、TOOL_START、TOOL_COMPLETED 事件读取,渲染结果无需回传。该参数请求级生效,不写入会话默认工具也不被后续运行继承,重试失败运行时沿用原请求快照中的定义。工具定义整批由服务端校验,不合法时在运行启动之前整次请求失败并一次性返回全部问题,不会混进 SSE 事件流;不传时行为不变。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)24 个字段

agentIdintegerrequired

智能体ID

maxStepsintegernullable

本次运行的最大执行轮数,必须为正整数,不传默认2000。一次模型决策及其工具执行计为一轮;异步挂起恢复和失败重试沿用原运行上限,不影响后续新请求。

maxInputTokensintegernullable

本次运行普通推理输入上下文预算,单位token,仅接受JSON整数,最小65536,最大为实际模型配置的输入上限。不传或null沿用默认。包含系统提示、工具、历史、输入及媒体,按估算管理并预留安全余量。摘要调用使用独立预算,可能超过本值;不限制输出、思考和累计费用。异步、重试及挂起恢复沿用,后续新请求不继承。

enableSubagentbooleannullable

是否允许本次运行创建或继续子智能体。仅接受JSON布尔值,true开启,不传、null或false均关闭;仍受智能体工具权限和系统运行条件限制。重试、挂起恢复沿用原值,后续新请求不继承。

userInputstringrequired

用户输入内容,即发送给智能体的消息

sessionIdintegernullable

会话ID,传入后将继续该会话的上下文对话

projectIdintegernullable

项目ID。仅在未传sessionId和bizKey、需要隐式创建项目会话时使用

bizKeystringnullable

用户自定义会话ID,传入后将继续该会话的上下文对话

environmentIdintegernullable

沙箱环境ID,指定后本次运行在该沙箱环境中执行。

注意:仅在本次运行隐式创建新会话时生效;传入 sessionId 或命中已有 bizKey 会话时,沿用该会话原绑定的环境,不会切换到本次传入的环境。环境必须归属当前租户/应用,否则返回无权访问错误。不传时不绑定沙箱环境,保持原有行为。

vaultIdsarraynullable

本次隐式创建新会话时绑定的应用空间密钥ID列表。仅创建新会话时生效;传入 sessionId 或命中已有 bizKey 时沿用原绑定。密钥须归属当前租户/应用,否则返回无权访问错误;不传或空列表时不绑定密钥。重复ID按首次出现顺序去重。

reasoningEffortstringnullable

推理力度档位(推荐使用,替代 enableThinking)。与模型无关,服务端自动适配各模型参数差异。

可选值(大小写不敏感):

  • disabled:关闭思考,适用于简单问答、追求极致响应速度
  • low:1,024 token 预算,适用于日常轻任务
  • medium:4,096 token 预算,适用于一般任务
  • high:16,384 token 预算(默认档),适用于复杂分析
  • xhigh:32,768 token 预算,适用于最难任务(深度数学/代码推演)

不传时依次取智能体级默认档位(租户控制台『默认模型』卡片配置)、系统默认 high。参数优先级:thinkingBudget > reasoningEffort > enableThinking > 智能体级默认档位。

thinkingBudgetintegernullable

思维链 token 预算(精确控制),直接指定思维链 token 数量上限。面向需要精确成本控制的调用方。服务端自动校验修正:低于1抬到1,超过模型上限压到上限,任何取值都不会导致调用报错。

参数优先级:thinkingBudget > reasoningEffort > enableThinking > 智能体级默认档位。

注意:想关闭思考请传 reasoningEffort=disabled;thinkingBudget表示开启思考并限制长度。

enableThinkingbooleannullable

是否启用思考模式(已废弃,请改用 reasoningEffort 参数)。

本参数仍可正常使用,但新代码建议改用 reasoningEffort 以获得更精细的推理控制能力。 显式传入时优先于智能体级默认档位:true 等效 reasoningEffort=high,false 等效 disabled; 不传时依次取智能体级默认档位(租户控制台配置)、系统默认 high。 显式传 null 与不传字段等效,均视为未指定,由智能体级默认档位/系统默认 high 决定。

参数优先级:thinkingBudget > reasoningEffort > enableThinking > 智能体级默认档位。

temperaturenumbernullable

模型温度参数,值越高输出越随机,取值范围 0~2,不传时默认 1.0

modelstringnullable

指定模型名称,不传时使用智能体默认模型

attachmentIdsarraynullable

附件ID列表,传入的附件ID需要是当前用户上传且属于对应会话的附件

通过HTTPS URL导入的附件列表,仅异步运行支持,最多10个。可与attachmentIds同时传入;接口提交成功仅表示任务已创建,附件导入失败会通过SSE事件或任务状态返回

触发来源配置,标识本次运行的触发方式。为null时系统根据访问模式自动推断(用户模式默认human_message,应用模式默认api_call)。

字段说明:

  • sourceType:触发源类型(必填),可选值:human_message(人类消息)、scheduled_task(定时任务)、api_call(API调用)、internal(内部调用)
  • channelType:通道类型(可选),sourceType为human_message时使用,可选值:im
  • channelProvider:通道提供商(可选),sourceType为human_message时使用,可选值:dingtalk、wecom、wechat、feishu
visiblebooleannullable

是否对用户可见,false时本次运行不出现在用户列表中

runtimeVariablesobjectnullable

运行时变量,键值对形式。调用方传入后,智能体运行期间技能和工具可通过变量名读取对应值。

key 为变量名(仅支持字母、数字、下划线),value 为变量值(字符串)。

supportedOutputFormatsarraynullable

调用方终端支持的输出格式列表,用于声明终端渲染能力。

例如传入 "echarts" 表示终端可渲染 ECharts 图表,模型在分析型任务中会输出 ```echarts 代码块(内容为 ECharts option 严格 JSON),由调用方终端负责渲染;不传时模型不会输出此类内容,无渲染能力的调用方无需改动。

本次运行的客户端展示工具列表,用于让模型产出结构化的渲染指令,由您的终端自行渲染图表、卡片等界面元素。

字段说明(每个数组元素):

  • name:工具名称(必填),需匹配正则 [A-Za-z_][A-Za-z0-9_-]{0,63},不得与同批其它工具、平台全局工具或保留名 finx、skill、knowledge_search 冲突
  • description:工具说明(必填),非空且 UTF-8 编码不超过 2KiB,模型据此判断何时调用
  • parameters:原生 JSON Schema 对象(必填),不是 JSON 字符串;根节点必须显式 type=object;方言为 draft-07;禁止任何 $ref(含本地引用),禁止根级 allOf/anyOf/oneOf/not/if/then/else/enum/const;仅接受服务端白名单内的 draft-07 关键词与 format,未知关键词会被拒绝;单项 Schema 不超过 16KiB、整批不超过 256KiB、JSON 深度不超过 16
  • mockResponse:可选字符串,作为模拟结果原样返回;省略或null使用默认回执,空字符串保留,计入整批大小限制

行为要点:

  • 请求级、只对本次运行有效,不写入会话默认工具,也不会被后续运行继承;重试失败运行时沿用原请求快照里的定义,无需重传
  • 服务端不执行您的代码:模型发起调用时只按 parameters 校验参数,然后返回预设 mockResponse,未指定时返回默认回执 {"status":"success"} 让主循环继续;返回内容不代表您的终端已完成渲染,也不证明外部业务实际执行
  • 调用内容从既有 SSE 事件流获取:TOOL_CALL_GENERATING(逐帧增量)、TOOL_START / TOOL_COMPLETED 的 toolName 与 arguments,渲染结果无需回传
  • 单次最多 16 项。定义不合法时整次请求失败并一次性返回全部问题,错误定位按 virtualTools[下标] 与您传入的顺序对齐;校验发生在运行启动之前,不会混进 SSE 事件流

不传、传 null 或空数组时行为与不使用该能力完全一致。

本次运行的工具和Skill能力限制。未传时沿用智能体配置;传入后仅对本次运行及其派生的定时任务生效。请求配置只能收窄智能体能力,不能重新启用智能体已禁用的工具或Skill

knowledgeLibraryIdsarraynullable

本次运行显式指定的知识库ID列表,仅对本次运行生效。

非空时优先生效并覆盖智能体已启用的知识库集合;不传或为空数组时回落到智能体已启用的集合。 传入的知识库必须全部属于当前应用空间,只要有一个不属于本应用空间则整个请求返回无权访问(不会静默跳过越界项)。 最多 200 个。

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

加密请求(application/jose)

可选请求格式:Content-Type: application/jose,Accept: application/json。 仍使用 Authorization: Bearer <APPLICATION_API_KEY> 和 X-Principal-Id: <PRINCIPAL_ID>,加密不替代认证。 将本接口原 JSON 请求对象整体加密(字段、校验和含义不变),发送 JWE Compact 五段字符串;不要添加 JSON 引号或外层对象。 使用平台交付的租户 RSA 公钥(至少 3072 位)及配套 kid;公钥指纹是 SPKI DER 字节的 SHA-256 十六进制摘要。 协议 dj-jwe-v1:alg=RSA-OAEP-256(OAEP/MGF1 均为 SHA-256),enc=A256GCM。 每次重新生成 32 字节 CEK 和 12 字节 IV;RSA 加密原始 CEK;Tag 为 16 字节;AAD 是第一段 Base64URL 字符串的 ASCII 字节。 五段均使用无填充 Base64URL。下面受保护头中的身份、公钥标识、受众和时间必须替换为实际值:

{"alg":"RSA-OAEP-256","enc":"A256GCM","kid":"<KID>","typ":"JOSE","cty":"application/json","dj":{"v":1,"tenant":"<TENANT_ID>","caller":"<APP_ID>","principal":"<PRINCIPAL_ID>","aud":"<AUDIENCE>","op":"agent.run.async","iat":1793232000,"exp":1793232300,"jti":"44df537b-8097-4a3a-901c-07ba405c14c5"}}

dj.principal 必须与请求身份一致;dj.caller、dj.tenant 必须匹配 API Key 所属应用、租户;dj.op 必须匹配本接口。 iat/exp 为 Unix 秒,exp > iat 且间隔不超过 300 秒,允许 60 秒时钟偏差;jti 每次唯一,建议 UUID v4。 头字段集合固定,不允许额外字段、重复 JSON 键、zip 或 crit。密文整体上限 6 MiB,解密 JSON 上限 4 MiB,受保护头上限 4096 字节。 不发送 Content-Encoding(包括 identity);不支持 application/jose+json。 普通会话允许下一轮通过 JOSE 升级;已加密会话必须继续使用 JOSE。补充输入须与对应 requestId 的运行模式一致,content 最多 10000 字符。 成功响应仍使用原 JSON 结构;SSE 订阅方式和事件格式不变,不需要解密响应。

错误响应沿用 ApiResponse:success=false,errCode、message 为错误标识;普通媒体类型错误仍为 HTTP 400 / message=Media type not supported(沿用原响应,不额外设置 errCode)。 JOSE 格式、解密或上下文校验失败:HTTP 400 / CRYPTO_INVALID_MESSAGE。 补充输入模式不一致:HTTP 400 / errCode=400 / message=SUPPLEMENTARY_INPUT_TRANSPORT_MISMATCH。 新增的 409/413/415/503 说明见本接口响应列表。下方五段示例仅展示格式,须替换为实际加密结果。

curl 'https://router.fis.aliyuncs.com/finx/api/agent/run/async' \
  -H 'Authorization: Bearer <APPLICATION_API_KEY>' \
  -H 'X-Principal-Id: <PRINCIPAL_ID>' \
  -H 'Content-Type: application/jose' -H 'Accept: application/json' \
  --data-binary '<protected>.<encryptedKey>.<iv>.<ciphertext>.<tag>'
<protected>.<encryptedKey>.<iv>.<ciphertext>.<tag>

加密相关错误响应

HTTP 400

Bad Request

HTTP 409

CRYPTO_REPLAY:同一 jti 重复提交。普通 JSON 续接加密会话:errCode=409,message=SESSION_REQUIRES_JOSE_ENCRYPTED_REQUEST,data.reason=SESSION_TRANSPORT_CONFLICT;请使用 JOSE 重新提交。原业务 409 冲突语义保持不变。

{
  "httpStatusCode": 409,
  "message": "CRYPTO_REPLAY",
  "errCode": "CRYPTO_REPLAY",
  "success": false
}
{
  "httpStatusCode": 409,
  "errCode": "409",
  "data": {
    "reason": "SESSION_TRANSPORT_CONFLICT"
  },
  "success": false,
  "message": "SESSION_REQUIRES_JOSE_ENCRYPTED_REQUEST"
}

HTTP 413

CRYPTO_PAYLOAD_TOO_LARGE:JOSE 请求体超过 6 MiB 或解密后的 JSON 超过 4 MiB。

{
  "httpStatusCode": 413,
  "message": "CRYPTO_PAYLOAD_TOO_LARGE",
  "errCode": "CRYPTO_PAYLOAD_TOO_LARGE",
  "success": false
}

HTTP 415

CRYPTO_UNSUPPORTED_MEDIA_TYPE:application/jose 请求携带不支持的 Content-Encoding(包括 identity)。text/plain、application/jose+json 等不支持的 Content-Type 仍返回 HTTP 400 / Media type not supported。

{
  "httpStatusCode": 415,
  "message": "CRYPTO_UNSUPPORTED_MEDIA_TYPE",
  "errCode": "CRYPTO_UNSUPPORTED_MEDIA_TYPE",
  "success": false
}

HTTP 500

Internal Server Error

HTTP 503

CRYPTO_UNAVAILABLE:入口加密暂不可用,请稍后使用新的 jti 和密文重试;不要自动改发明文。

{
  "httpStatusCode": 503,
  "message": "CRYPTO_UNAVAILABLE",
  "errCode": "CRYPTO_UNAVAILABLE",
  "success": false
}
查看 Markdown
GET/api/agent/run/stream

SSE 流式读取智能体运行事件

通过 requestId 订阅异步运行产生的 SSE 事件流,支持断线重连;事件带序号,保证不丢失、不重复。以下为完整事件手册。

一、SSE 协议约定

响应为标准 Server-Sent Events(Content-Type: text/event-stream),每条消息包含三个字段:

SSE 字段说明
event事件类型名,即下文事件目录中的枚举名(如 TEXT_DELTA、TOOL_START)
id事件序号,从 0 开始递增,是断线重连的凭据;HEARTBEAT 事件不携带 id
data事件体 JSON,结构见下

data 的统一结构(AgentEvent):

{
  "eventType": "TEXT_DELTA",
  "data": { "type": "text", "text": "你好" },
  "timestamp": "2026-07-24T10:00:00",
  "step": 1,
  "totalTokens": 1234
}
字段类型说明
eventTypestring事件类型,与 SSE event 字段一致
dataobject事件数据体,以 data.type 字段判别具体结构(见第三节)
timestampstring事件产生时间
stepintegerAgent 执行步骤号(部分事件为空)
totalTokensinteger截至当前累计消耗的 token 数(部分事件为空)

回答结束时,MESSAGE_COMPLETED、MESSAGE_FAILED 的 data.usage 可携带回答用量快照: promptTokens、completionTokens、 cachedTokens、reasoningTokens、totalTokens 为当前助手消息累计 Token,不含压缩。 缓存命中率由 cachedTokens / promptTokens 计算,输入为 0 时不计算。 旧事件或无法取得统计时 usage 可为空。顶层 step 与 totalTokens 保持兼容。

二、事件目录(共 19 种)

会话事件

事件data.type触发时机客户端处理建议
SESSION_CREATEDsession任务开始执行时的首个事件记录 sessionId、userMessageId、assistantMessageId,用于后续消息定位与重试

文本事件(最终回答正文)

事件data.type触发时机客户端处理建议
TEXT_STARTtext一段正文开始,text 为初始文本;synthetic=true 表示系统合成文本新建一个正文气泡
TEXT_DELTAtext正文增量,text 为增量片段按到达顺序追加拼接
TEXT_ENDtext一段正文结束(data 无有效字段)结束当前正文气泡

推理事件(思考过程,非正文)

事件data.type触发时机客户端处理建议
REASONING_STARTreasoning一段推理开始新建"思考中"折叠区
REASONING_DELTAreasoning推理增量,text 为增量片段追加拼接,与正文分开展示
REASONING_ENDreasoning一段推理结束折叠或收起思考区

工具事件

事件data.type触发时机客户端处理建议
TOOL_CALL_GENERATINGtool模型正在生成工具调用参数(逐帧,均早于 TOOL_START)。首帧携带 toolCallId/toolName,后续帧 arguments 为增量片段首帧即可展示"正在调用 XXX 工具",按 toolCallId 拼接 arguments 实现参数逐字流式展示
TOOL_STARTtool参数生成完毕、工具开始执行,携带完整 arguments作为同 toolCallId 的 TOOL_CALL_GENERATING 的隐含结束信号,用完整参数覆盖拼接结果
TOOL_RUNNINGtool工具执行中,title 为可展示的进度标题更新工具卡片进度文案
TOOL_COMPLETEDtool工具执行成功,output 为执行结果渲染执行结果,结束工具卡片
TOOL_FAILEDtool工具执行失败,errorMessage 为失败原因展示失败态;智能体通常会自行调整策略继续执行,无需人工干预
TOOL_EVENTtool_side工具执行过程中的侧信道结构化信息(如授权缺失、流式数据)按 category 分发处理,未识别的 category 忽略

权限确认事件

事件data.type触发时机客户端处理建议
PERMISSION_ASKpermission_ask工具触发权限 ASK 规则,等待用户决策;随后会收到 MESSAGE_SUSPENDED(suspendReason.type=PERMISSION_ASK)弹出授权确认 UI,用户决策后调用 /api/agent/run/resumeTask(传 approved)
PERMISSION_ASK_RESOLVEDpermission_ask_resolved预留事件:当前版本内核不主动发射,确认结果以 resumeTask 响应及恢复后的事件流为准预留兼容处理即可

消息生命周期事件(终态,三选一收尾)

事件data.type触发时机客户端处理建议
MESSAGE_COMPLETEDmessage运行结束(正常完成或达到轮数上限)关闭 SSE 连接,结束会话轮次
MESSAGE_SUSPENDEDmessage任务挂起(权限确认、手动挂起、异步工具等待、节点停机),suspendReason 携带原因关闭连接,按 suspendReason.type 展示对应 UI;恢复后用相同 requestId 重新连接本接口
MESSAGE_FAILEDmessage任务失败,携带 errorCode/recoverable/networkError关闭连接;recoverable=true 时可引导用户调用 /api/agent/run/retryTask 从失败点续跑

附件事件

事件data.type触发时机客户端处理建议
ATTACHMENT_CHANGEDattachment智能体将产出文件转存为会话附件(新建或更新,按文件粒度逐个发射)实时刷新附件列表,凭 virtualPath 调用 /api/agent/attachment/download 下载,无需等消息结束后轮询
ATTACHMENT_SENTattachment附件被智能体主动发送给用户(如外发渠道推送)复用附件渲染逻辑,展示"已发送"提示

补充输入事件

事件data.type触发时机客户端处理建议
SUPPLEMENTARY_INPUT_CONSUMEDsupplementary_input运行中提交的补充输入(/addSupplementaryInput)在步骤边界被注入上下文将对应的补充输入气泡标记为"已送达"

心跳事件

事件data.type触发时机客户端处理建议
HEARTBEAT-连接保活定时发送,不携带 id直接忽略,不参与断点序号记录

运行期状态事件

事件data.type触发时机客户端处理建议
AGENT_STATUSagent_status运行期瞬时信号(限流重试、上下文压缩等),状态码见第四节渲染为 toast 或行内瞬时提示,不要拼入正文;只发"进入"信号,下一个正文/工具事件到达即隐含恢复

三、数据体字段说明(按 data.type)

session:sessionId(会话ID)、userMessageId(本轮用户消息ID)、assistantMessageId(本轮助手消息ID)。

text:text(文本内容,START 为初始文本、DELTA 为增量片段)、synthetic(是否系统合成文本,仅 TEXT_START 有值)。

reasoning:text(推理内容,语义同 text)。

tool:toolCallId(工具调用唯一标识,同一次调用的全部事件共享)、toolName(工具名)、title(进度标题,仅 TOOL_RUNNING)、arguments(调用参数 JSON:GENERATING 为增量片段、START 为完整参数)、output(执行结果,仅 TOOL_COMPLETED)、errorMessage(失败原因,仅 TOOL_FAILED)。

tool_side:toolCallId、toolName、category(事件分类,已知值:auth_required 用户授权缺失、tool_stream_data 工具流式数据;后续可能扩展)、payload(结构化数据,随 category 变化)、userMessage(用户友好提示,可选)。

permission_ask:askId(确认请求唯一标识,resumeTask 时需要)、principalId(身份主体ID)、toolName、toolCallId、arguments(待执行的工具参数 JSON)、ruleDescription(命中的权限规则描述)、rulePattern(规则匹配模式)。

permission_ask_resolved(预留):askId、approved(是否批准)、reason(结果原因)、resolveType(预留字段)。

message:messageId(助手消息ID);MESSAGE_COMPLETED 可含 finishReason(STOP 正常完成、MAX_STEPS 达到本次运行轮数上限)和 finishMessage(结束原因文本)。旧事件可能缺少这两个字段;客户端应兼容未来原因值。达到上限的提示也通过既有 synthetic TEXT_START/TEXT_END 展示并保存,完成事件中的 finishMessage 不应重复追加到正文;仅 MESSAGE_FAILED 有值:errorMessage(错误信息)、errorCode(错误码,见第五节)、recoverable(是否可从失败点重试续跑)、networkError(是否网络类瞬态错误);仅 MESSAGE_SUSPENDED 有值:suspendReason(挂起原因对象,suspendReason.type 可选值:PERMISSION_ASK 权限确认等待、MANUAL_SUSPEND 外部主动挂起、SHUTDOWN_INTERRUPT 系统停机中断、ASYNC_TOOL_PENDING 异步工具等待完成)。

attachment:attachmentId(附件ID)、sessionId、messageId(可为空)、fileName(文件名)、fileExtension(扩展名如 pdf、xlsx)、contentType(MIME 类型)、fileSize(字节数)、virtualPath(虚拟文件路径,用于构造下载URL)、source(来源:USER_UPLOAD 用户上传 / AGENT_GENERATED 智能体生成)、changeType(变更类型:CREATED 新建 / UPDATED 内容覆盖更新)。

supplementary_input:inputId(补充输入ID)、content(文本内容)、userMessageId(注入后生成的用户消息ID)、assistantMessageId、attachmentIds(随补充输入注入的附件ID列表)。

agent_status:code(状态码,见第四节)、level(严重等级:INFO/WARN/ERROR)、message(用户可读文案,可直接展示)、attributes(结构化扩展属性,随 code 变化)。

四、AGENT_STATUS 状态码

状态码level含义attributes 结构
IMPORTING_ATTACHMENTSINFO正在将 URL 附件导入为平台附件(仅进度提示,导入失败经由后续错误事件或任务状态返回)count(导入文件数)
LLM_RATE_LIMITEDWARN模型限流,正在重试attempt(当前重试次数)、maxRetries(最大重试次数)、backoffMs(本次退避毫秒数)
LLM_NETWORK_RETRYINGWARN模型网络抖动,正在重连同上:attempt、maxRetries、backoffMs
LLM_AUTO_RECOVERINGWARN网络类失败已被拦截,正在从失败点自动恢复attempt(当前恢复尝试次数)、maxAttempts(最大尝试次数)
LLM_EMPTY_RESPONSE_RETRYINGWARN模型返回空回复,正在自动重试attempt、maxRetries
CONTEXT_COMPACTINGINFO正在压缩历史上下文以释放 token 空间(同步调用摘要模型,耗时较久)scope(压缩范围:in-loop 循环内 / turn-level 轮次级);scope=in-loop 时另有 estInput(预估输入token数)、maxInput(最大输入token上限)
TOOL_CONSECUTIVE_FAILURESWARN模型连续多个步骤的工具调用全部失败,已注入引导提醒failedSteps(连续失败步骤数)、maxFailedSteps(触发阈值)

处理约定:该事件不写入消息历史、不回灌模型上下文,任务结束后查询消息历史不可见;UI 不应持久化,建议渲染为瞬时提示。服务端未来可能新增状态码,客户端遇到未识别的 code 必须静默忽略(可兜底展示 message 文案)。

五、终态与错误处理

每次运行的事件流必然以 MESSAGE_COMPLETED、MESSAGE_SUSPENDED、MESSAGE_FAILED 三者之一收尾,随后 SSE 连接正常关闭;收到终态事件后客户端应主动断开,不要再重连。

MESSAGE_FAILED 的 errorCode 可选值:

errorCode含义recoverable
LLM_ERROR模型调用失败(网络超时、限流等瞬态错误)true,可调用 retryTask 从失败点续跑
LLM_INVALID_REQUEST模型拒绝了请求内容(参数错误、内容审核等),原样重试必然再次失败false
TOOL_FAILED工具执行失败false
TASK_TIMEOUT任务执行超时false
SYSTEM_CRASH节点宕机等系统异常中断false
USER_CANCELLED用户主动取消(terminateTask)false
USER_NO_RESPONSE挂起等待用户响应超时(兜底回收)false
RUN_SNAPSHOT_INVALID运行请求快照无效false
INTERNAL_ERROR内部未分类错误false

MESSAGE_SUSPENDED 后的恢复方式:调用 /api/agent/run/resumeTask(PERMISSION_ASK 场景需携带 approved 决策),恢复成功后使用相同 requestId 重新连接本接口(携带 lastEventId)继续消费。

控制台兜底错误事件:当流初始化失败(如 requestId 不存在或无权访问)时,本接口会发送一条 event: error 的 SSE 消息,其 data 为空、错误信息位于 SSE 注释行(: 开头的行),随后连接关闭。客户端收到 error 事件应终止重连并提示用户。

六、断线重连

  1. 消费过程中持续记录最近一条带 id 事件的 id 值(HEARTBEAT 无 id,跳过);
  2. 连接断开且未收到终态事件时,携带 lastEventId=<最近id> 重新调用本接口;
  3. 服务端从 id+1 位置续推历史事件并无缝衔接实时事件,事件按序号连续、不丢不重;
  4. 若不传 lastEventId,则从事件流起点(id=0)完整重放。

七、典型事件时序示例

一次包含推理、工具调用与附件产出的完整运行,事件顺序如下:

SESSION_CREATED
REASONING_START → REASONING_DELTA × N → REASONING_END
TOOL_CALL_GENERATING × N → TOOL_START → TOOL_RUNNING → TOOL_COMPLETED
ATTACHMENT_CHANGED
TEXT_START → TEXT_DELTA × N → TEXT_END
MESSAGE_COMPLETED

(期间可能穿插 HEARTBEAT、AGENT_STATUS、SUPPLEMENTARY_INPUT_CONSUMED,位置不固定)

关键事件的完整 SSE 报文示例:

id: 0
event: SESSION_CREATED
data: {"eventType":"SESSION_CREATED","data":{"type":"session","sessionId":9001,"userMessageId":10001,"assistantMessageId":10002},"timestamp":"2026-07-24T10:00:00"}

id: 5
event: TOOL_START
data: {"eventType":"TOOL_START","data":{"type":"tool","toolCallId":"call_abc123","toolName":"web_search","arguments":"{\"query\":\"沪深300走势\"}"},"timestamp":"2026-07-24T10:00:03","step":1,"totalTokens":856}

id: 12
event: TEXT_DELTA
data: {"eventType":"TEXT_DELTA","data":{"type":"text","text":"根据检索结果,"},"timestamp":"2026-07-24T10:00:06","step":2,"totalTokens":1420}

id: 20
event: MESSAGE_COMPLETED
data: {"eventType":"MESSAGE_COMPLETED","data":{"type":"message","messageId":10002,"finishReason":"STOP"},"timestamp":"2026-07-24T10:00:09","step":2,"totalTokens":2310}

八、客户端展示工具(virtualTools)的渲染指令消费

若在 /async 请求中声明了 virtualTools,模型对这些工具的调用不产生新的事件类型,完全复用上文的 TOOL_* 事件:

  1. TOOL_CALL_GENERATING:按 toolCallId 拼接 arguments 增量,可用于展示"正在准备图表"之类的过渡态;
  2. TOOL_START:arguments 为完整的渲染参数 JSON,是开始渲染的时机;
  3. TOOL_COMPLETED:参数校验通过后,output 原样返回工具定义中的 mockResponse 字符串(包括空字符串);省略或传入 null 时返回默认回执 {"status":"success"}。预设内容是模拟结果,不代表客户端已完成渲染或外部业务实际执行。

消费要点:

  • 按 toolName 与自己声明的工具名匹配,即可把渲染指令与平台内置工具的调用区分开;未匹配上的工具名按普通工具处理;
  • 服务端不执行调用方代码,渲染完全在客户端完成,渲染结果无需回传,也没有对应的回传接口;
  • 渲染失败属于客户端内部问题,不影响运行主流程,事件流仍会照常推进到终态。

九、迁移进来的历史运行没有事件流

通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕, 没有真实的执行过程,因此不存在可订阅的事件流:用这类运行的 requestId 调用本接口会返回 409 冲突, 而不是返回一个空流。

需要展示这类历史对话时,请改用会话轨迹查询接口读取已落库的消息内容。原生运行的事件流行为不受影响。

十、兼容性约定

  • 服务端事件类型、data.type、AGENT_STATUS 状态码均只增不删;
  • 客户端遇到未识别的事件类型、data.type、状态码或新增字段时,必须静默忽略,不得报错中断消费;
  • 字段可能为 null 或缺省,解析时需做好空值兼容。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

Query 参数2 个字段

requestIdstringrequired

异步请求ID,由 /async 接口返回

lastEventIdintegernullable

上次收到的事件ID,断线重连时传入

查看 Markdown
GET/api/agent/run/listTasks

分页查询运行记录列表

按主体维度分页查询智能体运行记录列表,支持按状态和智能体ID过滤。身份说明:当您通过API访问本系统时,请求头中必须传递 X-Principal-Id 以标识操作主体;当您通过页面访问本系统时,无需传递。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

Query 参数4 个字段

statusstringnullable

状态过滤条件,可选值:CREATED、PROCESSING、COMPLETED、FAILED、CANCELLED

agentIdintegernullable

智能体ID过滤条件,传入则只返回该智能体的运行记录

pageintegernullable

页码,从1开始

sizeintegernullable

每页记录数,取值范围1~100

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
GET/api/agent/run/getTask

查询运行记录详情

根据请求ID查询单次智能体运行的完整信息,包括执行状态、步骤、Token消耗、错误信息等

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

Query 参数1 个字段

requestIdstringrequired

运行记录的请求ID

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
GET/api/agent/run/messages

查询运行问答消息

根据请求ID一次性返回单次运行的用户输入(userInput)、智能体最终回复文本(assistantReply)和执行起止时间,无需再经「查询运行详情取assistantMessageId、查询消息部件、自行过滤拼接」三步流程。startedAt和completedAt为Unix毫秒时间戳;尚未开始时startedAt可能为空,未结束时completedAt可能为空,记录未提供的时间也为空,空时间字段在响应中省略。调用方应以status判断运行是否结束:COMPLETED、FAILED、CANCELLED为终态,CREATED、PROCESSING、SUSPENDED为非终态,不能仅凭completedAt是否有值判断。assistantReply取助手消息最后一个TEXT部件的完整文本,运行未结束时可能为空。若需要工具调用、推理思考等完整执行轨迹,请改用「会话管理」模块的消息部件查询接口(sessionListMessageParts)。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

Query 参数1 个字段

requestIdstringrequired

运行记录的请求ID

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
GET/api/agent/run/pendingTasks

查询待处理任务

返回当前用户所有未完成的任务以及最近完成的任务,适用于前端定时轮询

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
GET/api/agent/run/countTasks

统计运行记录数量

按主体维度统计智能体运行记录数量,支持按状态和智能体ID过滤

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

Query 参数2 个字段

statusstringnullable

状态过滤条件,可选值:CREATED、PROCESSING、COMPLETED、FAILED、CANCELLED

agentIdintegernullable

智能体ID过滤条件

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

dataintegernullable

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
POST/api/agent/run/suspendTask

挂起运行中的任务

向正在执行的智能体发送挂起信号,智能体会在下一个安全点优雅挂起

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)1 个字段

requestIdstringrequired

运行记录的请求ID,由异步运行接口返回

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

databooleannullable

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
POST/api/agent/run/resumeTask

恢复挂起的任务

恢复处于挂起状态的智能体运行,系统根据挂起原因自动路由到对应恢复策略

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)3 个字段

requestIdstringrequired

运行记录的请求ID,由异步运行接口返回

approvedbooleannullable

是否批准,仅当任务因权限审批而挂起时需要传入

reasonstringnullable

拒绝原因,仅当 approved 为 false 时传入

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

databooleannullable

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
POST/api/agent/run/terminateTask

终止任务

立即终止正在执行或挂起的智能体运行,不可恢复

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)1 个字段

requestIdstringrequired

运行记录的请求ID,由异步运行接口返回

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

databooleannullable

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
POST/api/agent/run/retryTask

重试失败的任务

对已失败的智能体运行发起重试,返回新的 requestId,客户端可通过 /run/stream 接口读取事件流。原请求若声明过 virtualTools,重试时沿用原请求快照中的定义,无需重传。

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)1 个字段

assistantMessageIdintegerrequired

需要重试的助手消息ID,用于定位失败的运行节点

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
POST/api/agent/run/addSupplementaryInput

添加运行时补充输入

在智能体运行过程中提交补充输入,内容会在下一个步骤边界被注入到对话上下文中

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)3 个字段

requestIdstringnullable
contentstringnullable
attachmentIdsarraynullable

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

加密请求(application/jose)

可选请求格式:Content-Type: application/jose,Accept: application/json。 仍使用 Authorization: Bearer <APPLICATION_API_KEY> 和 X-Principal-Id: <PRINCIPAL_ID>,加密不替代认证。 将本接口原 JSON 请求对象整体加密(字段、校验和含义不变),发送 JWE Compact 五段字符串;不要添加 JSON 引号或外层对象。 使用平台交付的租户 RSA 公钥(至少 3072 位)及配套 kid;公钥指纹是 SPKI DER 字节的 SHA-256 十六进制摘要。 协议 dj-jwe-v1:alg=RSA-OAEP-256(OAEP/MGF1 均为 SHA-256),enc=A256GCM。 每次重新生成 32 字节 CEK 和 12 字节 IV;RSA 加密原始 CEK;Tag 为 16 字节;AAD 是第一段 Base64URL 字符串的 ASCII 字节。 五段均使用无填充 Base64URL。下面受保护头中的身份、公钥标识、受众和时间必须替换为实际值:

{"alg":"RSA-OAEP-256","enc":"A256GCM","kid":"<KID>","typ":"JOSE","cty":"application/json","dj":{"v":1,"tenant":"<TENANT_ID>","caller":"<APP_ID>","principal":"<PRINCIPAL_ID>","aud":"<AUDIENCE>","op":"agent.run.supplement","iat":1793232000,"exp":1793232300,"jti":"44df537b-8097-4a3a-901c-07ba405c14c5"}}

dj.principal 必须与请求身份一致;dj.caller、dj.tenant 必须匹配 API Key 所属应用、租户;dj.op 必须匹配本接口。 iat/exp 为 Unix 秒,exp > iat 且间隔不超过 300 秒,允许 60 秒时钟偏差;jti 每次唯一,建议 UUID v4。 头字段集合固定,不允许额外字段、重复 JSON 键、zip 或 crit。密文整体上限 6 MiB,解密 JSON 上限 4 MiB,受保护头上限 4096 字节。 不发送 Content-Encoding(包括 identity);不支持 application/jose+json。 普通会话允许下一轮通过 JOSE 升级;已加密会话必须继续使用 JOSE。补充输入须与对应 requestId 的运行模式一致,content 最多 10000 字符。 成功响应仍使用原 JSON 结构;SSE 订阅方式和事件格式不变,不需要解密响应。

错误响应沿用 ApiResponse:success=false,errCode、message 为错误标识;普通媒体类型错误仍为 HTTP 400 / message=Media type not supported(沿用原响应,不额外设置 errCode)。 JOSE 格式、解密或上下文校验失败:HTTP 400 / CRYPTO_INVALID_MESSAGE。 补充输入模式不一致:HTTP 400 / errCode=400 / message=SUPPLEMENTARY_INPUT_TRANSPORT_MISMATCH。 新增的 409/413/415/503 说明见本接口响应列表。下方五段示例仅展示格式,须替换为实际加密结果。

curl 'https://router.fis.aliyuncs.com/finx/api/agent/run/addSupplementaryInput' \
  -H 'Authorization: Bearer <APPLICATION_API_KEY>' \
  -H 'X-Principal-Id: <PRINCIPAL_ID>' \
  -H 'Content-Type: application/jose' -H 'Accept: application/json' \
  --data-binary '<protected>.<encryptedKey>.<iv>.<ciphertext>.<tag>'
<protected>.<encryptedKey>.<iv>.<ciphertext>.<tag>

加密相关错误响应

HTTP 400

Bad Request

HTTP 409

CRYPTO_REPLAY:同一 jti 重复提交。原业务 409 冲突语义保持不变。

{
  "httpStatusCode": 409,
  "message": "CRYPTO_REPLAY",
  "errCode": "CRYPTO_REPLAY",
  "success": false
}

HTTP 413

CRYPTO_PAYLOAD_TOO_LARGE:JOSE 请求体超过 6 MiB 或解密后的 JSON 超过 4 MiB。

{
  "httpStatusCode": 413,
  "message": "CRYPTO_PAYLOAD_TOO_LARGE",
  "errCode": "CRYPTO_PAYLOAD_TOO_LARGE",
  "success": false
}

HTTP 415

CRYPTO_UNSUPPORTED_MEDIA_TYPE:application/jose 请求携带不支持的 Content-Encoding(包括 identity)。text/plain、application/jose+json 等不支持的 Content-Type 仍返回 HTTP 400 / Media type not supported。

{
  "httpStatusCode": 415,
  "message": "CRYPTO_UNSUPPORTED_MEDIA_TYPE",
  "errCode": "CRYPTO_UNSUPPORTED_MEDIA_TYPE",
  "success": false
}

HTTP 500

Internal Server Error

HTTP 503

CRYPTO_UNAVAILABLE:入口加密暂不可用,请稍后使用新的 jti 和密文重试;不要自动改发明文。

{
  "httpStatusCode": 503,
  "message": "CRYPTO_UNAVAILABLE",
  "errCode": "CRYPTO_UNAVAILABLE",
  "success": false
}
查看 Markdown
POST/api/agent/run/removeSupplementaryInput

移除运行时补充输入

在补充输入被消费之前撤回已提交的补充输入

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

请求体(JSON)2 个字段

requestIdstringnullable
inputIdstringnullable

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

databooleannullable

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理

查看 Markdown
GET/api/agent/run/previewSupplementaryInput

预览补充输入队列

查看当前排队中的所有补充输入,不会消费队列内容

迁移进来的历史运行不支持本操作:通过定时任务「迁移历史运行记录」接口登记的运行(triggerSource 为 imported)只是历史留痕,没有真实的执行过程,对其调用本接口会返回 409 冲突。这类运行仅支持查询和随任务删除。原生运行的行为不受影响。

请求参数

请求头参数1 个字段

X-Principal-Idintegernullable

身份主体ID(Long类型)。通过API访问时必须传递以标识操作主体;通过页面访问时无需传递。可通过「身份主体」模块的创建接口获取。

Query 参数1 个字段

requestIdstringrequired

异步请求ID

响应

200

httpStatusCodeintegernullable

HTTP状态码

messagestringnullable

响应消息

响应数据

successbooleannullable

是否成功

requestIdstringnullable

上游请求ID,用于跨系统链路追踪排查问题

errCodestringnullable

上游错误码,前端可据此做特殊UI处理