XAgent:全面超越AutoGPT的超级英雄
近日,国内领先的人工智能大模型公司面壁智能又放大招,联合清华大学 NLP 实验室共同研发并推出大模型「超级英雄」——XAgent。
通过任务测试,XAgent 在真实复杂任务的处理能力已全面超越 AutoGPT。
XAgent 在真实复杂任务处理中全面超越 AutoGPT
现已在 GitHub 正式开源,地址 https://github.com/OpenBMB/XAgent
案例展示地址:https://x-agent.net/
博客地址:https://blog.x-agent.net
XAgent 何许「人」也?
XAgent 是一个可以实现自主解决复杂任务的全新 AI 智能体,以 LLM 为核心,能够理解人类指令、制定复杂计划并自主采取行动。
传统智能体通常受到人类定制规则的限制,只能在限定范围内解决问题。它们更像是为人类所用的「工具」,而不是真正的「自主智能体」,难以自主解决复杂问题。
相反,XAgent 被赋予了自主规划和决策的能力,使它能够独立运行,发现新的策略和解决方案,不受人类预设的束缚。
它的能力已全面超越 AutoGPT,在众多场景任务上展示出了惊人的自主性和复杂任务的求解能力,将 AI 智能体的智能水平提升到了一个全新高度。
「左右脑」协同,双循环机制
XAgent 的设计中创新地引入了一种「双循环机制」:
- 外循环:负责全局任务规划,将复杂任务分解为可操作的简单任务。
- 内循环:负责局部任务执行,专注于细节。
通过双循环机制的协作,XAgent 如同大模型领域的「超级英雄」,它在应对复杂任务的不同环节时,展现出超强的专业度和丰富的技能。就像漫威宇宙中的「美队」,XAgent 既有全局观的领导力,也有细致入微的执行力。
在外循环中,XAgent 展现出作为一个「规划」(PlanAgent)的领导力,它会把复杂任务拆分成若干简单任务,并监督问题解决的完整过程。
- 首先,它将给定的复杂任务分解成更小、更易管理的「子任务」,生成「初始规划」,形成任务序列。
- 随后,它将逐次把每个子任务传递给内循环解决。在这个过程中,外循环会不断监督任务的进度和状态,并根据反馈对后续规划进行「迭代优化」。
在内循环中,XAgent 快速转变身份,展现出作为一个高效「执行者」(ToolAgent)的专业度,确保外循环传递的子任务达到预期。
根据子任务性质的不同,它可以从外部系统中检索工具,并针对子任务进行一步步求解。
在子任务完成后,它将生成当前子任务执行过程的反思,反馈给外循环,指示当前任务是否完成,以及任务执行中的潜在优化点。
如图所示,用户给 XAgent 提交了 iris.zip 文件,让 XAgent 对数据进行分析。
可以看到,XAgent 首先通过外循环将这个任务分解成了 4 个子任务:
- 对数据进行检查与理解;
- 检查系统的 Python 环境,查看相关数据分析库是否存在;
- 编写数据分析代码,对数据进行处理与分析;
- 根据 python 代码执行结果撰写分析报告。
随后,在执行每一个子任务时,XAgent 通过内循环熟练地使用文件读写、 shell 命令、python notebook 及相应 pandas、sci-kit learn、seaborn、matplotlib 等数据分析库,甚至会对数据进行可视化分析。
人机协作:智能体交互新范式
对于一个智能体而言,「是否能够与人类协作」也是体现其智能程度的重要指标。XAgent 在设计之初就针对相关问题进行了考量,并引入了专为增强人机协作的交互机制:它可以自主与用户进行交互,并向人类发出干预和指导的请求。
- 首先,XAgent 具备直观的界面,用户可以直接覆盖或修改它提出的建议,从而将 AI 效率与人类的直觉和专业知识有效结合。
- 其次,在面临陌生挑战的情况下,XAgent 具备「向人类寻求帮助」能力,它会向用户征求实时反馈、建议或指导,确保即使在不确定的领域,智能体也能发挥出最佳作用。
这种交互范式,将 AI 的自主性与人类的智慧有机融合,展示了人与 XAgent 之间的全新的协作关系。
如图所示,用户想让 XAgent 帮忙推荐一些好吃的餐馆来和朋友聚会,但是却没有提供具体详细的信息。
这个时候 XAgent 可以意识到目前用户所提供的信息不够充足,难以进行推荐,于是向人类提出请求,询问用户的倾向地点、预算范围、口味喜好、有哪些忌口等等,在得到用户的反馈后从而提供了推荐的餐厅。
高效通信语言,超强工具调用
高效通信语言,超强工具调用
无论「双循环」的运转机制,还是「人机协作」 的交互能力,在 XAgent 的总体设计中,面壁智能和清华团队着重考虑的是智能体的稳定、高效和安全等核心特性。
而结构化的通信方式同样是建立强大、稳定智能体的重要因素之一。
XAgent 采用 Function Call 作为其内部的通信语言,具备结构化、标准化、统一化等优势。
- 结构化:Function Call 具备清晰且严谨的格式,可以明确表述所需内容,从而最小化了潜在的错误。
- 标准化:Function Call 可以将与外部工具的交互过程标准化,提供一种通用语言,使智能体具备使用和整合多种工具的能力,解决复杂任务。
- 统一化:通过将信息摘要、任务规划、工具执行等所有环节转化为特定的 Function Call 形式,确保每个环节均以统一的方式进行处理,从而简化系统设计。
此外,工具调用也是评价 AI Agent 是否具备解决复杂问题的重要能力之一。
XAgent 在设计中原创了工具执行引擎 ToolServer,可以实现更安全、高效、可扩展的工具执行能力。它在隔离的 Docker 环境中运行,确保工具执行不会危及主系统的稳定性或安全性。
这种设计带来多重好处:
- 安全:在 Docker 容器内运行工具可以保护主系统免受潜在危害。
- 高效:系统可以根据需求和使用模式启动、停止和重启节点,实现最佳资源使用。
- 可扩展:方便管理代码,调试和扩展性更强。
ToolServer 的关键组件包括:ToolServerNode、ToolServerMonitor、ToolServerManager,在执行操作、节点检查、周期管理等方面提供强大的能力。
目前,XAgent 的 ToolSever 支持 FileSystemEnv、PythonNotoBook、WebEnv、ExecuteShell、RapidAPIEnv、AskHumanforHelp 等多种工具。
XAgent 不仅可以帮我们做一些简单的任务,它甚至可以帮助我们训练模型。
比如,用户希望能够对电影评论进行分析,判断一下大众对电影评价的好坏。这个时候 XAgent 会首先下载 imdb 数据集去训练一个 BERT 模型,并使用训练好的 BERT 模型对电影评论进行预测。
释放大模型潜力,全面超越 AutoGPT
经过在一系列任务中的测试,基于 GPT-4 的 XAgent 表现效果在所有基准测试中都超过了原始的 GPT-4,并全面超越了 AutoGPT。
这些任务需要 Agent 推理规划和使用外部工具的能力,包括:用搜索引擎回答问题的能力(FreshQA+HotpotQA)、Python 编程能力(MBPP)、数学推理能力(MATH)、交互式编程能力(InterCode)、具身推理能力(ALFWorld)、真实复杂任务等。