小林确认创建服务单,页面却一直显示“处理中”。后台日志表明请求已经发出,但工单接口没有及时返回。此刻 Agent 若说“创建失败,请再点一次”,可能生成重复工单;若说“已经创建”,又可能把根本没提交成功的请求当成事实。工具失败后的下一步,必须由操作类型和已知结果共同决定。
本篇把服务台常见失败分成只读查询失败、写入明确失败和写入结果不明,并解释何时可以重试、何时应回查、何时需要任务补偿。所谓补偿不是把所有操作“自动撤销”,而是在部分步骤已成功时,用受控的后续动作恢复业务一致性。
文章目录
- 先问清失败发生在哪一段
- 失败恢复的流程图
- 为只读操作写有界重试
- 什么是任务补偿
- 测试最容易被忽略的“结果不明”
- 总结
先问清失败发生在哪一段
一次工具调用可能在请求前、请求中或请求后失败。小林看到的都是“等不到结果”,程序却不能因此使用同一种重试策略。尤其写入接口:网络超时只说明调用方没有得到确定答复,不能证明后端没有完成写入。
| 失败位置 | 典型现象 | 已知事实 | 正确方向 |
|---|---|---|---|
| 请求前 | 参数校验失败、配置缺失 | 外部工具尚未调用 | 修正配置或向员工追问,不做无意义重试 |
| 只读请求中 | 指引检索临时超时 | 没有外部写入副作用 | 在预算内有限重试,可转备用检索源 |
| 写入请求明确拒绝 | 返回字段缺失且声明未创建 | 已知没有成功回执 | 修正内容后重新确认 |
| 写入请求结果不明 | 已发送,但未收到回执 | 不知道是否已创建 | 用原请求标识回查,禁止盲目新建 |
| 写入成功后附属步骤失败 | 工单有编号,通知发送失败 | 主业务已成功 | 保留工单,单独恢复通知或说明 | </