单智能体更简单、更易于维护。
最近,「多智能体系统」是人工智能领域最热门的流行词之一,也是开源框架 MetaGPT 、 Autogen 等研究的焦点。
但是,多智能体系统就一定是完美的吗
近日,来自卡内基梅隆大学的副教授 Graham Neubig 在文章《Don't Sleep on Single-agent Systems》中强调了单智能体系统也不可忽视。
Graham Neubig 从以下几个方面展开:
CMU 机器学习和计算机系助理教授陈天奇对这项研究进行了转发并评论:「这是一篇关于如何让单智能体系统更强大的深刻见解,对机器学习系统也有很好的启示。提示前缀缓存将成为与其他一般推理优化技术相互作用的一项关键技术」。
大多数智能体都是基于大语言模型构建的,如 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
文章来自于微信公众号“机器之心”
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【免费】ffa.chat是一个完全免费的GPT-4o镜像站点,无需魔法付费,即可无限制使用GPT-4o等多个海外模型产品。
在线使用:https://ffa.chat/
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0