序列化器(Serializer)
在图执行生命周期中,状态需要被序列化,用于:
- 节点间状态传递时的深度克隆与隔离。
- 跨超级步骤(Super-steps)及断点恢复时的持久化存储(Checkpointer)。
框架提供了 Jackson 与 JDK 原生序列化实现,默认采用 Jackson 作为状态序列化方案。
序列化器设计考量
在设计智能体状态序列化时,重点关注以下维度:
- 类型安全性:避免使用不安全的反序列化机制,预防安全漏洞。
- 三方库对象兼容:能够无缝兼容 Spring AI、模型 SDK 返回的
Message等复杂不可变对象。 - 隔离类加载风险:降低热更新与动态类加载时的类型转换异常。
- 空值与缺失字段管理:在长流程与版本演进中优雅兼容增减字段。
自定义序列化方案
对于用户自定义的业务数据类型,有三种常见接入方式: