MAF快速入门中,有哪些常见的智能体编排模式?
摘要:事实上,在构建AI应用解决业务问题时,单个Agent往往无法胜任所有任务,常常需要我们将多个Agent组合起来系统工作。而这种组合与协调的方式,就被称为 Agent Orchestration 即 Agent编排。MAF支持多种多Agent
大家好,我是Edison。
最近我一直在跟着圣杰的《.NET+AI智能体开发进阶》课程学习MAF开发多智能体工作流,我强烈推荐你也上车跟我一起出发!
上一篇,我们学习了MAF中如何进行子工作流。本篇,我们来了解下在MAF中如何快速实现一些常见的智能体编排模式。
1 智能体编排模式介绍
传统的单Agent系统在处理复杂多面任务的能力方面受到较多限制,因此我们会有多Agent编排协作完成任务的需求。
事实上,在构建AI应用解决业务问题时,单个Agent往往无法胜任所有任务,常常需要我们将多个Agent组合起来系统工作。而这种组合与协调的方式,就被称为Agent Orchestration即Agent编排。
MAF支持多种多Agent编排流程模式,每个模式都针对不同的协作方案而设计。这些模式作为框架的一部分提供出来,我们可以自己扩展。
在MAF中,常见的Agent编排模式如下:
Sequential 顺序编排:即各个Agent依次处理并传递给下一个Agent执行;
Concurrent 并发编排:即多个Agent并行处理同一个任务,然后汇聚结果;
Handoffs 移交编排:即每个Agent都可以将对话移交给另一个Agent,确保每个Agent处理任务的某个部分;
GroupChat 群聊编排:即多个Agent加入了同一个微信群,通过群聊对话形成一些决策;
对应到MAF中,AgentWorkflowBuilder类提供了这些编排模式的具体实现,我们开发者可以直接使用对应的接口即可快速完成有一次编排 而无需 自行实现Edge连接。
2智能体编排模式详解
2.1 顺序编排
在顺序编排模式中,各个Agent被组成一个流程,每个Agent都会处理任务,并将执行结果输出传递给下一个待执行的Agent。可以看出,对于每个基于上一步骤构建的工作流(Workflow)来说,这是比较适合的模式。
目前,像文档审阅、工作流、数据处理管道、多阶段推理等,是比较常见的应用场景。
下面的代码展示了在MAF中的顺序编排实现:
var analyst = new ChatClientAgent(...);
var writer = new ChatClientAgent(...);
var editor = new ChatClientAgent(...);
// Build a Workflow
var workflow = AgentWorkflowBuilder.BuildSequential(
"content-team-workflow",
[analyst, writer, editor]);
// Test the Workflow
......
可以看到,通过BuildSequential方法即可快速完成一次顺序编排。
2.2 并发编排
并发模式使用多个Agent并行处理同一个任务,每个Agent都可以独立处理输入,并收集并聚合结果。
此模式比较适合多种观点或解决方案很有价值的场景,比如集思广益、群体推理以及其他投票系统。
下面的代码展示了在MAF中的代码实现:
// Step1. Create Agents
var sensitiveWordAgent = new ChatClientAgent(...);
var adDetectionAgent = new ChatClientAgent(...);
var sentimentAgent = new ChatClientAgent(...);
// Step2. Build a Workflow
var workflow = AgentWorkflowBuilder.BuildConcurrent(
agents: new[] { sensitiveWordAgent, adDetectionAgent, sentimentAgent },
aggregator: auditAggregator
);
// Step3. Test the workflow
......
2.3 移交编排
在移交(也可以叫做交接)编排模式中,允许各个Agent根据上下文或用户请求相互转移控制权,每个Agent都可以通过适当的专业知识将对话“移交”给另一个Agent,确保每个Agent处理任务的某个指定部分。
这种模式非常适合于客户支持(客服)、专家系统或需要动态委派类型的任务场景。
