核心 GUIDE
Compensation & Recovery(补偿与恢复)
Compensation / Recovery 处理“前一步 Side Effect 已成功、后一步却失败”的 Workflow,通过 Reconciliation、Compensating Action 与 Durable State 恢复,而不是假装整个 Transaction 可以直接 Retry。
核心心智模型
Distributed Workflow 往往是 Saga,而不是单一 Atomic Transaction。Recovery 先回答“真实发生了什么”;Compensation 再执行 Domain-specific Action,把系统恢复到可接受 Business State。
为什么重要
Agent 会调用不共享 Transaction Boundary 的 External System。Payment 可能成功而 Email 失败,Reservation 可能创建后 Tool Timeout。Blind Retry 会复制 Side Effect,而真正 Rollback 往往不存在。
01
先 Reconcile,再决定 Retry 或 Compensation
为 Operation 持久化 Identifier 与每个 Confirmed Side Effect。Failure/Timeout 后先查询 Authoritative System,确认真实 State,再决定只 Retry 哪一步。如果 Irreversible Step 已完成,执行显式 Refund/Release/Reversal 等 Compensation,并让 Compensation 自身也具备 Idempotency。无法安全恢复时进入 Human Escalation。
02
示例:Booking 已成功,但 Confirmation Timeout
Agent 已成功预订 Hotel,随后 Confirmation API Timeout。Retry 整个 Workflow 可能创建第二个 Reservation。Recovery 使用原 Idempotency Key 查询 Provider,发现 Booking 已存在,记录完成并只重试 Notification。若后续 Policy Check 失败,再执行明确的 Cancellation Compensation。
常见失败模式
- 确认真实 Side Effect 前就 Retry 整个 Workflow。
- External System 无法恢复 Exact Prior State,却仍把 Compensation 称为 Rollback。
- Forward Path 没有 Durable Operation ID 与 Recovery State。
工程启发
- 进入后续 Step 前先持久化 Side-effect State 与 Idempotency Key。
- 选择 Retry/Compensation 前先 Reconcile Authoritative External State。
- 把 Compensation 当成独立 Domain Behavior,并设计它自己的 Failure Handling。
关键结论
- 01Recovery 的第一步是确定真实发生了什么。
- 02Compensation 不等于 Database Rollback。
- 03Durable State 与 Idempotency 让 Partial Failure 可管理。
阅读记录
这里只记录你真实做过的动作,不代表掌握、熟练或认证。
用于这些学习路径
这个 Concept 会在多个 canonical 学习路径中复用。
来自 Knowledge Graph 的相关知识点
这些关系直接来自 canonical graph,不维护第二套 Guide 分类体系。