很多团队第一次做 AI Agent 自动化时,只设计成功路径:读资料、做判断、调用工具、输出结果。问题是,真实生产环境里最需要设计的往往是失败路径。工具写了一半、外部接口超时、用户撤回需求、知识库返回旧资料,都会让 Agent 处在尴尬位置:继续执行有风险,直接失败又可能留下脏数据。
所以回滚与补偿机制不是高级功能,而是 Agent 进入生产流程前必须想清楚的底线。它和 失败重试与幂等设计、任务状态机、证据链设计 是一组能力:先知道发生了什么,再决定怎么恢复。
先区分可回滚和不可回滚动作
不是所有动作都能简单撤销。更新内部草稿、改一个标签、写一条待办,通常可以回滚;但已经发出的邮件、已经通知客户、已经触发外部审批,就只能做补偿。补偿不是撤销历史,而是在后面追加一个修正动作,比如发更正通知、创建人工复核任务、恢复上一版配置。
设计 Agent 工具时,最好给每个写入型动作标上恢复方式:可撤销、需补偿、只能人工处理。这样任务失败时,系统不是临时猜,而是按动作类型进入对应分支。
写入前要保存快照
回滚的前提是知道写入前是什么样。Agent 在修改文档、更新客户字段、调整工单状态之前,应该保存关键字段快照、版本号或原始链接。没有快照,就算发现错了,也只能靠人翻历史记录。
这和 OpenClaw 连接器审计 很接近。连接器不只要知道谁读了什么、写了哪里,还要能还原写入前后的差异。否则审计日志只剩“执行过”,没有恢复价值。
补偿任务要进入状态机
补偿不是临时发一条消息了事。它应该像普通任务一样进入状态机,带上来源任务、失败原因、建议动作、负责人和截止时间。比如某个 Agent 错误修改了客户优先级,补偿任务可以要求客服主管复核最近 24 小时同类修改。
如果补偿任务也失败,要有上限和升级路径。连续补偿失败后,应该进入人工接管,而不是在后台反复重试。这一点可以和 限流与配额 结合,避免失败恢复本身继续消耗资源。
人工接管要带上下文
很多系统说“需要人工处理”,但不给人足够信息。真正可用的接管通知应该包含原始输入、已完成步骤、失败步骤、工具返回、影响对象、建议补偿动作和风险等级。否则人接手后还要从日志里重新拼线索。
这也是证据链的价值。Agent 不一定能自己修好所有错误,但它至少要把错误交接清楚,让人知道该撤销、该补发、该忽略,还是该暂停整条流程。
总结
AI Agent 回滚与补偿机制的核心,是承认自动化会失败,并提前给失败留下恢复路径。可回滚动作保存快照,不可回滚动作设计补偿任务,高风险情况交给人工接管。只设计成功路径的 Agent,很难长期稳定运行。