跳到主要内容

ACK 与 Error

ACK 与 Error 是协议通用反馈机制。它们不表示具体业务能力,也不属于 Flow 机制

ACK

ACK 表示接收端已经收到并成功解析目标消息。ACK 不表示业务已经执行成功,业务结果应通过 Response、Event 或 Flow Data 表达

ACK 与目标消息通过 related_id 关联:

字段规则
message_idACK 自己的消息 ID
related_id被确认消息的 message_id
channel_id0,或在确认 Flow 控制消息时使用相关 Flow 的 channel_id

ACK Payload 默认使用 JSON,字段定义如下:

字段必填含义
statusreceivedaccepted
message可读说明

received 表示消息已收到并解析成功,accepted 表示消息已被协议状态机接受。业务是否成功不由 ACK 表达

Error

Error 表示协议层、Session、Flow、Operation 或业务处理失败。Error 与失败消息通过 related_id 关联

Error Payload 默认使用 JSON,字段定义如下:

字段必填含义
category错误分类
code错误码
message可读错误说明
retryable是否允许按本地策略重试
recoverable是否可通过恢复流程处理
details扩展对象

错误分类

分类说明示例
protocol协议格式或语义错误UNKNOWN_MESSAGE_TYPEUNKNOWN_FLAG
payloadPayload 编码、长度或 Schema 错误PAYLOAD_DECODE_FAILEDSCHEMA_MISMATCH
sessionSession 状态错误SESSION_DEGRADEDSESSION_EXPIRED
flowFlow 状态错误FLOW_NOT_FOUNDFLOW_EPOCH_MISMATCH
qosQoS 协商或执行错误QOS_NOT_ACCEPTABLERATE_LIMITED
operationOperation 调用错误OPERATION_TIMEOUTOPERATION_NOT_FOUND
robot机器人业务错误ROBOT_MODE_REJECTEDCONTROL_REJECTED

机器人本体故障码应通过专门 Flow 通知,不应混入协议层 Error Code。Error 允许引用业务错误,但不应替代机器人本地故障体系