news 2026/6/23 14:12:25

Microsoft Agent Framework - Workflow 基本概念

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Microsoft Agent Framework - Workflow 基本概念

前面的系列把关于 Agent 的部分讲完了。下面让我们开始说说关于 workflow 的部分。

Microsoft Agent Framework 提供了一个强大的工作流 (Workflow) 系统,使您能够构建集成了 AI 代理和业务流程的智能自动化系统。借助其类型安全的体系结构和直观的设计,您可以编排复杂的工作流,而无需陷入基础设施的复杂性中,从而专注于核心业务逻辑。

AI Agent 与 Workflow 有何不同?

在深入探讨之前,我们先来厘清一个基本概念:AI Agent 和 Workflow 的区别。

  • AI Agent: 通常由大型语言模型 (LLM) 驱动,可以访问各种工具来完成任务。Agent 执行的步骤是动态的,由 LLM 根据对话上下文和可用工具决定。

  • Workflow: 一个预定义的、由多个操作组成的序列,其中可以包含 AI Agent 作为组件。Workflow 的流程是明确定义的,允许对执行路径进行更精确的控制,非常适合处理复杂的业务流程。

简而言之,您可以将 Workflow 想象成一个流程图,而 AI Agent 则是这个流程图中的一个或多个“智能”节点。

核心概念:Executors 与 Edges

Workflow 由两个核心概念组成:Executors (执行器)和 **Edges (边)**。

  • Executors: 代表工作流中的单个处理单元。它们可以是 AI Agent,也可以是自定义的业务逻辑组件。

  • Edges: 定义了 Executors 之间的连接,决定了消息的流动方向,并可以附加条件来控制路由。

一个 Workflow 本质上就是一个由 Executors 和 Edges 组成的有向图。


Executors (执行器) 详解

Executors 是处理消息的基础构建块。它们是自主的处理单元,接收特定类型的消息,执行操作,并能产生输出消息。

在 C# 中,一个基础的 Executor 结构如下。它通过实现IMessageHandler<TInput, TOutput>接口来处理输入消息,并可以简单地通过返回一个值来将消息发送给下游连接的 Executor。

using Microsoft.Agents.Workflows; using Microsoft.Agents.Workflows.Reflection; // 一个将输入字符串转换为大写的 Executor internal sealed class UppercaseExecutor() : ReflectingExecutor<UppercaseExecutor>("UppercaseExecutor"), IMessageHandler<string, string> { public async ValueTask<string> HandleAsync(string message, IWorkflowContext context) { string result = message.ToUpperInvariant(); return result; // 返回值会自动发送给连接的 Executor } }

您也可以通过IWorkflowContext对象手动发送消息,或者通过实现多个IMessageHandler接口来让一个 Executor 处理多种不同类型的输入。


Edges (边) 详解

Edges 定义了消息如何在 Executors 之间流动。它们是工作流图中的连接线,决定了数据流的路径。 框架支持多种强大的 Edge 模式:

Direct Edges (直接边)

这是最简单的连接方式,用于在两个 Executor 之间建立一对一的直接连接。

WorkflowBuilder builder = new(sourceExecutor); builder.AddEdge(sourceExecutor, targetExecutor);

Conditional Edges (条件边)

只有当满足特定条件时,消息才会通过此 Edge 流动。这对于实现逻辑判断非常有用。 例如,根据垃圾邮件检测的结果,将邮件路由到不同的处理器。

// 根据消息内容进行路由 builder.AddEdge( source: spamDetector, target: emailProcessor, condition: result => result is SpamResult spam && !spam.IsSpam ); builder.AddEdge( source: spamDetector, target: spamHandler, condition: result => result is SpamResult spam && spam.IsSpam );

Switch-case Edges (Switch-Case 边)

当您需要根据多个不同条件将消息路由到不同 Executor 时,可以使用 Switch-Case 模式,它类似于编程语言中的switch语句。

builder.AddSwitch(routerExecutor, switchBuilder => switchBuilder .AddCase(message => message.Priority < Priority.Normal, executorA) .AddCase(message => message.Priority < Priority.High, executorB) .SetDefault(executorC) );

Fan-out Edges

将一个 Executor 的消息分发给多个目标。这对于并行处理任务非常有效。

// 将消息发送给所有目标 builder.AddFanOutEdge(splitterExecutor, targets: [worker1, worker2, worker3]);

Fan-in Edges

从多个源收集消息并汇集到一个目标 Executor。这通常用于聚合来自多个并行任务的结果。

// 聚合来自多个 worker 的结果 builder.AddFanInEdge(aggregatorExecutor, sources: [worker1, worker2, worker3]);

总结

通过组合使用ExecutorsEdges,您可以构建出功能强大且逻辑清晰的自动化工作流。Executors 作为独立的业务处理单元,而 Edges 则像神经网络一样将它们连接起来,实现了灵活的消息路由和流程控制。

希望这篇介绍能帮助您理解 Microsoft Agent Framework 中 Workflow 的基本概念。如果您想深入学习,建议您查阅官方文档以获取更详细的信息和示例。

Microsoft Agent Framework - AIContextProvider 上下文管理

Microsoft Agent Framework - 对 Agent 进AOP(Middleware)编程

Microsoft Agent Framework - 使用 OpenTelemetry 对 Agent 进行追踪

Microsoft Agent Framework - 持久化 Agent 对话

Microsoft Agent Framework - 把 Agent 暴露为 MCP Server

Microsoft Agent Framework - 结构化输出

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 18:29:34

Wan2.2-T2V-5B能否生成社会责任项目回顾?品牌形象塑造

Wan2.2-T2V-5B能否生成社会责任项目回顾&#xff1f;品牌形象塑造 在品牌传播的战场上&#xff0c;一个越来越明显的趋势正在浮现&#xff1a;内容的速度&#xff0c;正在决定品牌的温度。 想象一下——你的企业在云南山区完成了一次支教活动&#xff0c;志愿者教孩子们写代码、…

作者头像 李华
网站建设 2026/6/23 15:25:00

如何评估企业的量子传感器地震预警应用

如何评估企业的量子传感器地震预警应用关键词&#xff1a;量子传感器、地震预警、企业应用评估、评估指标、应用场景摘要&#xff1a;本文旨在探讨如何对企业的量子传感器地震预警应用进行全面评估。首先介绍了量子传感器地震预警应用的背景&#xff0c;包括目的、预期读者、文…

作者头像 李华
网站建设 2026/6/23 2:34:11

AI驱动的软件架构模式识别:辅助系统理解

AI驱动的软件架构模式识别:辅助系统理解关键词&#xff1a;AI、软件架构模式识别、系统理解、机器学习、深度学习摘要&#xff1a;本文聚焦于AI驱动的软件架构模式识别&#xff0c;旨在阐述其如何辅助系统理解。首先介绍了该领域的背景&#xff0c;包括目的、预期读者等内容。接…

作者头像 李华
网站建设 2026/6/23 0:35:18

大数据领域 OLAP 数据存储方案的选择与实践

大数据领域OLAP数据存储方案的选择与实践&#xff1a;从原理到落地的全指南 引言&#xff1a;为什么OLAP存储选择是大数据时代的“生死题”&#xff1f; 痛点引入&#xff1a;你是否遇到过这些“查数崩溃时刻”&#xff1f; 场景1&#xff1a;运营同学要查“过去7天各地区的用户…

作者头像 李华
网站建设 2026/6/22 17:50:38

Wan2.2-T2V-5B能否生成节日促销广告?零售业营销加速

Wan2.2-T2V-5B能否生成节日促销广告&#xff1f;零售业营销加速 你有没有经历过这种场景&#xff1a;距离春节只剩三天&#xff0c;市场部还在等外包团队出一条“喜庆红包商场氛围”的短视频&#xff0c;结果对方说“最快还得两天”——而你的社交媒体排期已经空在那里了。&…

作者头像 李华
网站建设 2026/6/23 12:31:44

量产难,无巧思?Nano Banana Pro Veo 助力视频广告 “多快好省“

以下文章来源于谷歌云服务&#xff0c;作者 Google Cloud在数字营销的世界里&#xff0c;如何持续制作既有创意又能带来高转化率的视频广告&#xff0c;始终是品牌面临的核心挑战。此次云上技术汇&#xff0c;我们邀请到了 Google Ads 客户解决方案工程师思聪和 Google Cloud A…

作者头像 李华