超时重试不是「失败了再喊一次」,而是先分清错误类型,再与幂等键一起设计。 可重试的通常是网络抖动与限流;不可盲目重试的是业务拒绝、校验失败与已成功但响应丢失的不确定性——后者更依赖幂等。

决策顺序

  1. 为每次工具调用设明确超时。
  2. 对超时与 5xx / 限流:有限次退避重试。
  3. 对 4xx 业务错误:不要空转重试,返回给规划层改参数。
  4. 所有具有副作用的调用带幂等键(见相关幂等文)。
  5. 记录每次尝试的错误码与耗时,便于调参。

示意伪代码(虚构示意)

for attempt in 1..N:
  result = call_tool(args, idempotency_key=K, timeout=T)
  if success: return result
  if not retryable(error): raise
  sleep(backoff(attempt))
escalate_to_human_or_planner()

提示词(设计评审用)

请审查我的工具重试策略:哪些错误可重试、最大次数、退避、是否与幂等键绑定、超时如何设置。
指出可能导致重复副作用的路径。不要编造基准数字。
【策略描述】<<<>>>

实践提醒

把重试参数做成可配置项,并在仪表盘统计重试率与最终失败率。若某工具重试率突然升高,先查下游健康再调大次数。人工升级路径要在提示或工作流里写清,避免智能体空转耗尽配额。

执行时请保持单一事实源:输入没有的数字、负责人与截止日期,输出就不要出现。把不确定写清楚,比生成听起来完整却无法核对的句子更有用。若连续两次结果漂移很大,先检查是否混入未脱敏或互相矛盾的材料,再考虑换模型。

也可以把本页提示词改成团队共享片段:只开放「材料区」给同事粘贴,固定规则区由维护人更新。这样能减少每人私改导致的格式分裂,也方便在复盘会上对照同一版本讨论。

也可以把本页提示词改成团队共享片段:只开放「材料区」给同事粘贴,固定规则区由维护人更新。这样能减少每人私改导致的格式分裂,也方便在复盘会上对照同一版本讨论。

相关:Agent 幂等工具调用、报错日志排查、AI 编程安全。

把本次用过的提示词与输入输出一并存档,方便对照下次同类任务的差异。凡标注虚构或示意的人名、金额、订单与指标,一律不得进入正式提交或对外承诺。若材料涉及客户或员工个人信息,先按公司数据分级选择允许的工具,再开始粘贴。做完一次闭环,用三句话记录:最有效的约束、仍需人工的步骤、下版提示词要改哪里。

把本次用过的提示词与输入输出一并存档,方便对照下次同类任务的差异。凡标注虚构或示意的人名、金额、订单与指标,一律不得进入正式提交或对外承诺。若材料涉及客户或员工个人信息,先按公司数据分级选择允许的工具,再开始粘贴。做完一次闭环,用三句话记录:最有效的约束、仍需人工的步骤、下版提示词要改哪里。