OpenHands:一个面向AI软件开发者的通用智能体开放平台
一、 作者、机构与发表信息
本文题为“OpenHands: An Open Platform for AI Software Developers as Generalist Agents”。它由来自学术界和工业界多个机构的研究者共同完成,主要作者包括Xingyao Wang(伊利诺伊大学厄巴纳-香槟分校/All Hands AI)、Boxuan Li(卡内基梅隆大学)、Yufan Song(卡内基梅隆大学)、Frank F. Xu(卡内基梅隆大学)、Xiangru Tang(耶鲁大学)等,合作机构涵盖UIUC、CMU、耶鲁大学、UC Berkeley、KAUST、ANU、HCMUT、阿里巴巴集团以及Contextual AI和All Hands AI等研究机构与企业。该论文已作为会议论文发表于ICLR 2025。
二、 学术背景与研究目标
本文的研究领域属于人工智能(AI)中的智能体(Agent)研究,特别是能够通过软件界面与世界交互的通用数字智能体。随着大型语言模型(LLMs)能力的提升,AI智能体在软件开发、网页浏览、科学研究和日常任务自动化等领域展现出巨大潜力。然而,开发、评估和部署能够安全、高效地执行复杂软件任务的智能体面临着多重挑战,包括:如何设计一个强大且灵活的人机交互界面;如何提供一个安全可靠的执行环境;如何协调多个智能体进行协作;以及如何系统地评估智能体的性能。
为了应对这些挑战,研究团队提出了OpenHands(前身为OpenDevin)平台。该平台旨在构建一个社区驱动的开放平台,专门用于开发能够像人类软件开发者一样与数字世界交互的通用和专用AI智能体。其核心目标是为研究者提供一个集成的框架,以便于快速原型设计、安全实验和标准化评估,从而加速AI智能体技术的发展与应用。
三、 OpenHands平台架构详解
OpenHands平台的设计核心是模拟人类软件开发者与计算机交互的三种基本方式:编写代码、使用命令行和浏览网页。其架构主要由三个核心组件构成:智能体抽象层、事件流和运行时环境。
1. 智能体定义与实现(Agent Abstraction): 智能体被定义为能够感知环境状态(通过事件流中的历史动作与观察)并产生相应动作以完成任务的系统。OpenHands通过一个step函数抽象了智能体的核心逻辑,该函数接收当前状态并输出一个动作。平台提供了一套核心的、基于编程语言(PL)的原生动作集,使智能体能够执行任意Python代码(IPythonRunCellAction)、运行Bash命令(CmdRunAction)以及与网页浏览器交互(BrowseInteractiveAction,基于BrowserGym的领域特定语言)。这种设计使得智能体能够利用编程语言的强大表达能力和灵活性来完成任务,而无需依赖大量预定义的、功能固化的工具API。同时,该架构也兼容现有的基于JSON函数调用的工具调用型智能体,允许用户轻松定义新工具。
2. 运行时环境(Agent Runtime): 为了安全地执行智能体产生的代码和命令,OpenHands为每个任务会话启动一个安全的、隔离的Docker容器沙箱。沙箱内部运行着一个OpenHands动作执行API服务器,该服务器管理着三个关键组件: * Bash Shell:连接到底层操作系统环境,执行命令行指令。 * Jupyter IPython Server:处理交互式Python代码执行请求并返回结果。 * 基于Playwright的Chromium浏览器:提供网页浏览能力,支持导航、点击、输入、滚动等操作,并能返回丰富的观察信息(如HTML、DOM、可访问性树、屏幕截图等)。 平台支持基于任意用户提供的Docker镜像构建运行时环境,这意味着智能体可以在各种预配置的软件和操作系统环境中工作,极大地增强了其适用性。
3. 智能体技能库(Agent Skills Library): 为了进一步提升智能体处理复杂任务的效率和可靠性,OpenHands构建了一个名为agentskills的Python工具库。这个库并非简单地包装所有可能的Python包,而是专注于提供那些LLM难以直接通过编写代码可靠完成,或需要调用外部模型的功能。例如,它包含了从SWE-Agent等工作中借鉴的文件编辑工具(如edit_file),以及用于阅读多模态文档的工具(如parse_image、parse_pdf)。这些工具作为Python函数被自动导入到IPython环境中,智能体可以通过执行Python代码来调用它们,从而降低了社区贡献新工具的门槛。
4. 多智能体委托(Multi-Agent Delegation): OpenHands支持多智能体协作。通过AgentDelegateAction这一特殊动作类型,一个智能体可以将特定的子任务委托给另一个更专业的智能体。例如,通用的CodeActAgent可以将复杂的网页浏览任务委托给专门的BrowsingAgent去执行,从而实现优势互补。
四、 Agenthub与评估框架
1. Agenthub: 基于上述架构,OpenHands社区贡献了多种智能体实现,形成了Agenthub。其中核心的智能体包括: * CodeAct Agent:默认的通用智能体,基于CodeAct框架。它可以在自然语言对话和执行代码(Bash、Python、浏览器操作)之间灵活切换,以完成文件编辑、网页浏览、程序运行等多种任务。 * Browsing Agent:专为网页浏览任务设计的通用网页智能体,作为WebArena等基准测试的简单有效基线。 * GPT-Swarm Agent:集成了GPT-Swarm框架,该框架使用可优化的图来构建智能体系统,通过模块化和自动优化节点与边来创建多智能体系统。 * Micro Agent(s):允许社区成员基于现有通用智能体(如CodeAct Agent)快速创建针对特定用例的、拥有专门提示词(prompt)的微智能体。
2. 综合评估框架: 为了系统性地追踪通用数字智能体的进展,OpenHands集成了15个已建立的基准测试,涵盖软件工程、网页浏览和综合辅助任务三大类别。评估在统一的OpenHands平台上进行,确保了实验设置的可复现性和公平性。主要评估结果如下: * 软件工程任务:在SWE-bench Lite(解决真实GitHub问题)上,使用Claude-3.5-Sonnet的CodeActAgent v1.8取得了26.0%的解决率,与当前开源软件工程专用智能体(如Aider的26.3%)性能相当。在HumanEvalFix(修复代码bug)、ML-Bench(机器学习编码)、BIRD(文本转SQL)、BioCoder(生物信息学编码)等基准上,OpenHands的通用智能体同样展现了强大的竞争力,甚至在ML-Bench上达到了76.5%的成功率。这证明了其通用架构在专业软件任务上的有效性。 * 网页浏览任务:在WebArena(真实网站任务)上,OpenHands的BrowsingAgent使用GPT-4o取得了14.8%的成功率,与使用GPT-4-Turbo的专用WebArena Agent(14.4%)性能相近。在MiniWoB++(合成网页任务)上,BrowsingAgent取得了40.8%的成功率。这表明平台提供的浏览器交互能力足以支持构建有效的网页智能体。 * 综合辅助任务:在GAIA(通用任务解决)、GPQA(研究生级别问题解答)、AgentBench(操作系统交互)、MINT(多轮交互数学与代码问题)等一系列多样化任务上,OpenHands的智能体(如CodeActAgent和GPT-Swarm Agent)均取得了显著成果。例如,在GPQA Diamond子集上,CodeActAgent使用Claude-3.5-Sonnet达到了52.0%的准确率,超过了GPT-4的38.8%。这充分体现了OpenHands平台在培养能够综合利用编码、浏览和工具调用能力的“通才”智能体方面的潜力。
评估结果显示,OpenHands的通用智能体(如CodeActAgent)在没有针对任何特定基准进行提示工程优化的情况下,能够在软件工程、网页交互和综合辅助三大类任务上均取得有竞争力的性能。这种通用性是其设计哲学成功的关键体现。
五、 研究结论与价值
本文介绍了OpenHands,一个用于开发通过软件界面与世界交互的AI智能体的社区驱动平台。其核心贡献在于提供了一个强大、灵活且安全的集成框架,该框架具备以下关键特性:1)基于事件流的交互机制;2)Docker沙箱隔离的运行时环境;3)基于编程语言的原生动作接口;4)可扩展的智能体技能库;5)多智能体协作能力;6)全面的评估框架。
OpenHands不仅是一个概念框架,更是一个包含智能体、环境和评估的完整、可立即使用的实现。它通过降低智能体开发的门槛(如易于创建新工具和微智能体)、保障实验的安全性(沙箱环境)、并提供标准化的性能评估(集成多种基准),旨在成为未来AI智能体研究和实际应用的催化剂。该平台已获得广泛的社区关注(超过32k GitHub星标和来自188位贡献者的2.1k次提交),并在MIT许可下开源,鼓励学术界和工业界的广泛使用与贡献。
六、 研究亮点
agentskills库积累可复用工具,并通过集成大量主流基准测试构建了统一的评估生态。这种开放协作的模式加速了创新和最佳实践的共享。七、 其他有价值内容
论文还详细比较了OpenHands与其他主流AI智能体框架(如AutoGPT、LangChain、MetaGPT、AutoGen、SWE-Agent等)的特性,突出了OpenHands在提供标准化工具库、内置沙箱与代码执行、内置网页浏览器、多智能体协作、人机协作、Agenthub以及评估框架等方面的综合优势。此外,文中提到了项目在软件质量控制(如集成测试)方面的努力,并讨论了开发安全可靠智能体所面临的挑战(在附录中),体现了工程实践的严谨性。最后,作者贡献部分详细说明了基于Pull Request的量化贡献机制,展现了大型开源协作项目的管理方法。