Skip to content

Run Lifecycle

标准状态

  • queued
  • submitted
  • running
  • retrying
  • canceling
  • succeeded
  • failed
  • canceled

合法转移

  • queued -> submitted
  • submitted -> running
  • submitted -> failed
  • running -> succeeded
  • running -> failed
  • running -> canceling
  • canceling -> canceled
  • failed -> retrying
  • retrying -> submitted

规则

  • 终态为:succeededfailedcanceled
  • 终态 MUST 不可逆
  • canceling 是中间态,表示取消请求已被接受但尚未完成释放
  • 进入 retrying MUST 创建新 attempt,而不是覆盖原 attempt
  • retry 产生的新 attempt MUST 继承同一 executionProfileSnapshot.runEnv,不得借机自动升级或降级 RunEnv
  • retry 产生的新 attempt MUST 继承同一 resourceRevisionId
  • 等待审批、补充输入、鉴权或确认时,run MUST 继续停留在当前活动状态,而不是进入新的顶层状态

Interaction 覆盖层

  • 当 run 等待外部交互时,blockingInteractionId 指向当前阻塞 interaction
  • blockedReason 描述稳定的面向客户端原因;例如 approval_requiredinput_requiredauth_required
  • interaction 被解决、拒绝、过期或取消,会改变阻塞覆盖层,但不会直接替代 run 状态转移
  • interaction 超时后的后续动作由编排器策略决定;它可以继续等待、失败或取消 run

触发源

  • 控制面命令
    • submit / cancel / fail
  • runtime 事件
    • started / finished / error
  • orchestrator 决策
    • retry / timeout / provider failure

约束

  • 一个 run MUST 只能拥有一个当前状态
  • 一个活动 attempt 对应一个主 provider session
  • 一个 run 在任一时刻 MUST 至多有一个当前阻塞 interaction,但 MAY 存在多个非阻塞 open interaction
  • 进入终态后,允许 projection 继续追平,但不允许新增业务输入

白皮书与规范内容以仓库真源为准。