首页 > 教程攻略 > ai资讯 >OpenDevin:一个面向通用型agent AI软件开发者的开放平台

OpenDevin:一个面向通用型agent AI软件开发者的开放平台

来源:互联网 时间:2026-07-18 13:27:08

先说一个核心判断:如果让AI agent 真正学会用软件与世界互动,那它所能释放的潜力,可能远超我们当前的想象。而 OpenDevin 这个项目,正是朝着这个方向迈出的、社区驱动的一大步。

一、结论写在前面

软件是当今人类最强大的工具之一,熟练的程序员借此与世界进行复杂而深刻的交互。与此同时,随着大语言模型的进步,能够与环境互动并产生实际影响的 AI agent 也在飞速发展。OpenDevin 正是这样一个平台,它专注于开发那些能通过软件与世界交互的“通才”与“专才”型 agent 。其核心设计理念包括以下几点:

(1)

灵活的交互机制

:它允许用户、agent 和环境通过一个强大的事件流架构进行互动,这个架构既灵活又稳健。

(2)

完备的环境支持

:平台为 agent 提供了一个沙盒操作系统和一个网页浏览器,让 agent 能真正“动手”完成任务。

(3)

人一样的交互接口

:agent 与环境的交互方式,与一个真实的软件工程师非常相似。它能创建复杂软件、执行代码,还能浏览网站收集信息。

(4)

多 agent 协作

:支持多个专业 agent 委托任务、协同工作,应对更复杂的场景。

(5)

系统化评估框架

:内置的评估体系能方便地对 agent 在广泛任务上的表现进行量化考核。

更重要的是,OpenDevin 不仅仅是一个理论框架,它提供了完整的、开箱即用的实现。目前,它的 agent 中心已经拥有超过 10 个已实现的 agent,其中包含一个基于 CodeAct 架构的通用 agent,并增强了网页浏览和代码编辑能力。用户通过聊天界面就能与系统交互,实时看到 agent 在做什么,也能随时给出反馈。评估框架目前已支持 15 个基准测试,用来衡量 agent 的真实水平。

二、深入解析 OpenDevin

2.1 背景与初衷

随着 AI agent 解决问题的能力越来越强,如何开发和评估它们也成了一个新的挑战。近年来,不少团队都在努力创建开源框架来加速这一进程。这些框架通常包含三个核心要素:agent 与世界的交互接口、 agent 的运行环境,以及人机或 agent 间的通信机制。

在思考如何设计 AI agent 时,一个有意思的视角是——看看人类是如何与世界互动的。答案很明确,人类最强大的交互方式就是软件。从最基本的物流支持,到最前沿的科学技术研究,软件无处不在。既然软件如此强大,且有着成熟的开发、使用和部署工具链,那它理所当然地应该成为 AI agent 与复杂世界交互的理想接口。但挑战也随之而来:如何让 agent 高效地创建和修改复杂系统中的代码?如何为它们提供实时收集信息、调试或完成任务的能力?又该如何确保这一切的安全性?

2.2 架构设计

OpenDevin 的架构主要围绕四个核心问题展开:如何定义 agent、动作如何产生观察结果、如何管理 agent 的技能集合、以及如何让多个 agent 协同工作。图 3 提供了完整的概览。

2.2.1 agent 的定义与实现

状态与事件流

:在 OpenDevin 中,agent 通过一个“状态”结构来感知环境。这个状态的核心是“事件流”——它是一个按时间顺序排列的历史记录,包含 agent 之前的所有动作和观察到的结果,也包括用户给它的指令和反馈。当然,状态里还包含了很多其他辅助信息,比如调用 LLM 的累积成本,多 agent 协作的元数据等等。

行动

:受 CodeAct 项目的启发,OpenDevin 定义了一套核心的通用动作来连接 agent 和环境。IPythonRunCellAction 和 CmdRunAction 让 agent 能在安全隔离的沙盒环境中执行任意的 Python 代码和 bash 命令。BrowserInteractiveAction 则允许 agent 像一个真实用户一样与网页浏览器交互。

这种基于编程语言的操作空间既强大又灵活。你可以用 Python 函数、REST API 等形式来定义任务,既保持了可靠性,也易于维护。用户也可以轻松地定义一个新工具,比如写个 Python 函数来做计算器,然后让 agent 通过类似 JSON 的接口去调用它。更妙的是,如果某些 API 不可用,agent 还能自己“造工具”——生成 Python 函数来解决。

观察

:观察结果是 agent 感知到的环境变化。这既可以是 agent 自己行动的结果,比如执行代码后的输出、网页截图;也可以是用户发来的自然语言指令。这套机制让 agent 能准确了解自己的行为产生了什么效果。

实现新 agent

:OpenDevin 的 agent 抽象设计得非常简洁且强大,用户只需聚焦于一个 step 函数,它接收当前状态作为输入,然后根据 agent 的逻辑生成合适的动作。这种抽象大大降低了创建新 agent 的门槛,让开发者可以专注于定义 agent 的行为和逻辑,而无需关心底层执行细节。

2.2.2 agent 运行时:动作如何落地

agent 运行时为 agent 提供了一个通用的环境,让它具备了一个真实软件工程师的全部工具。这包括一个 bash 终端用于运行代码和命令行工具,一个 Jupyter 笔记本用于交互式编程,以及一个 Chromium 浏览器用于网页任务。

Linux SSH 沙盒

:每个任务会话,OpenDevin 都会启动一个安全隔离的 Docker 容器。所有来自 agent 的 bash 命令都在这个沙盒里执行,通过 SSH 协议连接,既安全又可靠。你还可以把想要处理的文件挂载到这个沙盒里,让 agent 访问。

Jupyter IPython

:在这个 Linux 沙盒里,还运行着一个交互式的 Jupyter 服务器,非常适合做一些需要即时调试的 Python 代码。

Web 浏览器

:基于 Playwright 的 Chromium 浏览器,通过 BrowserGym 定义的浏览器动作原语与 agent 互动。agent 可以执行导航、点击、输入、滚动等操作,并收到包含 HTML、DOM、截图等丰富的观察结果。这些观察结果还可以通过配置进行增强,让 agent 更好地理解网页状态。

2.2.3 agent 技能:可扩展的计算机接口

SWE-Agent 项目曾强调过一个痛点:精心设计的 agent-计算机接口对于解决复杂任务至关重要。但创建和维护大量专用工具,本身就是一个巨大的工程挑战。

为了应对这个问题,OpenDevin 构建了一个 AgentSkills 库。这是一个工具箱,提供了那些通过 bash 或 Python 代码不容易直接获取的实用程序。

易于创建和扩展

:AgentSkills 本质是一个 Python 包,工具就是其中的函数,这些函数会自动导入到 Jupyter IPython 环境中。把 Python 函数定义为工具的门槛极低,社区成员可以轻松地为这个库贡献新工具。而且,由于是 Python 包,不同的 agent 都能通过核心动作 IPythonRunCellAction 来利用这些工具。

严格测试

:为了保证可靠性,AgentSkills 遵循软件工程的最佳实践,为每个工具都编写了广泛的单元测试。

纳入标准

:AgentSkills 的目标并不是把所有 Python 包都封装一遍,让 agent 重新学习。明摆着,LLM 已经知道 pandas 能读 CSV 文件,就没必要再创造一个新工具教它。只有当直接编写代码实现某个功能对 LLM 来说有难度(比如编辑文件并替换特定行),或者需要调用外部模型时(比如语音转文字),才会考虑添加新技能。目前,AgentSkills 库已经包含来自 SWE-Agent 的文件编辑工具、滚动查看工具,以及解析图片(利用视觉语言模型)和读取 PDF 的工具。

2.2.4 agent 委托:多 agent 协作

OpenDevin 支持多个 agent 之间的交互,核心机制是 AgentDelegateAction 这种特殊动作。举例来说,一个在网页浏览方面能力有限的通用型 CodeActAgent,可以将复杂的网页浏览子任务委托给专门的 BrowsingAgent,让后者去执行导航、点击、填写表单等操作。

2.3 AgentHub:社区贡献的 agent 集散地

基于统一的 agent 抽象,OpenDevin 支持社区贡献各种各样的 agent 实现,供用户选择,也可以作为不同任务类型的基线。

CodeAct Agent

:这是 OpenDevin 默认的通用型 agent,基于 CodeAct 框架。在每个步骤中,它既可以通过自然语言和人类交流,也可以通过执行代码(bash、Python、浏览器脚本)来完成任务。这种通用的动作空间让它能胜任各种任务。

Browsing Agent

:一个通用型的网络 agent,作为网络任务的一个简单高效的基线。它有点像 WebArena 中的 agent,但观察和动作方式有所改进,仅使用零样本提示就能运作。它会结合任务描述、动作空间、当前浏览器状态等信息来规划下一步。

GPTSwarm Agent

:这种做法很有启发性——它用可优化的图来构建 agent 系统。每个节点是一个操作,节点间的边定义协作路径。这种设计允许自动优化,推动多 agent 系统的进步。

Micro Agent

:这是一种针对特定任务的轻量级 agent,复用了通用 agent(比如 CodeAct Agent)的大部分实现。社区成员可以分享针对自己特定用例表现良好的专用提示。你甚至不需要编程,只需提供 agent 的名称、描述、输入输出模式,以及可选的关键提示,就能创建出一个专属于你的 agent,比如用来生成 git 提交信息的 CommitWriterAgent,或者用来纠正常见的拼写错误的 TypoFixerAgent。

2.4 系统化评估

为了系统追踪构建通用数字 agent 的进展,OpenDevin 集成了 15 个已有的基准测试,涵盖软件工程、网页浏览和杂项辅助任务。有意思的一点是,被评估的 OpenDevin agent 没有基于特定基准进行过手动的提示词工程,这使得评估结果能反映出通用 agent 的真实实力。

2.4.1 结果概览

OpenDevin 的目标是开发能通过软件接口与世界交互的通用数字 agent。因此,它们不仅要在代码编辑上表现出色,网页浏览和各类辅助任务(如回答代码仓库问题、在线研究)也必须兼顾。从精选的评估结果来看,OpenDevin agent 在每个类别中可能都不是顶尖的,但其通用性值得关注。举个例子,同一个 CodeAct Agent,在完全不修改系统提示词的情况下,就在软件开发、网页交互和杂项任务三大类别里都取得了有竞争力的表现。

2.4.2 软件工程

SWE-Bench

:这是评估 agent 解决真实 GitHub Issue(错误报告或功能请求)的著名基准。在 SWE-Bench Lite 子集上,最新版本的 CodeActAgent v1.8 使用 Claude-3.5-Sonnet 模型,达到了 26% 的解决率,与其他专门用于软件工程的开源 agent 相比很有竞争力。而使用更便宜的 GPT-4o-mini 时,虽然解决率下降到 6.3%,但成本只有前者的 1%,性价比非常可观。

HumanEvalFix

:这个基准要求 agent 修复给定函数中的 bug。OpenDevin 的 CodeAct Agent 在 Python 分支上修复了 79.3% 的 bug,几乎是 StarCoder2-15B 的两倍。虽然 SWE-Agent 达到了 87.7%,但它是给了完整示例(1-shot),而 OpenDevin 是零样本(0-shot),这个差距主要源于提示策略的不同。

ML-Bench

:在机器学习任务上,搭载 GPT-4o 的 OpenDevin agent 取得了 76.47% 的最高成功率,超越了 SWE-Agent 的 42.0%。这证明了它在复杂 ML 任务上的有效性,也显示出 agent 方法在减少幻觉和语法错误方面的潜力。

Gorilla APIBench

:评估 agent 使用 API 的能力。使用 GPT-4o 的 OpenDevin 取得了 36.4% 的成功率,优于未专门针对 API 调用微调的基线模型。

ToolQA

:评估 agent 使用外部工具的能力。在简单的工具使用子集上,OpenDevin 的表现超越了所有基线。

BioCoder

:一个生物信息学相关的代码生成基准。OpenDevin 达到了 44.0% 的成功率,远超单纯提示 GPT-4 的非 agent 方法。这凸显了 agent 在多轮交互中进行上下文检索和自我调试的重要性。

BIRD

:一个文本到 SQL 的基准。OpenDevin 在子集上取得了 47.3% 的执行准确率,优于一些使用代码 LLM 的纯提示方法。允许 agent 多轮交互、根据 SQL 执行结果进行纠正,是这里的关键。

2.4.3 网页浏览

WebArena

:在这个复杂的网页 agent 基准上,OpenDevin 的 Browsing Agent 表现出色。它没有像其他一些 agent 那样做领域定制,而是保持通用性,展现了通用浏览 agent 与领域定制专家 agent 之间的性能权衡。

MiniWoB

:一个更简单的网页基准。OpenDevin 的通用 Browsing Agent 在不对环境做任何适应的情况下完成了近一半的任务。这显示出在通用型和专家型 agent 之间,存在着比 WebArena 更大的权衡空间。

2.4.4 杂项辅助

GAIA

:评估 agent 的通用任务解决技能。OpenDevin 取得了 32.1 的分数,显著超越了原始的 AutoGPT。由于其对多模态和网页导航能力敏感,随着 OpenDevin 基础设施的改进,这个分数还有望进一步提升。

GPQA

:评估 agent 解决高难度研究生级别问题的能力。OpenDevin 通过集成多种工具(Python 计算、网页搜索),在主要和钻石子集上分别超越了先前的最先进水平 9.6% 和 12.3%。

AgentBench

:评估 agent 在多轮开放环境中的推理和决策能力。使用 GPT-4o 的 OpenDevin agent 达到了 57.6% 的分数,超过了原论文中使用 GPT-4 的 42.4%。不过有趣的是,当使用较弱的模型(如 GPT-3.5-turbo)时,OpenDevin agent 的表现反而不如原基线 agent,这暗示了通用 agent 需要一定的底层模型能力门槛才能有效运行。

MINT

:评估 agent 通过多轮交互使用工具和反馈的能力。OpenDevin agent 与原基准默认 agent 表现相当,在数学子集上还有所改进。

ProofWriter

:一个评估演绎推理能力的合成数据集。OpenDevin agent 使用符号求解器,达到了与当前最先进的神经符号模型相当的性能。

Entity Deduction Arena

:评估 agent 通过战略性提问推断未知实体的能力。OpenDevin agent 在物品和名人两个数据集上都产生了与原论文相当的性能。