【Agent】AutoAgent: A Fully-Automated and Zero-Code Framework for LLM Agents
论文:https://arxiv.org/abs/2502.05957
代码:https://github.com/HKUDS/AutoAgent
简介:这个轻量级但功能强大的系统支持有效和动态地创建和修改工具、代理和工作流,根据用户需求,创建多智能体,并构建工具完成任务。
AutoAgent包括四个关键组件:
(1) Agentic System Utilities:
为agent驱动的任务提供基础构建块,开发Agent并集成各种工具。
- Orchestrator Agent:与用户交互的主要接口。它接收来自用户的任务,理解这些任务,将它们分解成子任务,并使用切换工具将这些子任务委托给适当的子代理。
- Web Agent:提供了一组通用的、可扩展的工具,使代理能够执行各种基于Web的任务,从一般的Web搜索到文件下载。实现了基于BrowserGym的浏览器环境。
- Coding Agent:用于处理广泛的代码驱动任务,无缝集成的、功能丰富的代理充当所有代码相关活动的主要接口。将目录查询、命令执行、代码执行等设置成了11个不同的工具(Action),在Dcoker沙盒中执行。
- Local File Agent:提供一组统一的工具来转换和分析各种本地多模态数据类型。该本地文件代理可以使用一套统一的工具将文件转换为Markdown,并执行有效的分析,以协助日常任务。使用交互式Markdown浏览器。转换为Markdown格式的文件可以在Markdown浏览器中以分页形式显示,从而使代理能够分析超出上下文长度限制的长文本和复杂文件。
(2)LLM-powered Actionable Engine:
形成中央大脑,理解输入、协调多代理完成任务
- 利用LiteLLM[23]通过一个类似openai的接口来标准化大型语言模型请求,支持来自不同提供商的100多个模型。
- 基于大型语言模型上下文生成反射(即动作),它可以大致分为两种不同的方法,利用语言模型的功能:
- 直接工具使用范例:可以根据提供的工具集和当前状态直接生成解析后的下一步工具,从而减少工具解析阶段的错误。
- 转换的工具使用范式:不依赖于大型语言模型固有的工具使用能力。利用现代大型语言模型优越的代码生成能力,我们将工具使用范式转换为结构化的XML。例如:<function=name><parameter=name>value
(3)Self-Managing File System:
管理用户多模态数据的结构化存储和检索
- AutoAgent中的文件系统是一个向量数据库,大型语言模型代理可以检索和理解。用户可以上传任何格式的文本文件(例如,.pdf, .doc, .txt)或包含任何文本文件的压缩档案和文件夹。文件系统中的系统工具自动将这些文件转换为一致的文本格式,并将它们存储在向量数据库中的用户定义集合中。
(4)Self-Play Agent Customization:
提供通过自然语言来生成定制化代理和工作流的接口
- 为了允许用户为特定的场景定制工具和代理,或者构建他们自己的多代理系统和工作流,它被设计成一个代码驱动的、可控的自编程代理框架。
- 对于需要特定领域知识的问题,但用户不具备时候,提供了一个固定的工作流去解决:
- 用户提供对智能体的大致描述、分许需求和现存的组件、分析工具和结构化智能体、生成详细的XML智能体规范
- 对于已具备特定领域知识的问题:
- 用户提供所需代理的描述,并指定他们希望创建的代理或工作流完成的任务。然后,AutoAgent使用这些关于目标任务的信息,不仅生成单个代理,还生成必要的工作流,以协调它们的协作努力,以实现指定的目标。
- AutoAgent采用了事件驱动的方法,其中我们将每个代理的任务解决建模为事件。通过利用事件监听和触发机制,AutoAgent实现了代理之间的无缝协作,与严格的图形结构相比,提供了更大的灵活性和适应性。