Skip to content

TriggerFlow 核心概念

可视化边界:Mermaid 可以示意匿名链路;JSON/YAML 导出仍要求具名 handler / condition。

1. 核心对象关系

如何阅读这张图

  • TriggerFlow 是定义,Execution 是一次运行实例。
  • TriggerFlowRuntimeData 不是孤立事件对象,而是 handler 进入时看到的整个运行时上下文切片。

2. Flow、BluePrint、Execution

  • TriggerFlow 流程定义本体,也是创建 execution 的入口
  • TriggerFlowBluePrint 进程内可复制的流程模板
  • Execution 一次独立运行实例,持有本次运行的状态、结果、interrupt 和 runtime resources

工程上应把:

  • TriggerFlow 看成定义
  • Execution 看成请求级运行态

3. Signal 才是内核

TriggerFlow 底层围绕 Signal 运作。一个信号包含:

  • id
  • trigger_event
  • trigger_type
  • value
  • source
  • meta
  • layer_marks

trigger_type 当前公开有:

  • event
  • runtime_data
  • flow_data

4. Chunk = handler + continuation signal

每个 chunk 都有:

  • 一个 handler
  • 一个名字
  • 一个完成后的 continuation signal

如果 chunk 内部还会主动发业务事件,建议显式:

python
chunk.declare_emits("ApprovalRequest")

5. TriggerFlowRuntimeData 是运行时上下文

handler 入参现在应该理解为“运行时上下文对象”。

它暴露的核心信息有:

  • 当前信号:trigger_eventtrigger_typevalue
  • 当前 signal 快照:signalsignal_idsignal_sourcesignal_metasignal_info
  • 当前 execution:executionexecution_id
  • 数据命名空间:stateflow_state
  • 资源视图:resources

兼容说明:

  • TriggerFlowRuntimeData 是主名
  • TriggerFlowEventData 是兼容别名

6. 数据与资源边界

  • data.state 当前 execution 的可恢复状态
  • data.flow_state flow 级共享状态
  • data.resources 当前 execution 可见的 runtime resources

资源相关公开接口:

  • get_resource()
  • require_resource()
  • set_resource()
  • del_resource()

7. 中断与恢复

pause_for() 会:

  • 生成 interrupt
  • 把 execution 置为 waiting
  • 往 runtime stream 写 interrupt 事件

continue_with() 会:

  • 更新 interrupt 状态与 response
  • 把 execution 切回 running
  • 重新注入 resume event