模块 4规划、执行与多 Agent
Durable Execution
为什么持久化一份 JSON 还不够
- 崩溃点可能在外部调用前后
- 重放代码可能再次执行副作用
- 人工等待时权限和业务状态会变化
- 新版本代码可能无法理解旧检查点
用历史区分“决定过”与“执行过”
- 命令、事件和结果的稳定 ID
- 每个外部效果有可关联的完成记录
- 状态快照加速恢复,历史保留因果和审计
- 历史 Schema 可演进且不可随意改写
重放恢复控制流,而不是重做外部世界
- 时间、随机数和外部响应通过记录注入
- Activity/Tool 在独立边界执行
- 已完成活动复用历史结果
- 非确定性代码变更会破坏重放
检查点位置是成本与恢复粒度的取舍
- 模型调用、Tool、审批和汇聚节点后
- 过密增加存储和写延迟
- 过疏增加重算和不确定窗口
- 检查点必须包含预算、版本和待处理外部调用
代码与状态共同版本化
固定运行依赖
- Run 记录 Workflow、Prompt 与 Tool Schema 版本
- 恢复时优先加载原版本
兼容旧历史
- 通过版本分支保留旧决策路径
- 新增逻辑不得改变已记录事件的解释
显式迁移
- 迁移检查点前验证不变量
- 记录前后版本并支持回滚
安全退役
- 清点在途 Run 与最长等待时间
- 旧版本退出前完成迁移或终止
恢复前重新验证现实世界
- 用户、租户和审批权限
- 业务对象版本和资源可用性
- Deadline、预算和政策版本
- 失效时转补偿、重新规划或人工
长期 Run 需要运营能力
- 搜索、暂停、取消、重试和人工修复
- 卡住、心跳丢失和历史膨胀告警
- 敏感历史的保留、加密和删除
- 恢复成功率与平均人工处置时长