Microsoft代理框架

Microsoft Agent Framework 是一个开源开发工具包,用于生成适用于 .NET 和 Python 的 AI 代理多代理工作流 。 它将 语义内核AutoGen 项目的想法汇集在一起,并扩展了其优势,同时添加了新功能。 由同一团队构建,是今后构建 AI 代理的统一基础。

代理框架提供两个主要类别的功能:

  • AI 代理:使用 LLM 处理用户输入、调用工具和 MCP 服务器以执行作并生成响应的单个代理。 代理支持模型提供程序,包括 Azure OpenAI、OpenAI 和 Azure AI。
  • 工作流:基于图形的工作流,用于连接多个代理和函数来执行复杂的多步骤任务。 工作流支持基于类型的路由、嵌套、检查点和人工循环方案的请求/响应模式。

该框架还提供基础构建基块,包括模型客户端(聊天完成和响应)、状态管理的代理线程、代理内存的上下文提供程序、用于截获代理作的中间件,以及用于工具集成的 MCP 客户端。 这些组件可让你灵活地构建交互式、可靠且安全的 AI 应用程序。

为什么是另一个代理框架?

语义内核AutoGen 开创了 AI 代理和多代理业务流程的概念。 代理框架是同一团队创建的直接后续任务。 它将 AutoGen 的简单抽象与语义内核的企业级功能(例如基于线程的状态管理、类型安全、筛选器、遥测以及广泛的模型和嵌入支持)相结合,用于单代理模式和多代理模式。 除了合并这两者之外,Agent Framework 还引入了工作流,使开发人员能够显式控制多代理执行路径,以及一个可靠的状态管理系统,用于长时间运行和人机循环方案。 简言之,Agent Framework 是下一代语义内核和 AutoGen。

若要详细了解如何从语义内核或 AutoGen 迁移,请参阅 语义内核的迁移指南AutoGen 的迁移指南

语义内核和 AutoGen 都受益于开源社区,并且代理框架预期也是如此。 Microsoft代理框架欢迎贡献,并将不断改进新功能。

注释

Microsoft Agent Framework 目前以公共预览版提供。 请在 GitHub 存储库上提交任何反馈或问题。

重要

如果使用 Microsoft Agent Framework 生成使用第三方服务器或代理运行的应用程序,则自行承担风险。 建议查看与第三方服务器或代理共享的所有数据,并识别第三方保留和位置数据的做法。 负责管理数据是否将流出组织的 Azure 合规性和地理边界以及任何相关影响。

Installation

蟒:

pip install agent-framework

。网:

dotnet add package Microsoft.Agents.AI

人工智能代理

什么是 AI 代理?

AI 代理使用 LLM 来处理用户输入、做出决策、调用工具和MCP 服务器来执行作,并生成响应。 下图演示了 AI 代理中的核心组件及其交互:

AI 代理关系图

还可以使用其他组件(例如 线程上下文提供程序中间件 )来增强 AI 代理,以增强其功能。

何时使用 AI 代理?

AI 代理适用于需要自主决策、即席规划、试验和错误探索和基于聊天的用户交互的应用程序。 对于输入任务非结构化且无法提前定义的情况,它们特别有用。

下面是 AI 代理 Excel 的一些常见方案:

  • 客户支持:AI 代理可以处理来自客户的多模式查询(文本、语音、图像),使用工具来查找信息,并提供自然语言响应。
  • 教育和辅导:AI 代理可以利用外部知识库提供个性化的辅导和回答学生问题。
  • 代码生成和调试:对于软件开发人员,AI 代理可以使用各种编程工具和环境来帮助实现、代码评审和调试。
  • 研究帮助:对于研究人员和分析师,AI 代理可以搜索 Web、汇总文档,以及从多个来源拼凑信息。

关键是,AI 代理设计为在动态和未指定的设置中运行,其中满足用户请求的确切步骤序列是未知的,可能需要探索并与用户密切协作。

何时不使用 AI 代理?

AI 代理不适合高度结构化且要求严格遵循预定义规则的任务。 如果应用程序预期有特定类型的输入,并且具有明确定义的作顺序,则使用 AI 代理可能会带来不必要的不确定性、延迟和成本。

如果可以编写函数来处理任务,请执行该作,而不是使用 AI 代理。 可以使用 AI 来帮助编写该函数。

单个 AI 代理可能难以处理涉及多个步骤和决策点的复杂任务。 此类任务可能需要大量工具(例如,超过 20 个),单个代理无法进行可行的管理。

在这些情况下,请考虑改用工作流。

Workflows

什么是工作流?

工作流可以表达预定义的作序列,这些作可以包括 AI 代理作为组件,同时保持一致性和可靠性。 工作流旨在处理可能涉及多个代理、人工交互和与外部系统的集成的复杂且长时间运行的进程。

可以显式定义工作流的执行序列,从而更好地控制执行路径。 下图演示了连接两个 AI 代理和一个函数的工作流示例:

工作流关系图

工作流还可以使用条件路由、基于模型的决策和并发执行来表达动态序列。 这就是实现 多代理业务流程模式 的方式。 业务流程模式提供了协调多个代理的机制,以处理需要多个步骤和决策点的复杂任务,以解决单个代理的限制。

工作流可以解决哪些问题?

工作流提供了一种结构化方法,用于管理涉及多个步骤、决策点和与各种系统或代理交互的复杂流程。 任务工作流的类型旨在处理通常需要多个 AI 代理。

以下是 Agent Framework 工作流的一些主要优势:

  • 模块化:工作流可以分解为更小的可重用组件,从而更轻松地管理和更新流程的各个部分。
  • 代理集成:工作流可以将多个 AI 代理与非代理组件合并,从而允许复杂的任务业务流程。
  • 类型安全性:强类型可确保消息在组件之间正确流动,并全面验证可防止运行时错误。
  • 灵活的流:基于图形的体系结构允许使用 executorsedges直观地对复杂工作流进行建模。 支持条件路由、并行处理和动态执行路径。
  • 外部集成:内置请求/响应模式可实现与外部 API 的无缝集成,并支持人工循环方案。
  • 检查点:通过检查点保存工作流状态,在服务器端启用长时间运行的进程的恢复和恢复。
  • 多代理业务流程:用于协调多个 AI 代理的内置模式,包括顺序、并发、交接和 Magentic。
  • 可组合性:可以嵌套或组合工作流来创建更复杂的进程,从而实现可伸缩性和适应性。

后续步骤