一个审批 Agent 执行到第三步时服务重启了,你会怎样设计状态机和持久化,让它恢复后既不丢进度也不重复操作?
考察说明
考查持久化工作流、状态迁移和安全恢复的设计能力。
回答思路
- 把流程定义成显式状态与允许迁移,每一步记录输入、输出、尝试次数、业务结果和下一待办,而非只保存聊天文本。
- 状态更新与外部操作之间需要可恢复边界,通过幂等键、事务外盒或结果查询确认动作是否已经生效。
- 恢复时从持久化检查点读取并验证当前业务状态,只重试确认未执行的步骤,不能简单从最后一条消息继续猜测。
- 模型和工具版本应随运行记录保存,长时间挂起后若版本变化,需要迁移状态或转人工确认。
- 测试要主动注入各步骤前后的崩溃、超时和重复消息,验证最终状态唯一且审计链完整。