正在加载模式…
可逆操作与补偿(智能体 Saga)
一种让智能体的副作用能够安全撤销的模式。将执行轨迹组织为一个 saga:每个前向操作(预订机票、扣款、创建记录)都配有一个补偿操作来撤销其业务影响,并通过幂等键使每个工具具备幂等性,从而让重试或回滚产生相同的最终状态,而不是重复执行。当某一步中途失败时,智能体会按相反的顺序对已完成的步骤执行补偿,而不是让系统停留在半应用的状态。跨服务并不存在自动的 ACID 回滚,因此补偿被明确设计为每个操作在逻辑上的逆操作。它与 `durable-execution` 不同:后者持久化并重放一次运行,使其在崩溃后能够继续直至完成;而本模式定义的是当“完成”不再是正确结果时,如何在语义上撤销已提交的副作用。
30秒速览
- 是什么
- 为每个正向操作配一个显式的补偿操作来撤销其业务影响,并用幂等键让重试与回滚收敛到同一状态。
- 何时使用
- 跨服务的多步骤工作流,中途失败时必须撤销已提交的副作用,而又没有自动的 ACID 回滚。
- 注意
- 补偿逻辑必须写对且始终可用;一旦补偿有缺陷或缺失,系统就会停在不一致状态且无法自动恢复。
向AI专家咨询此模式
打开助手并预填您的问题,发送前可先确认。
可逆操作与补偿(智能体 Saga): 概览
一种让智能体的副作用能够安全撤销的模式。将执行轨迹组织为一个 saga:每个前向操作(预订机票、扣款、创建记录)都配有一个补偿操作来撤销其业务影响,并通过幂等键使每个工具具备幂等性,从而让重试或回滚产生相同的最终状态,而不是重复执行。当某一步中途失败时,智能体会按相反的顺序对已完成的步骤执行补偿,而不是让系统停留在半应用的状态。跨服务并不存在自动的 ACID 回滚,因此补偿被明确设计为每个操作在逻辑上的逆操作。它与 `durable-execution` 不同:后者持久化并重放一次运行,使其在崩溃后能够继续直至完成;而本模式定义的是当“完成”不再是正确结果时,如何在语义上撤销已提交的副作用。
- Every forward action paired with a compensating action (semantic undo)
- Idempotency keys make retries and rollbacks converge to the same end state
- Ordered rollback of completed steps on mid-trajectory failure
- Check-before-act and upsert guards prevent duplicate side effects
- No automatic ACID rollback: compensations are explicitly authored
- Distributed side effects modeled as a saga of local transactions
The Agent Architect
每周一个模式、一个权衡、一个生产事故案例。为构建智能体系统的人准备的每周简报。
每周一封邮件,一键退订。您的地址仅用于发送简报。
参考资料
该模式所依据的论文、规范和代码仓库。
由本目录背后的工程师执行
为你的智能体架构做一次评审
本页讲的是一个模式。真实系统会同时跑几十个,而多数故障恰恰出在它们的衔接处。我们按本目录的 288 个模式评审你的整体设计:架构、可靠性、评测与成本,每一条结论都对应到能修复它的模式。
€750(原价 €1,500),一周交付,书面报告加讲解通话,9月30日前