AI agent Compensation Saga:工具副作用怎么补偿才不会越补越乱

HTMLPAGE 团队
15 分钟阅读

工作流真正难点在副作用补偿。本文给出 AI agent 的 saga 设计方法,覆盖可逆动作、不可逆动作与人工兜底策略。

#AI agent #Saga #Compensation #Side Effects

DAG 能保证顺序,但不能天然保证正确撤销。只要流程里有外部副作用,比如发邮件、创建工单、扣费、改状态,就需要补偿设计。

Saga 思路在 agent 场景的落地

动作类型处理策略
可逆动作自动执行补偿步骤
条件可逆先检查状态再补偿
不可逆动作标记人工处理并出具证据包

不要把所有失败都当“重试一次”。重试无法撤销已发生副作用。

补偿步骤的最小字段

  • 原动作标识(actionId)
  • 目标对象标识(targetId)
  • 补偿函数版本(compensationVersion)
  • 执行结果与残留风险

没有这些字段,事故后无法判断“补偿到底执行没”。

失败案例:重复补偿引发二次事故

某团队在超时恢复时重复触发补偿,把已经回滚成功的订单再次撤销。根因是补偿步骤缺少幂等键。修复后补偿链路统一引入 compensationId,并在 ledger 中记录补偿状态机。

Checklist

  • 每个副作用动作都有补偿声明
  • 补偿流程支持幂等执行
  • 不可逆动作有人工兜底流程
  • 补偿结果进入 run ledger
  • 回放时能区分原动作与补偿动作

延伸阅读: