近日,牛津大学的一个研究团队提出了一种LLM通信的元协议:Agora,并声称它可以解决“代理通信的三难困境”,进而构建“世界一流的LLM代理网络”。
智能代理通信的三难困境
代理是指能够在环境中自主行动以实现其设计目标的计算机系统。
与人类一样,智能体需要相互协作才能实现共同目标。事实上,这样构建的多智能体系统是当前人工智能领域的一个重要研究方向。例如,正在招募多代理人才。
著名研究科学家诺姆·布朗发帖为多智能体研究团队招募机器学习工程师
然而,由于代理的种类繁多(包括架构、功能、约束等),为它们形成的异构网络设计通信协议并不容易。牛津大学团队将这些困难归结为三个方面:
团队将这些属性之间的权衡称为代理通信三难困境(Agent),如图1所示。详细讨论请参阅原始论文。
Agora:LLM的通信协议层
解决代理通信难题的关键是要接受这样一个事实:不存在可以同时实现最佳效率、可移植性和多功能性的单一协议。
Agora由牛津大学团队提出,是一个元协议(meta),利用LLM的特殊能力来解决这个三难困境。具体来说,它针对不同的场景采用不同的通信方式。
我们知道,最强大的法学硕士具有三个关键属性:
Agora 的核心是根据情况使用不同的通信格式。
代理可以支持广泛的通信(高通用性),同时还可以通过高效的例程处理大部分请求量(高效率)。此外,整个谈判和实施工作流程均由LLM处理,无需人工干预(可移植性高)。
Agora 功能的核心是协议文档(PD)的概念,如图 3 所示。
下面介绍 Agora 原生支持的通信级别,并给出一些示例。
声网交流
Agora 引入了一种机器可读的方式来传输和引用协议,即协议文档(PD)。 PD是通信协议的纯文本描述。
PD 是独立的、与实现无关的,并且包含代理支持协议所需的一切:这意味着现有协议的大多数描述(例如 RFC)也是合适的 PD。但PD并不依赖于某个中心实体来分配标识符,而是通过其哈希值来唯一标识(用于复用)。
在 Agora 中,最常见的通信有专用的高效例程,而最罕见的通信则使用低效但灵活的 LLM 和自然语言。具体来说:
处理查询时,完全由代理决定是使用人工编写的例程、LLM 编写的例程还是 LLM(或三者的某种组合)。这为代理在处理查询时提供了最大的灵活性。
这种分层通信支持任意形式的通信(最大通用性),但实际上 LLM 仅在极少数情况下被调用(最大效率)。此外,由于 LLM 可以自行实现例程(因为 PD 完整地描述了协议的语法和语义),人类程序员只需提供代理可访问的工具的概述,这意味着在人性化程度最小(最大可移植性)。
也就是说,Agora 通过使用例程来处理常见请求并在代理需要协商解决方案或发生错误时使用自然语言来规避通信三难困境。
使用 Agora 作为零层协议
从图2可以看出,使用Agora时不需要关心具体的实现和技术。
代理本身的实现(例如LLM)、用于存储数据的数据库(例如SQL等)、编写实现的语言(例如Java等)以及代理的性质工具是抽象的。
同时,PD可以引用其他协议文档,并且由于例程可以调用其他例程,因此代理可以基于先前的协商来解决更复杂的任务。
最后,基于其强大的通用性和可移植性,Agora 可以非常简单地处理节点的添加或删除、节点功能的变化或网络目标的变化。所有这些因素都有助于使 Agora 成为天然的零层协议,成为法学硕士之间高阶通信和协作的基础层。
Agora 的实际应用
为了演示 Agora 的效果,团队在两个场景下实现了 Agora:
实施细节
在演示中,Agora 的设计遵循三个关键原则:极简主义、去中心化和完全向后兼容。从实际应用的角度来看,Agora 使用 HTTPS 作为基础通信层,使用 JSON 作为元数据交换的格式。
演示:检索天气数据
该团队首先演示了涉及两名特工的情况。他们将这两名特工命名为爱丽丝和鲍勃。 Alice 是一位 Llama-3-405B 驱动的代理,负责管理伦敦导游服务的预订程序。 Bob 是一个 GPT-4o 代理,可以提供给定日期和位置的天气预报服务。作为用户交互的一部分,Alice 会通知用户预订日期是否会下雨。
为了检查天气,Alice 首先使用自然语言向 Bob 发送请求(阶段 A1):
Bob 将使用他的 LLM 查询他的数据库(阶段 B1)并以自然语言给出答复(阶段 B2):

随着时间的推移,在 A1 和 B2 阶段调用 LLM 的成本将大大超过其他成本,因此 Alice 和 Bob 决定开发一个协议。
Alice 首先检查 Bob 是否已经支持适当的协议,但没有找到。因此,她决定与鲍勃谈判达成协议。

经过几轮协商,Alice 和 Bob 达成以下协议:Alice 发送包含两个字段(位置和日期)的 JSON 文档,Bob 回复包含三个字段的 JSON 文档,即温度(摄氏度)。 、降水量(以毫米为单位)和天气状况(晴天、阴天、雨或雪)。

基于此,Alice在执行查询时只需要指定协议的哈希值即可。下面给出一个例子:
Alice 和 Bob 可以各自独立地决定编写一个例程来处理他们一方的通信。

从现在开始,Alice和Bob不需要使用LLM来传输流量数据:现在有一个例程自动执行阶段A1、B1和B2,从而消除了调用相应LLM的成本。
在此演示中,协商协议和实现例程的 API 调用成本为 0.043 美元,而自然语言交换的平均成本为 0.020 美元。这意味着只要Alice和Bob使用约定的协议两次以上,Agora就可以降低总体成本。
最后,该团队还指出,整个通信过程是在没有人为干预的情况下发生的。此外,如果 Bob 不可用,Alice 可以简单地将 PD 重新调整到新节点,即使该新节点可能使用不同的 LLM/数据库/技术堆栈。
演示:由 100 个代理组成的网络
为了展示 Agora 的扩展能力和紧急行为,该团队研究了由 100 个 LLM 代理组成的网络。
在这个网络中,85 名是助理座席,15 名是服务座席。他们都有法学硕士的支持。

服务代理可以提供各种服务,例如预订酒店房间、叫出租车、订餐等。左图 4 显示了食品配送子网的示例。
在工作过程中,服务代理必须与多个工具和数据库进行交互。此外,一些服务代理必须与其他服务代理交互才能完成助理的请求(例如,出租车服务需要使用交通数据代理来调整行程的估计费用)。
最初,团队使用图 2 所示的底层通信层来启动网络并提供有关哪些 URL 对应于哪些节点的信息,并手动在代理之间创建连接(例如,出租车服务知道端口 5007 位于运输服务上) ,但它不知道如何与其通信以及需要什么信息)。
为了演示 Agora 的可移植性,团队使用了不同的数据库技术(SQL 和 LLM)和不同的 LLM,包括开源和闭源模型(GPT-4o、Llama-3-405B 和 1.5 Pro)。
然后,他们生成了 1,000 个随机查询,范围从简单的查询(例如请求今天的天气)到更复杂的查询(例如在滑雪胜地预订房间、购买电影票、点菜单中的每道菜等)。
对于每个查询,助手都会收到一个 JSON 文档(表示任务数据),并负责完成请求并返回遵循给定模式的已解析响应。
查询根据帕累托分布在助手之间分配,以模拟某些助手发送的请求明显多于其他助手的情况。
每个节点还可以读取 PD 并将其共享到三个协议数据库之一。
总体而言,这些设计决策产生的网络是一个非常异构的网络,它测试了 Agora 的极限。
一旦建立连接并且网络可以发送和接收消息,团队就观察到了一些值得注意的行为。
随着 PD 逐渐在代理之间共享(见图 5b),针对给定任务的适当协议出现了去中心化共识。
例如,在订餐任务中,一个智能体会通过查询请求另一智能体将食物送到某个地址。餐厅代理会向送餐服务请求派送司机,然后送餐服务会查询交通数据代理,查看交通是否畅通,以查看是否可以完成送餐。除了直接通信范围之外,所有代理都不知道彼此的角色和所涉及的协议。尽管如此,各个代理之间的交互创建了一个可以处理所有问题的自动化工作流程。如图4右侧所示。
团队观察到,给予适当的激励(即效率激励),Agora 中的代理可以摆脱大规模通信中常见的较长消息的低效率陷阱。
该团队还分析了这个更大网络的成本,并将其与使用自然语言进行所有通信的网络进行了比较。
结果如图 5a 所示。一开始,Agora 只比仅依赖自然语言的网络更具成本效益;随着时间的推移,这种差距越来越大,越来越多的 Agora 驱动的节点依赖于 LLM 编写的例程。
在自然语言网络中运行 1000 个查询的 API 查询总成本为 36.23 美元,而 Agora 的成本仅为 7.67 美元:也就是说,使用 Agora 执行此演示比使用常规自然语言便宜约五倍。而如果查询次数多了,成本差距就会更大。


