MAF快速入门(12)主工作流和子工作流,如何区分?
摘要:在实际业务场景中,往往需要在主工作流中根据工单类型分发或移交到不同的标准化子流程中进行后续处理。本文介绍了MAF中主工作流 + 子工作流的工作模式,最后通过一个企业客服中心处理投诉工单的案例介绍了这种模式的代码实现。
大家好,我是Edison。
最近我一直在跟着圣杰的《.NET+AI智能体开发进阶》课程学习MAF开发多智能体工作流,我强烈推荐你也上车跟我一起出发!
上一篇,我们学习了MAF中如何进行并行工作流。本篇,我们来了解下在MAF中如何开启 主工作流 + 自工作流 的模式,相信这会是大家可能会碰到的场景。
1 子工作流模式介绍
在实际业务场景中,往往需要在主工作流中根据工单类型分发或移交到不同的标准化子流程中进行后续处理。
在MAF中,我们可以使用 Sub-Worklfow 模式来实现这个目的,如下代码片段所示。
首先,将子工作流转换为一个Executor:
var logisticsSubExecutor =
logisticsSubWorkflow.BindAsExecutor("LogisticsSubWorkflow");
var productQualitySubExecutor =
productQualitySubWorkflow.BindAsExecutor("ProductQualitySubWorkflow");
然后,构建主工作流并根据条件路由到子工作流Executor:
var mainWorkflow = new WorkflowBuilder(classifierExecutor)
.AddEdge<ComplaintProcessingRecord>(classifierExecutor, productQualitySubExecutor,
condition: record => record.Category == "产品质量")
.AddEdge<ComplaintProcessingRecord>(classifierExecutor, logisticsSubExecutor,
condition: record => record.Category == "物流问题")
.AddEdge(productQualitySubExecutor, complianceExecutor)
.AddEdge(logisticsSubExecutor, complianceExecutor)
.AddEdge(complianceExecutor, sentimentExecutor)
.WithOutputFrom(sentimentExecutor)
.Build();
这样就实现了:主工作流进行分类转发,自工作流进行详细处理。
2 主工作流+子工作流实验案例
假设我们是一个企业的客服中心,每天都会收到大量的工单,需要根据工单类型(比如是 产品质量话题 还是 物流话题)分发到不同的标准化子流程去做后续处理,最后生成一个用户友好 且 满足合规要求 的回复给用户。
因此,我们的目标是:配置1个主工作流 + 2个子工作流来覆盖这个需求。
