资讯动态

Agent Framework 中智能体的Concurrent编排模式

发布时间:2026/10/25 22:35:37 来源:尧图企业网站定制
上一节我们介绍了 Sequential顺序编排这种最基础的 Agent 编排模式。 实际上在 Agent Framework 中顺序执行链路既可以通过 AgentWorkflowBuilder.BuildSequential() 快速创建也可以通过更底层的 WorkflowBuilder 手动定义执行关系。 前者本质上是对后者的一层语法糖封装用于简化线性链路的构建。创建 AI Agent在 C# 中一个 Agent 通常会基于一个聊天模型客户端创建。var endpoint Environment.GetEnvironmentVariable(AZURE_OPENAI_ENDPOINT) ?? throw new InvalidOperationException(AZURE_OPENAI_ENDPOINT is not set.); var deploymentName Environment.GetEnvironmentVariable(AZURE_OPENAI_DEPLOYMENT_NAME) ?? gpt-5.4-mini; var chatClient new AzureOpenAIClient(new Uri(endpoint), new AzureCliCredential()) .GetChatClient(deploymentName) .AsIChatClient();这里我们不过多介绍如何创建基础Agent毕竟不是我们关注的重点关于创建基础Agent的细节可以参考之前的文章Agent Framework 系列基础篇30讲Sequential另外一种实现方式Sequential 是最基础的一种编排模式。在该模式下多个 Agent 会按照预定义的顺序依次执行前一个 Agent 的输出会作为后一个 Agent 的输入。 在 Agent Framework 中可以通过BuildSequential方法快速构建顺序执行的 Workflow其定义如下public static Workflow BuildSequential(params IEnumerableAIAgent agents)该方法接收一个 IEnumerable用于指定执行链路中的 Agent 顺序并返回一个 Workflow 实例。示例下面的示例中多个翻译 Agent 会按照定义顺序依次执行var translationAgents from lang in new[] { 法语, 中文, 西班牙语, 英语 } select GetTranslationAgent(lang, client); // 构建顺序编排 Workflow var workflow AgentWorkflowBuilder.BuildSequential(translationAgents); // 执行 await RunWorkflowAsync( workflow, [new(ChatRole.User, HelloWorld)] );其实Sqeuential顺序执行是最简单的编排方式其实本质和我们上节介绍的是一样的BuildSequential 本质上只是对顺序编排的一种语法糖用于简化线性执行链路的构建。Concurrent并发编排Concurrent 是一种并发执行的编排模式。在该模式下多个 Agent 会基于同一输入同时执行各自生成结果。创建并发 Workflow 的核心方法是BuildConcurrent其定义如下public static Workflow BuildConcurrent(IEnumerableAIAgent agents, FuncIListListChatMessage, ListChatMessage? aggregator null)其中第一个参数 agents 用于指定参与执行的 Agent 集合 第二个参数 aggregator 是一个可选的聚合函数用于在并发执行完成后对多个 Agent 的输出结果进行统一处理聚合函数Aggregator因为在 Concurrent 模式下每个 Agent 都会独立生成自己的输出结果。如果没有统一的聚合逻辑系统就会得到多份彼此独立的结果而无法形成最终统一输出。Aggregator 的作用就是负责对这些结果进行收敛处理。开发者可以在此基础上进行多种处理例如合并Merge筛选Filter排序Rank融合Fusion如果未提供该参数框架将使用默认策略对结果进行合并。示例并发翻译下面的示例中多个翻译 Agent 会同时处理同一输入并通过聚合函数将结果合并var translationAgents from lang in new[] { 法语, 中文, 西班牙语, 英语 } select GetTranslationAgent(lang, client); var workflow AgentWorkflowBuilder.BuildConcurrent( translationAgents, results { var merged new ListChatMessage(); foreach (var agentOutput in results) { merged.AddRange(agentOutput); } return merged; }); await RunWorkflowAsync( workflow, [new(ChatRole.User, HelloWorld)]);输出结果如下总结本节介绍了 Agent Framework 中两种最基础的 Agent 编排模式Sequential 与 Concurrent。Sequential顺序编排适用于存在明确上下游依赖的任务链路多个 Agent 按顺序依次执行前一个 Agent 的输出会传递给下一个 Agent。 Concurrent并发编排适用于多个 Agent 可以独立处理同一输入的场景各 Agent 并行执行最终通过 Aggregator 对结果进行统一收敛。源代码地址https://github.com/bingbing-gui/dotnet-agent-playbook/tree/master/src/ai-agent/Agent-Framework/33-WorkFlow-Concurrent-Agent

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑