11.3 容错模式与系统级恢复

AI Agent 系统在生产环境中需要面对网络中断、API 超时等各种故障。本节介绍四大容错模式(断路器、隔舱、超时、重试)、幂等性设计、检查点恢复和“错误作为观察”设计模式。

11.3.1 四大容错模式

1. 断路器

断路器的状态转移流程如下:

图 11-3:断路器状态机

断路器通过状态机实现故障隔离。首先定义状态枚举和配置:

2. 隔舱

隔舱模式的实现代码如下:

3. 超时

实现如下:

4. 重试

具体实现代码如下:

图 11-4:容错模式防护层(Retry + Bulkhead + Circuit Breaker)

图 11-5:四大容错模式级联防护 重试策略通过指数退避和抖动来处理瞬时故障。首先定义重试配置和策略:

11.3.2 幂等性设计

核心实现如下: 幂等性管理器确保相同操作只执行一次,即使请求重复。通过生成操作的哈希键来检测重复:

11.3.3 检查点恢复

实现代码如下: 检查点管理器在长流程中定期保存状态,支持故障恢复。首先定义检查点数据结构:

可恢复工作流使用检查点来支持长流程的容错执行:

11.3.4 “错误作为观察”模式

OpenClaw 的独特模式:系统不抛异常打断流程,而是将错误信息注入观察流。 错误作为观察模式允许系统继续执行,而不是抛出异常。首先定义错误观察数据结构:

11.3.5 实战:完整的容错系统

示例代码如下:

11.3.6 总结

容错模式的四大支柱:

模式
作用
适用场景

断路器

快速失败,保护下游

故障 API、不稳定服务

隔舱

资源隔离,避免级联

并发控制、资源限制

超时

防止无限等待

网络请求、长操作

重试

自动恢复瞬时故障

临时故障、网络抖动

辅助机制:幂等性、检查点、错误作为观察,构成完整的生产级容错系统。


[1] P95 百分位数(0.95)为经验值,实际系统应基于历史执行时间数据标定,并考虑业务 SLA 要求。

最后更新于