Microsoft Agent Framework - Workflow 示例 — Checkpoint 与状态恢复

Microsoft Agent Framework - Workflow 示例 — Checkpoint 与状态恢复

💡 原文中文,约6300字,阅读约需15分钟。
📝

内容提要

本文介绍了基于猜数字游戏的工作流检查点机制,包含同实例恢复、全新实例重建和人机交互三个示例。通过二分查找,游戏由两个执行者交替进行,展示了在不同场景下的状态保存与恢复。检查点管理器负责序列化状态,支持长流程恢复和调试。

🎯

关键要点

  • 本文介绍了基于猜数字游戏的工作流检查点机制,包含同实例恢复、全新实例重建和人机交互三个示例。
  • 猜数字游戏由两个执行者组成,分别为猜测者和裁判,通过二分查找进行猜测。
  • 检查点机制在每个 Super Step 结束时自动保存工作流的完整状态快照。
  • 示例 1 展示了如何在同一实例上恢复状态,使用 RestoreCheckpointAsync 方法。
  • 示例 2 展示了如何创建全新实例并从检查点恢复,使用 ResumeStreamingAsync 方法。
  • 示例 3 结合人机交互,每次用户输入时都会产生检查点,支持从任意交互点恢复。
  • 检查点的存储粒度要求开发者显式声明需要持久化的状态,避免序列化问题。
  • CheckpointManager 提供了扩展性,支持自定义存储后端以持久化检查点。

延伸问答

什么是工作流检查点机制?

工作流检查点机制是在工作流执行过程中自动保存状态快照,以便在需要时恢复执行。

猜数字游戏的执行者有哪些角色?

猜数字游戏由两个执行者组成:猜测者和裁判,分别负责进行猜测和判断结果。

如何在同一实例上恢复工作流状态?

可以使用 RestoreCheckpointAsync 方法在同一实例上恢复工作流状态。

全新实例重建的检查点恢复是如何实现的?

全新实例重建通过 InProcessExecution.ResumeStreamingAsync 方法,从检查点恢复状态到一个新的工作流实例。

检查点机制如何支持人机交互?

在人机交互中,每次用户输入时都会产生检查点,允许从任意交互点恢复工作流。

CheckpointManager 的作用是什么?

CheckpointManager 负责管理检查点的序列化和反序列化,支持自定义存储后端。

➡️

继续阅读