跳转至

平行分支

多分支并行也是我们在开发编排中常见的诉求, Agently Workflow 支持您使用以下方式轻松编排不同种类的多分支并行。

从单一起点工作块发散的多分支并行

 # 通常包含多分支的工作流不追求在一段链式表达中完成
 # 需要分成多段表达

 # 第一段:START->分支起始点
 workflow.connect_to("start_chunk")

 # 第二段:分支起始点->A分支
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_a_chunk_1")
 .connect_to("branch_a_chunk_2")
 )

 # 第三段:分支起始点->B分支
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_b_chunk_1")
 .connect_to("branch_b_chunk_2")
 )

从单一起点工作块发散,并最终需要在同一个结束工作块等待多个并行分支完成

 # 第一段:START->分支起始点
 workflow.connect_to("start_chunk")

 # 第二段:分支起始点->A分支->结束块
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_a_chunk_1")
 .connect_to("branch_a_chunk_2")
 # 使用不同的输入端点承接分支运行结果
 .connect_to("end_chunk.branch_a")
 )

 # 第三段:分支起始点->B分支->结束块
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_b_chunk_1")
 .connect_to("branch_b_chunk_2")
 # 使用不同的输入端点承接分支运行结果
 .connect_to("end_chunk.branch_b")
 )

关于工作块端点和输入端点的运行逻辑,更详细说明请点击查看这里

更复杂的分支组合编排

 # 第一段:START->分支起始点
 workflow.connect_to("start_chunk")

 # 第二段:分支起始点->A分支->第一等待块
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_a_chunk_1")
 .connect_to("branch_a_chunk_2")
 # 使用不同的输入端点承接分支运行结果
 .connect_to("first_wait_chunk.branch_a")
 )

 # 第三段:分支起始点->B分支->第一等待块
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_b_chunk_1")
 .connect_to("branch_b_chunk_2")
 # 使用不同的输入端点承接分支运行结果
 .connect_to("first_wait_chunk.branch_b")
 )

 # 第四段:分支起始点->C分支->第二等待块
 (
 workflow.chunks["start_chunk"]
 .connect_to("branch_c_chunk_1")
 .connect_to("branch_c_chunk_2")
 # 因为只有一个下游等待块,可以直接使用默认的输入端点
 .connect_to("second_wait_chunk")
 )

 # 第五段:第一等待块/第二等待块->结束块
 workflow.chunks["first_wait_chunk"].connect_to("end_chunk.first")
 workflow.chunks["second_wait_chunk"].connect_to("end_chunk.second")

AltStyle によって変換されたページ (->オリジナル) /