机器之心报道
机器之心编辑部
单智能体更简单、更易于维护。
最近,「多智能体系统」是人工智能领域最热门的流行词之一,也是开源框架 MetaGPT 、 Autogen 等研究的焦点。
但是,多智能体系统就一定是完美的吗
近日,来自卡内基梅隆大学的副教授 Graham Neubig 在文章《Don't Sleep on Single-agent Systems》中强调了单智能体系统也不可忽视。
Graham Neubig 从以下几个方面展开:
CMU 机器学习和计算机系助理教授陈天奇对这项研究进行了转发并评论:「这是一篇关于如何让单智能体系统更强大的深刻见解,对机器学习系统也有很好的启示。提示前缀缓存将成为与其他一般推理优化技术相互作用的一项关键技术」。
基于 LLM 的智能体
大多数智能体都是基于大语言模型构建的,如 Anthropic 的 Claude 或 OpenAI 的语言模型。但语言模型不足以构建一个出色的智能体,构建一个智能体至少需要三个组件:
一般来说,当涉及多智能体系统时,至少要改变这三个组成部分中的其中一个。
多智能体示例
假设你正在构建一名 AI 软件开发助手,这里作者以 CodeR 为例,这是一个用于 AI 软件开发的多智能体框架。它包括多个智能体,所有智能体都使用相同的底层 LM,但提示和动作空间各不相同:
这是构建一个系统时所需要的结构,但是在构建这样的系统时存在一些困难。
多智能体系统存在的一些问题
在构建多智能体系统时,你可能会遇到许多问题,比如:
获得正确的结构:多智能体系统通过添加结构来解决问题。当智能体面临的问题与指定的结构完全匹配时,效果会很好,但问题是如果不匹配怎么办?
上下文信息的传递:多智能体系统通常在多个智能体之间传递信息,但这可能是信息丢失的原因。例如,如果故障定位器仅将其摘要信息传递给其他智能体,则通常会导致重要的上下文信息丢失,而这些信息可能对下游智能体有用。
可维护性:最后,这些智能体通常都有自己独立的代码库,或者至少有独立的提示。因此,多智能体系统可能拥有更大、更复杂的代码库。
有趣的是,很多这些挑战也适用于人类组织!我们都有过这样的经历:团队组织混乱,沟通不畅,或者当某个成员离开时,无法维持必要的技能。
如何打造出色的单智能体系统
人们为什么要打造多智能体系统?一个需要说明的重要原因是:专用于特定任务的智能体的表现通常很好,只要有合适的结构和工具,它们就能很好地完成相应的任务。
单智能体有能力竞争吗?
可能比我们预想的还更容易一些,作者表示这里已经有一个很好的原型:https://github.com/All-Hands-AI/OpenHands/tree/main/agenthub/codeact_agent
下面我们就来看看,要打造出优秀的单 LLM、单动作空间和单提示工程技术,需要些什么。
单 LLM:这是相对比较容易的部分。近段时间已经出现了一些表现出色的通用 LLM,包括 Claude 和 GPT-4o 等闭源模型以及 Llama 和 Qwen 等开源模型。虽说这些模型也不是万能的,但它们也确实能完成多种多样的任务。就算它们缺乏某个功能,也可以通过持续训练来增添,同时不会对其它功能产生太大影响。
单动作空间:这也不难。如果我们有多个使用不同工具的智能体,那么我们可以 (1) 为模型提供相对通用的工具,以帮助它们解决问题;(2) 如果不同的智能体有不同的工具组合,则可以将他们连接起来。比如,在 OpenHands 中,可以向智能体提供写代码、运行代码和执行网络浏览的工具。这样的通用方法可让模型使用为人类开发者开发的软件工具,从而增多它们的功能,做到其它多智能体能做到的事。
单提示工程技术:这是比较困难的地方!我们需要确保智能体在如何解决任务上获得正确的指示,同时从其环境中获得正确的信息。
下面给出了两个选择:
总结
本文并不是说多智能体就没有用武之地了。比如在一个智能体可以访问专有信息,而另一个智能体则代表了另一个人的情况下,多智能体系统肯定大有作为!
本文的目的是批判性地思考让系统更加复杂这一趋势。有时候简单就是最好的 —— 有强大的模型、强大的工具和多种多样的提示词就足够了。
参考链接:https://www.all-hands.dev/blog/dont-sleep-on-single-agent-systems