问题域/PD-116

序列化与状态恢复

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