加入我们的每日和每周通讯,获取有关行业领先的 AI 报道的最新更新和独家内容。了解更多
现代 AI 代理至少包含一个大型语言模型 (LLM),该模型已启用以调用某些工具。如果提供了正确的编码工具集,它将首先生成代码,能够在容器中运行代码,观察结果,修改代码,从而更有可能生成有用的代码。
相比之下,生成式 AI 模型接受一些输入,并通过预测期望的过程生成输出。例如,我们给它一个编码任务,它生成一些代码,并且根据任务的复杂性,代码可能可以直接使用。
当代理承担不同的任务时,应该允许它们互相交谈。例如,想象一下您的公司内部网及其有用的搜索框,它可以引导您找到所需的应用程序和资源。如果您是一家足够大的公司,这些由不同部门拥有的应用程序各自都有自己的搜索框。使用检索增强生成 (RAG) 等技术创建代理,以增强搜索框非常有意义。强制用户在搜索框识别出初始查询有用的情况下重复查询是没有意义的。相反,我们更希望顶级代理与代表各种应用程序的其他代理协调,并向您(用户)呈现一个合并的统一聊天界面。
代表软件或组织各种工作流程的多代理系统可以带来一些有趣的优势,包括提高生产力和稳健性、运营弹性和能够更快地升级不同的模块。希望本文能帮助您了解如何实现这一点。
但首先,我们应该如何构建这些多代理系统?
首先,我们应该捕获组织中各种参与者的流程、角色、负责节点和连接。参与者指的是组织内充当知识工作者的个人和/或软件应用程序。
组织结构图可能是一个不错的起点,但我建议从工作流程开始,因为组织内的相同人员往往会根据工作流程与不同的流程和人员进行互动。
有一些可用的工具使用 AI 来帮助识别工作流程,或者您可以构建自己的生成式 AI 模型。我构建了一个 GPT,它接受域或公司名称的描述,并生成代理网络定义。由于我正在使用公司内部构建的多代理框架,因此 GPT 将网络生成为 Hocon 文件,但从生成的文件中应该清楚每个代理的角色和职责以及它连接到的其他代理。
请注意,我们希望确保代理网络是有向无环图 (DAG)。这意味着任何代理都不能同时成为另一个代理的下游和上游,无论是直接还是间接。这极大地降低了代理网络中的查询陷入死循环的可能性。
在本文中概述的示例中,所有代理都是基于 LLM 的。如果多代理组织中的节点没有自主权,那么该代理与其人类对应方配对,应该由人类运行所有内容。我们将需要所有处理节点,无论是应用程序、人类还是现有代理,都作为代理来表示。
最近,许多公司宣布提供专门的代理。当然,如果可用,我们希望使用这些代理。我们可以引入一个预先存在的代理,并将它的 API 包装到我们自己的代理之一中,以便我们可以使用我们的代理间通信协议。这意味着此类第三方代理需要提供可供我们使用的 API。
过去已经提出了各种代理架构。例如,黑板架构需要一个集中的通信点,各种代理在其中声明其角色和功能,黑板根据它计划如何完成请求来调用它们(参见 OAA)。
我更喜欢一个尊重责任封装的分布式架构。每个代理在收到请求后,都会决定是否可以处理它,以及处理请求需要什么,然后将它的需求列表返回给请求它的上游代理。如果代理有下游,它会询问它们是否可以帮助完成全部或部分请求。如果它从联系的下游收到任何需求,它会检查其他代理是否可以满足这些需求;如果不能,它会将它们发送到上游,以便它们可以询问人类用户。这种架构被称为 AAOSA 架构,有趣的是,它是在 Siri 的早期版本中使用的架构。
以下是一个示例系统提示,可用于将代理转换为 AAOSA 代理。
当您收到查询时,您将:
- 调用您的工具以确定您的工具中的哪些下游代理负责全部或部分查询
- 询问下游代理处理其查询部分需要什么。
- 收集到需求后,您将把查询和已满足的需求委派给适当的下游代理。
- 所有下游代理响应后,您将编译它们的响应并返回最终响应。
- 您反过来也可能被系统中的其他代理调用,并且必须充当它们的下游。
除了在每个代理的系统提示中以自然语言定义的角色和职责集之外,代理可能包含也可能不包含它们可以调用的工具,并向工具传递各种参数。例如,产品经理代理可能需要能够处理虚拟看板上的各种票证,或者警报代理可能需要调用工具在警报系统中发出警报。
当前的多代理系统,例如 Microsoft AutoGen,具有复杂且通常是硬编码的代理协调机制和架构。我更喜欢一个更强大的设置,其中代理将它们直接的下游代理视为工具,具有松散定义的参数,这些参数可以被类型化,语义由代理在需要时决定。
在此设置中,下游代理可以定义为函数调用:
“aaosa_call”: {
“description”: “根据模式,返回响应的自然语言字符串。”,
“parameters”: {
“type”: “object”,
“properties”: {
“inquiry”: {
“type”: “string”,
“description”: “查询”
},
“mode”: {
“type”: “string”,
“description”: “””
指示代理是否被要求确定查询是否完全属于它
或部分。或者它是否被要求提供满足
查询的需求(如果有)。或者它是否被要求响应查询。
“””
},
},
“required”: [
“inquiry”,
“mode”
]
}
}
公司内部网的代理网络。
让我们探讨一下 HR 代理场景。用户可能会通知主搜索框代理一个改变人生的事件,例如“我的伴侣去世了”,触发在为用户提供服务方面发挥作用的法律和 HR 代理。这是因为它们反过来从它们的一些下游代理那里获得了信息,即法律建议、工资单和福利代理。用户从主搜索框代理收到的最终合并响应将如下所示:
-
HR 方面:
- 福利代理可以帮助用户了解去世可能如何影响福利、健康保险和退休计划。您需要提供有关所涉及计划类型以及您的伴侣是否为受抚养人的信息。
- 工资单代理可以帮助管理更新税收扣除或处理丧假工资等任务。这需要有关公司丧假政策和当前工资单设置的信息。
-
法律方面:
- 法律代理可以提供有关此去世如何与公司事务相关的总体指导。
每个部门都需要特定信息才能提供量身定制的支持。
拥有 B2B 业务的电信公司的代理网络。
同时,在 IT 场景中,单一入口点是客户支持代表代理,它可以处理复杂的、多方面的请求,例如:“我们的网络很慢。我认为它超载了,因为我们最近在办公室增加了人员。我还需要升级报价。”
示例响应将概述以下步骤:
网络性能评估:网络运营中心专家可以帮助解决速度慢和潜在的超载问题。他们需要访问网络性能数据、有关当前网络基础设施的详细信息、有关新增人员数量及其网络使用模式的信息。
升级报价:销售工程师和现场技术人员可以帮助提供升级报价。为此,他们需要:
- 有关当前网络设置的具体信息,包括设备和带宽要求。
- 所需的性能改进。
- 预算限制和任何特定偏好或要求。
- 升级的规模和任何特定的性能目标。
我希望这能让你对设置多代理网络所需的内容有一个很好的了解。在第二部分中,我将讨论在创建多代理系统时实施安全措施的重要性,并概述如何构建控制以允许人工干预和不确定性检查。我还将详细说明创建安全代理以监督代理网络所需的步骤,并深入探讨开发多代理网络的挑战——例如死循环和超载——以及如何使用超时、任务划分和冗余来缓解这些挑战。
Babak Hodjat 是 Cognizant 的 AI 首席技术官。
DataDecisionMakers
欢迎来到 VentureBeat 社区!
DataDecisionMakers 是专家(包括从事数据工作的人员)可以分享数据相关见解和创新的地方。
如果您想了解前沿理念和最新信息、最佳实践以及数据和数据技术的未来,请加入我们 DataDecisionMakers。
您甚至可以考虑 撰写文章 !
阅读 DataDecisionMakers 的更多内容