本章进度 14 / 18
78%
Agent 与工具调用·判断·13 分钟
正文已完成

一次重试为什么可能创建两张工单

理解幂等性、超时未知状态和写操作重复副作用。

L127
为什么现在学

把“失败重试”从听懂变成会判断,避免遇到真实任务时仍靠感觉选择。

本课会用什么
  • 无需安装新工具
  • 准备一个可对照的真实问题或样本

请求超时不代表服务端没有成功。Agent 若直接重发创建或支付请求,可能产生重复副作用。重试策略必须知道动作是否幂等。

这一课的结果

能判断哪些工具重试有重复副作用,并提出幂等或查询确认方案。

核心概念

先把关键判断说清楚

01

读操作通常更安全

相同条件的查询重复执行一般不改变状态,但仍要考虑成本和限流。

02

写操作状态可能未知

客户端没收到响应时,服务端可能已完成写入,应先查结果或使用幂等键。

03

补偿不是删除历史

无法原子回滚时,用取消、冲正等明确业务动作恢复,并保留审计。

案例拆解

创建工单响应超时

第一次 create_ticket 超时,Agent 不知道工单是否已创建。

  1. 01

    原请求携带 idempotency_key=order-882-delay。

  2. 02

    重试同一键后服务返回第一次创建的 ticket_id,而非新建。

  3. 03

    若接口不支持幂等,先按业务键查询工单,再决定是否创建。

案例结果

网络不确定性没有转化为两张工单,执行轨迹仍可关联同一业务请求。

提交前练习

现在轮到你

审查三个工具的重试安全性。

完成本课需要:完成以下内容用于本课收口。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

send_email 为写操作;超时先按 message_request_id 查询;幂等键由草稿版本+收件人生成;若旧接口重复发送,记录事故并发送更正,不能删除已发邮件伪装未发生。

评分标准

  • 识别所有副作用
  • 未知状态先确认再重试
  • 去重键对应同一业务意图

本课收口 · 应用检查

完成一次应用,再检查理解

完成一次必填练习,再通过理解检查;阅读标记和总结不设硬门槛。

0 / 2
02完成本课必填练习0 / 4 项必填内容已填写03通过理解检查点此去回答,约 30 秒
04补一句总结(可选)可以留空,不影响完成本课。
写操作超时后最安全的第一步通常是?
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。

资料来源

继续核对与延伸阅读

本课内容最近更新于 。