模块 4规划、执行与多 Agent

Durable Execution

为什么持久化一份 JSON 还不够

  • 崩溃点可能在外部调用前后
  • 重放代码可能再次执行副作用
  • 人工等待时权限和业务状态会变化
  • 新版本代码可能无法理解旧检查点

用历史区分“决定过”与“执行过”

  • 命令、事件和结果的稳定 ID
  • 每个外部效果有可关联的完成记录
  • 状态快照加速恢复,历史保留因果和审计
  • 历史 Schema 可演进且不可随意改写

重放恢复控制流,而不是重做外部世界

  • 时间、随机数和外部响应通过记录注入
  • Activity/Tool 在独立边界执行
  • 已完成活动复用历史结果
  • 非确定性代码变更会破坏重放

检查点位置是成本与恢复粒度的取舍

  • 模型调用、Tool、审批和汇聚节点后
  • 过密增加存储和写延迟
  • 过疏增加重算和不确定窗口
  • 检查点必须包含预算、版本和待处理外部调用

代码与状态共同版本化

固定运行依赖

  • Run 记录 Workflow、Prompt 与 Tool Schema 版本
  • 恢复时优先加载原版本

兼容旧历史

  • 通过版本分支保留旧决策路径
  • 新增逻辑不得改变已记录事件的解释

显式迁移

  • 迁移检查点前验证不变量
  • 记录前后版本并支持回滚

安全退役

  • 清点在途 Run 与最长等待时间
  • 旧版本退出前完成迁移或终止

恢复前重新验证现实世界

  • 用户、租户和审批权限
  • 业务对象版本和资源可用性
  • Deadline、预算和政策版本
  • 失效时转补偿、重新规划或人工

长期 Run 需要运营能力

  • 搜索、暂停、取消、重试和人工修复
  • 卡住、心跳丢失和历史膨胀告警
  • 敏感历史的保留、加密和删除
  • 恢复成功率与平均人工处置时长