主题
Agent State 与 Checkpoint 应该保存哪些内容?
题型:追问 · 区分业务状态、执行状态和可重建数据。
建议回答
Agent State 至少包含会话与运行标识、当前节点、用户目标、消息或摘要、计划、工具调用请求与结果、检索引用、步数、Token 预算、错误信息和中断原因。Checkpoint 保存的是可恢复的一致性快照,还要带图版本、Prompt 版本、模型与工具版本、乐观锁版本以及创建时间。
并不是所有内容都要复制进 Checkpoint。大体积文档、完整模型流和工具原始响应可以单独存储,在状态中保留引用;敏感参数应脱敏或加密。状态更新最好由节点返回增量,由统一 reducer 合并,避免多个节点直接修改共享对象。
设计原则
- 可恢复:能判断从哪个节点继续,而不是只能重新跑全链路。
- 可追踪:能解释某一步使用了什么输入、版本和工具结果。
- 可演进:图或状态结构升级后有版本迁移策略。
- 可隔离:tenantId、userId、conversationId 和 runId 边界明确。
易错点
- Checkpoint 不等于把所有日志序列化一次。
- 不要保存可重新计算但体积巨大的中间数据。