1. 文档目的
本文档用于定义生成任务的状态机、阶段口径和审计日志协议。
2. 状态机目标
生成任务必须支持:
- 多阶段执行
- 进度可观测
- 单阶段失败可定位
- 有限重试
- 可取消
3. 顶层状态
pendingrunningsucceededfailedcancelled
4. P0 阶段定义
当前 P0 推荐阶段:
initializingunderstanding_inputrouting_entryplanning_stageplanning_unitsplanning_scenesplanning_practiceassembling_stage_artifactpersistingcompleted
5. 状态流
Mermaid 流程图
flowchart LR
A["pending"] --> B["running"]
B --> C["succeeded"]
B --> D["failed"]
B --> E["cancelled"]
D --> B
查看结构源码
flowchart LR
A["pending"] --> B["running"]
B --> C["succeeded"]
B --> D["failed"]
B --> E["cancelled"]
D --> B说明:
- 从
failed回到running表示阶段级重试 - 当前不建议无上限重试
6. 重试规则
- 默认只允许有限次重试
- 优先按阶段重试,不整链路重跑
- 输入非法类错误默认不重试
- 外部 provider 波动类错误允许重试
7. 取消规则
任务取消后应:
- 标记
cancelled - 停止后续阶段
- 保留已完成日志
8. 超时规则
建议至少为以下维度保留超时配置:
- 任务总超时
- 单阶段超时
- 单 provider 调用超时
9. 审计日志协议
9.1 顶层字段
| 字段 | 说明 |
|---|---|
logId | 日志 ID |
jobId | 任务 ID |
step | 当前阶段 |
eventType | 事件类型 |
timestamp | 时间戳 |
payload | 结构化内容 |
requestId | 请求关联 |
9.2 常见事件
job.createdstep.startedstep.completedstep.failedjob.cancelledjob.completed
10. 生成事件与运行事件的边界
10.1 生成事件
关注:
- 任务生命周期
- 阶段计划
- 装配结果
10.2 运行事件
关注:
- 播放
- 切换
- 作答
- 检查点
二者不得混用同一事件语义层。
11. 结论
当前任务协议的重点不是做复杂工作流平台,而是先让:
- P0 正向主链可追踪
- 阶段失败可定位
- 结果可审计
这样后续进入实现阶段时,课程生成才真正可工程化。