智能体间通信:智能体模式是时候了
编写单一、独立、"精通一项任务"的智能体的时代可能已经过去。现在的发展趋势是促进智能体之间的通信,以便利用人工智能解决更大、更复杂的问题。这种范式转变催生了智能体模式——一种标准化的方法,用于使人工智能智能体能够在不同的框架和平台之间相互发现、通信和协调。本文将重点介绍目前可用的三种此类框架。
三大主要框架:
OpenAI 的 Agents SDK 专注于多智能体工作流,包含 Agents、Handoffs 和 Guardrails 等基本要素。该 SDK 使开发人员能够创建专门的智能体,这些智能体可以通过结构化的交接任务,从而实现模块化系统,其中每个智能体在特定任务上表现出色,并通过标准化接口无缝协作。
IBM 的智能体通信协议(ACP)是一种开放的智能体间通信标准,它将我们目前各自为政的智能体系统转变为可互操作的智能体系统。ACP 基于 HTTP 上的 JSON-RPC 构建,提供了一个轻量级框架,使智能体能够相互发现、认证和协作,而无需自定义集成代码。
Google 的 Agent2Agent(A2A)协议是一种新的开放协议,得到了包括 Atlassian、Salesforce 和 MongoDB 在内的 50 多个技术合作伙伴的支持和贡献。A2A 允许智能体“相互通信、安全交换信息并协调行动”,跨不同平台作为自主对等体而非仅仅工具进行协作。
上面列出的每个智能体到智能体框架都以不同的方式解决了智能体之间的通信问题。本文本身并不关注这些框架。相反,本文旨在识别所有这些框架中都存在的“智能体模式”共性。
智能体模式
顺序工作流
这是标准的解决问题方法。要解决的问题被分解成更小的步骤并按顺序执行。例如,我有一个简单的旅行预订系统,包含三个智能体:一个接收用户偏好,另一个根据输入查找各种网站,第三个根据搜索结果进行排序和规划。这是一个直接、确定性的流程:A → B → C,然后完成。
分层委托
路由器智能体将任务分发给特定领域的子智能体。这是一个典型的多智能体问题。工作流不是在程序代码中预先确定或硬编码的。例如,一个在人工智能世界中实现的计算器,会有几个专门处理微积分、测量和将自然语言问题转换为代数表达式的不同智能体。然后需要一个“路由器/分流/入口智能体”,它将根据问题输入的性质,将请求路由到适当的智能体。请注意,分流智能体可能会根据需要多次(分步)循环并委托请求给不同的或相同的智能体,以解决最初的问题。当实现这种模式时,它将非常灵活和健壮,因为智能体的实际调用不是硬编码的。可以轻松插入一个新的智能体(意味着系统中的新功能),而不会影响现有流程(与传统编程结构不同)。
并行处理
多个智能体同时处理独立的子任务。这适用于可以将任务分解为更小步骤,并且其中一些步骤可以并行运行的用例。最典型的例子是翻译智能体,每个智能体都专注于一种特定的语言。因此,当任务需要翻译成多种语言时,可以同时调用这些智能体的 run() 方法,然后跟踪所有智能体完成情况,最后再分发最终结果。在这种模式下,代码需要实现某种“join()”机制来“等待”所有智能体完成。
迭代改进
智能体通过提供反馈来提升彼此的输出。我发现这种模式在不同框架中略有不同。本质上,它是一个智能体产生一个输出,另一个智能体“纠正”它,然后再次发回以获得“改进”的版本。通常,第一个模型是一个“较弱”或“较便宜”的模型,而“判断”模型是一个更优越的模型。因此,当我们使用优越模型作为“判断者”时,我们可以迭代“较弱”模型,使其在每次迭代或步骤中产生越来越好的响应。
在探索了我在上述智能体框架中发现的几种常见智能体模式之后,我非常确信未来事物将不断发展。将会有更多的用例,智能体实现的改变,以及更健壮的框架和不同框架之间的互操作性。激动人心的时代即将来临!