跳到主要内容

AutoGen 中的代理

· 9 min read
Chi Wang

agents

TL;DR

  • AutoGen 代理统一了不同的代理定义。
  • 在讨论多代理与单代理时,明确我们指的是接口还是架构是有益的。

我经常被问到两个常见的问题:

  1. 什么是代理?
  2. 多代理与单代理的优缺点是什么?

这篇博客收集了我从几次采访和最近学习中的思考。

什么是代理?

有许多不同类型的代理定义。在构建AutoGen时,我正在寻找最通用的概念,可以涵盖所有这些不同类型的定义。要做到这一点,我们真的需要思考所需的最小概念集。

在AutoGen中,我们将代理视为一个可以代表人类意图行动的实体。它们可以发送消息、接收消息、在采取行动后回应其他代理并与其他代理互动。我们认为是代理需要具备的最低能力集合。它们可以拥有不同类型的后端来支持它们执行操作和生成回复。一些代理可以使用AI模型生成回复。其他代理可以使用底层函数生成基于工具的回复,还有一些代理可以使用人类输入作为回应其他代理的方式。你也可以拥有混合这些不同类型后端的代理,或者拥有更复杂的代理,这些代理之间进行内部对话。但在表面上看,其他代理仍然将其视为一个单一的通信实体。

通过这个定义,我们既可以整合非常简单的代理,它们可以使用单一后端解决简单任务,也可以包含由多个更简单代理组成的代理。人们可以递归地构建更强大的代理。AutoGen中的代理概念可以涵盖所有这些不同的复杂性。

多智能体与单智能体的优缺点是什么?

这个问题可以通过多种方式提出。

为什么我应该使用多个代理而不是单个代理?

为什么在我们没有一个强大的单一代理的时候要考虑多代理?

多智能体是否增加了复杂度、延迟和成本?

什么时候应该使用多代理 vs. 单代理?

当我们使用“多代理”和“单代理”这两个词时,我认为至少有两个不同的维度需要考虑。

  • 界面。这意味着,从用户的角度来看,他们是与系统在单一的交互点进行互动,还是明确看到多个代理在运作并与其中的多个进行互动?
  • 架构。是否有多个代理在后台运行?

一个特定的系统可以具有单代理接口和多代理架构,但用户无需知晓这一点。

接口

单一交互点可以使许多应用的用户体验更加简单直接。但也有情况下,这并不是最佳解决方案。例如,当应用程序涉及多个代理对一个主题进行辩论时,用户需要看到每个代理所说的话。在这种情况下,用户实际上看到多代理的行为是有益的。另一个例子是社会模拟实验:人们也希望看到每个代理的行为。

架构

架构的多代理设计比单代理系统更易于维护、理解和扩展。即使是基于单代理的界面,多代理的实现也可能使系统更加模块化,并让开发者更容易添加或移除功能组件。重要的是要认识到,多代理架构是构建单代理的一种好方法。虽然不明显,但它根植于Marvin Minsky于1986年提出的心智社会理论。通过从简单的代理开始,可以有效地组合和协调它们,以展示更高层次的智能。

我们还没有一个可以完成所有需求的单一代理。为什么会这样?可能是因为我们还没有找到正确的方法来组合多代理以构建这个强大的单一代理。但首先,我们需要有一个框架,允许轻松尝试这些不同的模型和代理组合方式。例如,

我自己的经验是,如果人们练习使用多代理来解决问题,他们通常能更快地找到解决方案。 我寄希望于他们能找到一种稳健的方法,用这种方式构建一个复杂的、多方面的单一代理。 否则,构建这个单一代理的可能性太多。如果没有良好的模块化,系统在保持易于维护和修改的同时,很容易达到复杂度极限。

另一方面,我们不必止步于此。我们可以将多代理系统视为一种放大单个代理能力的方式。我们可以将它们与其他代理连接起来,以实现更大的目标。

多代理的好处

至少有两种类型的应用程序从多代理系统中受益。

  • 单代理界面。 开发人员经常发现他们需要用不同的能力、工具等来扩展系统。如果他们用多代理架构实现单代理界面,通常可以增强处理更复杂任务的能力或提高响应的质量。一个例子是复杂的数据分析。它通常需要不同角色的代理来完成任务。有些代理擅长检索数据并展示给其他代理。有些代理擅长进行深度分析并提供见解。我们还可以有能够批评和提出更多行动的代理。或者能够进行规划的代理,等等。通常,完成一个复杂的任务,可以构建这些具有不同角色的代理。

一个真实世界生产用例的示例:

如果您不了解Chi Wang和Microsoft Research的工作,请查阅。我想为Skypoint AI平台客户Tabor AI https://tabor.ai提供一个实际的生产用例 - Medicare代理人的AI Copilot,每年为老年人选择健康计划(在美国,6500万老年人每年都必须完成此任务)是一项繁琐且令人沮丧的工作。过去,人类研究需要花费数小时才能完成这一过程,现在借助AI代理,仅需5到10分钟,且不会影响结果的质量或准确性。看到代理进行零售购物等非关键任务的处理是很有趣的。在医疗保健、公共部门和金融服务等受监管行业中,AI是一个不同的领域,这正是Skypoint AI平台(AIP)的焦点。

Tisson Mathew, Skypoint首席执行官

  • 多代理界面。例如,一个国际象棋游戏至少需要两个不同的玩家。一个足球游戏涉及更多的实体。多代理辩论和社交模拟也是很好的例子。

leadership

多代理成本

使用前沿模型构建的非常复杂的多代理系统虽然昂贵,但与人类完成相同任务相比,它们的成本可以呈指数级降低。

虽然运营成本不低,但我们在BetterFutureLabs的多智能体驱动的风险分析系统比人类分析师进行类似深度分析要经济实惠得多,速度也成倍提高。

贾斯汀·特鲁格曼,BetterFutureLabs的联合创始人兼技术负责人

使用多个代理是否会比使用单个代理总是增加成本、延迟和失败的可能性?这取决于多代理系统的设计方式,令人惊讶的是,答案实际上可能是相反的。

  • 即使单个代理的性能已经足够好,您也可能希望让这个单一代理去教导一些其他相对便宜的代理,以便它们能够以低成本变得更好。EcoAssistant 是一个很好的例子,它结合了 GPT-4 和 GPT-3.5 代理,在降低成本的同时,甚至相比使用单个 GPT-4 代理,性能也有所提升。
  • 最近的一个使用案例报告显示,有时使用多代理与廉价模型可以胜过使用昂贵模型的单代理:

我们塔夫茨大学的研究团队在解决学生从本科课程过渡到研究生课程时所面临的挑战方面,特别是在医学院物理治疗博士课程中,持续取得重要进展。在数据密集型研究中心(DISC)的持续支持和我们与微软Chi Wang团队的合作下,我们现利用Autogen与StateFlow创建更加有效的评估,这些评估针对课程内容量身定制。这种以状态驱动的工作流方法补充了我们现有的工作,包括在连续聊天中使用多个代理、可教学的代理和轮询式辩论格式……通过将StateFlow与多个代理结合,可以在使用更具成本效益的语言模型(GPT 3.5)的同时,保持高质量的结果/输出。这种成本节约,加上我们结果的相关性和准确性的提高,真正向我们展示了Autogen在开发高效且可扩展的教育解决方案方面的巨大潜力,这些解决方案可以适应各种背景和预算。

Benjamin D Stern,硕士,物理治疗博士,辅助教授,物理治疗项目博士,塔夫茨大学医学院

  • AutoDefense 展示了使用多代理可以减少遭受越狱攻击的风险。

当然需要做出权衡。多代理的广泛设计空间提供了这些权衡,并为优化打开了新的机会。

自从Ask AT&T推出以来,这款生成式AI平台已经吸引了超过80,000名用户。AT&T通过引入“AI代理”来增强其能力。这些代理由微软首创的Autogen框架(https://microsoft.github.io/autogen/blog/2023/12/01/AutoGenStudio/)提供支持,旨在解决传统语言模型难以应对的复杂工作流和任务。为了推动协作,AT&T正在通过引入功能来增强安全性并为各种项目和数据提供基于角色的访问,从而为开源项目做出贡献。

Andy Markus,AT&T的首席数据官

观看/阅读访谈/文章

你觉得这个说明有用吗?是否愿意分享你的想法、使用场景或发现?请加入我们的Discord服务器进行讨论。

致谢

这篇博客文章是根据Wael KarkoubMark SzeJustin TrugmanEric Zhu的反馈进行修订的。