模块 4规划、执行与多 Agent
副作用与补偿
先按可逆性和外部影响分类
- 只读但可能泄露或产生费用
可逆写入
- 存在可靠反向操作和时限
可补偿
- 不能真正回滚,只能做业务抵消
不可逆
- 发送、删除、付款、公开承诺等
高风险动作采用准备—确认—提交
- 解析目标对象与当前版本
- 生成差异预览和影响范围
- 策略检查与参数绑定审批
- 提交时再次校验并使用幂等键
超时后先确认结果,不立即重放
- 通过业务查询、回执或事件对账
- 外部系统没有查询能力时降低自治等级
- 状态标记 unknown 并阻止依赖步骤
- 人工处置需要完整 Attempt 时间线
跨系统一致性使用显式 Saga
- 每个正向步骤对应可选补偿
- 记录完成顺序、补偿顺序和不可补偿点
- 补偿本身也会失败,需要重试和人工升级
- 业务最终状态可能是“已补偿”而非“从未发生”
外部状态会在计划和提交间变化
- 乐观锁、版本号和条件写入
- 冲突后重新读取并重规划
- 审批不是锁,等待期间必须重新校验
- 禁止覆盖其他操作者的新修改
证明每个副作用发生了什么
- 意图、参数、审批、幂等键和外部回执关联
- 正向步骤、补偿步骤和最终业务状态
- 对账任务发现孤儿或重复记录
- 敏感值脱敏但保留可关联 ID
围绕提交窗口做故障演练
- 请求发出前/后进程崩溃
- 成功响应丢失和重复消息
- 补偿失败与不可补偿动作
- 人工审批过期和并发修改