- Published on
微软开源AI Agent框架AutoGen 0.4版本更新:重塑智能代理架构
AutoGen 0.4 版本亮点
微软发布了其开源AI Agent框架AutoGen的重大更新,即0.4版本。这个改进后的库拥有增强的代码稳定性、健壮性、多功能性和可扩展性,使开发者能够创建尖端的、高级的AI Agent应用程序。
- 异步消息传递: Agent现在使用异步消息传递进行通信,使它们能够在不等待其他Agent响应的情况下继续执行任务。这对于Agent响应特定触发器的事件驱动应用程序尤其有利。同时也支持传统的请求/响应模型。
- 模块化和可扩展性: 用户可以将自定义Agent、工具、内存和模型组合起来,构建针对特定业务需求的Agent系统。这涉及到注册不同的Agent类型和工具,以实现特定的自动化目标。
- 可观察性和调试: 用于指标跟踪、消息跟踪和调试的内置工具可以监控和控制Agent的交互和工作流程。Agent工作流程的每一步——包括大型模型调用、工具使用、中间输出、内存状态和提示模板——都可以被清晰地记录下来。这对于需要精确跟踪Agent操作的行业,如医疗、法律和金融至关重要。
- 可扩展性和分布: 复杂、分布式的Agent网络可以被设计为跨越组织边界无缝运行。分布式架构有助于在各种服务器或云平台上部署Agent,优化资源分配和利用率。
- 内置和社区扩展: 该框架的功能通过具有高级模型客户端、Agent、多Agent团队和Agent工作流工具的扩展来增强。社区支持允许开发人员管理自己的扩展,创建和共享自定义Agent或工具。开发者可以使用这些扩展来满足常见需求,从而降低开发复杂性和障碍。
- 跨语言支持: AutoGen现在支持用不同编程语言(如Python和.NET)编写的Agent之间的互操作性。此功能拓宽了AutoGen的应用范围,并消除了因语言差异而产生的障碍。
除了这些新功能之外,微软还重组了AutoGen的基础,其中包括核心、Agent聊天和扩展。核心是事件驱动Agent系统的基础。建立在核心之上的Agent聊天功能具有用于任务管理、群聊、代码执行和预构建Agent的高级API。扩展有助于与Azure代码执行器和OpenAI模型等服务进行第三方集成。
UI 增强
用户界面也进行了重大改进:
- 通过UI进行交互式反馈: 允许用户Agent在团队操作期间提供实时输入和指导。
- 消息流可视化: 提供一个直观的界面来理解Agent的通信,映射消息路径和依赖关系。
- 可视化拖放界面: 允许用户通过放置和配置组件及其关系和属性来设计Agent。
与Magentic-One集成
Magentic-One是微软的另一个开源多层通用AI Agent,现在已集成到AutoGen中。Magentic-One具有一个由五个AI Agent组成的多层架构:Orchestrator、WebSurfer、FileSurfer、Coder和ComputerTerminal。每个专业Agent都有自己的技能和知识库,使其能够在各自的领域内有效地工作。然而,这些Agent并非孤立地工作;Orchestrator协调它们的活动,以确保它们的一致性并满足整体目标。
- Orchestrator: 负责任务规划、进度跟踪和错误恢复。接收到任务后,它会彻底分析需求并将子任务分配给其他四个Agent。
- WebBrowser Agent: 处理网页浏览。
- FileNavigatorAgent: 管理本地文件系统导航。
- CodeWriterAgent: 编写和执行Python代码片段。
- ComputerTerminal: 执行操作系统级别的命令以支持更高级别的任务。
Magentic-One架构的一个重要特征是异步事件驱动操作。与同步请求-响应模型相比,异步方法允许系统组件并发运行,随时接收新的输入或触发操作,而不会停止其他功能。例如,当Orchestrator分配给WebBrowserAgent一个涉及从网页下载和提取信息的任务时,WebBrowserAgent可以开始加载页面,而Orchestrator和其他Agent则继续执行其他任务。一旦页面加载完毕并提取了所需的数据,WebBrowserAgent会通知Orchestrator并返回结果。这种策略使Magentic-One能够更有效地管理资源、减少等待时间并更有效地响应高并发场景。
除了其异步架构之外,Magentic-One还以其高度模块化的设计而著称。每个Agent都是一个独立的函数单元,具有明确的职责和接口定义。这种方法简化了系统构建,因为开发人员可以专注于单个Agent的功能,而无需担心与其他组件的交互细节。模块化还促进了代码重用和技术共享,允许在新的项目中使用现有Agent或以最小的修改适应不同的应用程序。Magentic-One的模块化设计还提供了显著的可扩展性。随着技术的进步或业务需求的变化,可以添加新的Agent或更新现有Agent的功能,而无需对系统进行重大调整。例如,如果特定领域的任务变得更加复杂,可以通过添加一个专门的Agent来增强系统。