序列化与状态恢复
Serialization & State Recovery
支持 Agent 系统中断后从检查点恢复完整运行状态
子问题
1.对象图序列化
2.增量状态保存
3.跨会话恢复
4.Pydantic 多态子类序列化丢失子类字段
5.异步消息队列的非破坏性序列化
6.异常中断时的自动状态保存触发
各项目的解法1 solutions
Signals
横向对比
| 维度 | MetaGPT |
|---|---|
| 序列化格式 | Pydantic model_dump → JSON 文件,约定式路径 workspace/storage/ |
| 多态处理 | __module_class_name + __subclasses_map__ 自动注册,零配置多态反序列化 |
| 触发机制 | serialize_decorator 异常自动保存 + 手动 Team.serialize |
| 循环引用 | Pydantic exclude=True 切断 env/msg_buffer/todo,恢复时 __init__ 重建 |
| 恢复粒度 | Team 级全量恢复,含 roles/actions/memory/context/cost_manager |
| 消息回滚 | role_raise_decorator 删除最新 observed msg 保证幂等重试 |
最佳实践
1.使用 Pydantic model_dump 统一序列化
2.用 __init_subclass__ 实现零配置子类注册
3.用 exclude=True 切断循环引用并在构造函数中重建
4.用装饰器包裹顶层 run 方法实现异常自动 checkpoint