Microsoft Agent Framework 工作流

概述

Microsoft代理框架工作流使你能够构建智能自动化系统,以便将 AI 代理与业务流程无缝融合。 借助其类型安全的体系结构和直观的设计,可以协调复杂的工作流,而无需陷入基础结构复杂性,从而专注于核心业务逻辑。

工作流与代理有何不同?

虽然代理和工作流可以涉及多个步骤来实现目标,但它们为不同的目的提供服务,并在不同的抽象级别运行:

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

    AI 代理

  • 工作流:另一方面,工作流是一系列预定义的作,可以将 AI 代理作为组件包含在内。 工作流旨在处理可能涉及多个代理的复杂业务流程、人工交互和与外部系统的集成。 显式定义工作流流,以便更好地控制执行路径。

    工作流概述

主要功能

  • 类型安全性:强类型可确保消息在组件之间正确流动,并全面验证可防止运行时错误。
  • 灵活的控制流:基于图形的体系结构允许使用 executorsedges直观地对复杂工作流进行建模。 支持条件路由、并行处理和动态执行路径。
  • 外部集成:内置请求/响应模式,用于与外部 API 和人机循环方案无缝集成。
  • 检查点:通过检查点保存工作流状态,从而支持在服务器端恢复和继续长时间运行的进程。
  • 多代理编排:用于协调多个 AI 代理的内置模式,包括顺序、并发、交接和磁性。

工作流 API

Microsoft代理框架提供两个补充 API 来生成工作流:

  • Functional Workflow API(Python, experimental):使用 async@workflow 修饰器将工作流编写为纯@step 函数。 使用本机Python控制流(if/else、循环、asyncio.gather)而不是图形概念。 在采用 Graph API 之前,这是一个很好的起点。
  • 工作流构建器和执行:使用 WorkflowBuilderexecutorsedges 生成为定向图的工作流。 最适合固定拓扑,支持类型验证的消息路由和基于超级步骤的并行执行。

这两个 API 完全受支持,并生成相同的可观察结果(事件、流式处理、HITL、检查点)。 根据最适合工作流的内容进行选择:

功能 (@workflow 图 (WorkflowBuilder
控制流 本地Python(if、循环、asyncio.gather 边缘和条件
最适用于 顺序管道、自定义循环、即席并行 固定图形、扇出/扇入、类型验证的消息路由
并行度 asyncio.gather 并行边组,超级步执行
可观察性 每个步骤的事件使用 @step 针对每个执行器的事件
HITL ctx.request_info() RequestInfoExecutor
检查点技术 @step按结果缓存 超级步边界检查点
代理包装 .as_agent()FunctionalWorkflow .as_agent()Workflow

若要以纯Python表示逻辑,请从 @workflow 开始。 为了实现严格类型验证的消息路由或图形执行模型,请转向 WorkflowBuilder

核心概念

  • 执行程序:表示工作流中的单个处理单元。 它们可以是 AI 代理或自定义逻辑组件。 它们接收输入消息、执行特定任务并生成输出消息。
  • 边缘:定义执行程序之间的连接,确定消息流。 它们可以包括根据消息内容控制路由的条件。
  • 事件:提供工作流执行的可观测性,包括生命周期事件、执行程序事件和自定义事件。
  • 工作流生成器和执行:将执行器和边缘关联到定向图中,通过超级步骤管理执行,并支持流式处理和非流式处理模式。

入门

通过浏览入门示例,开始使用 Microsoft Agent Framework 工作流:

后续步骤