本章进度 14 / 18
78%
正文已完成
L127一次重试为什么可能创建两张工单
理解幂等性、超时未知状态和写操作重复副作用。
把“失败重试”从听懂变成会判断,避免遇到真实任务时仍靠感觉选择。
建议先理解同主题上一课的核心概念,再完成本课判断练习。
- 无需安装新工具
- 准备一个可对照的真实问题或样本
请求超时不代表服务端没有成功。Agent 若直接重发创建或支付请求,可能产生重复副作用。重试策略必须知道动作是否幂等。
能判断哪些工具重试有重复副作用,并提出幂等或查询确认方案。
核心概念
先把关键判断说清楚
读操作通常更安全
相同条件的查询重复执行一般不改变状态,但仍要考虑成本和限流。
写操作状态可能未知
客户端没收到响应时,服务端可能已完成写入,应先查结果或使用幂等键。
补偿不是删除历史
无法原子回滚时,用取消、冲正等明确业务动作恢复,并保留审计。
案例拆解
创建工单响应超时
第一次 create_ticket 超时,Agent 不知道工单是否已创建。
- 01
原请求携带 idempotency_key=order-882-delay。
- 02
重试同一键后服务返回第一次创建的 ticket_id,而非新建。
- 03
若接口不支持幂等,先按业务键查询工单,再决定是否创建。
案例结果
网络不确定性没有转化为两张工单,执行轨迹仍可关联同一业务请求。
提交前练习
现在轮到你
审查三个工具的重试安全性。
完成本课需要:完成以下内容用于本课收口。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
send_email 为写操作;超时先按 message_request_id 查询;幂等键由草稿版本+收件人生成;若旧接口重复发送,记录事故并发送更正,不能删除已发邮件伪装未发生。
评分标准
- 识别所有副作用
- 未知状态先确认再重试
- 去重键对应同一业务意图
本课收口 · 应用检查
完成一次应用,再检查理解
完成一次必填练习,再通过理解检查;阅读标记和总结不设硬门槛。
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- Trustworthy agents in practice↗paper · 核对日期 2026-08-23
- Monitoring Distributed Systems↗reference · 核对日期 2026-08-23