Project report / GitHub evidence

OpenDevin/OpenHands: 开源 AI 软件工程师平台

这是可索引项目报告证据页:它保留 OpenDevin/OpenHands: 开源 AI 软件工程师平台 的源材料入口、机制线索和限制提醒;正文仍需 reader/editor 与 academic public-copy review 后才能当作最终结论引用。

OpenDevin/OpenHands: 开源 AI 软件工程师平台

基本信息

字段内容
GitHubhttps://github.com/OpenDevin/OpenDevin
Star50k+
技术栈Python, React, Docker, PyTorch, Claude/GPT API, FastAPI
许可证MIT (核心), 企业版另设许可
安装pip install openhands 或 Docker 部署

项目简介

OpenDevin(现更名为 OpenHands)是一个开源的 AI 驱动软件开发平台,旨在构建能够自主完成软件工程任务的 AI 智能体。该项目是 AI 软件工程师领域的标杆级开源项目,在 SWE-bench 基准上达到 77.6% 的解决率,被 TikTok、Amazon、Netflix、NVIDIA、Google 等众多科技公司的工程师采用。

OpenHands 提供多种使用方式:SDK(可组合的 Python 库)、CLI(命令行界面)、Local GUI(本地图形界面)、Cloud(云服务)和 Enterprise(企业版)。其核心能力包括代码编写与修改、文件操作、命令行执行、Web 浏览、Git 操作等,能够自主完成从需求理解到代码实现、测试和调试的完整软件开发循环。

从架构上看,OpenHands 是一个典型的 Agent 系统:LLM 作为”大脑”进行推理和决策,通过沙箱化的执行环境进行代码操作,通过观察执行结果来迭代改进。这种”思考-行动-观察”的循环与 Self-Evolve 的自我进化理念高度契合。

目录结构

opendevin__opendevin/
├── README.md                    # 项目文档
├── LICENSE                      # MIT 许可证
├── pyproject.toml               # Python 项目配置
├── Makefile                     # 构建脚本
├── docker-compose.yml           # Docker 编排
├── config.template.toml         # 配置模板
├── openhands/                   # 后端核心代码
│   ├── __init__.py
│   ├── version.py               # 版本管理
│   ├── app_server/              # Web 应用服务器
│   │   ├── app.py               # FastAPI 应用
│   │   ├── config.py            # 配置管理
│   │   ├── conversation_paths/  # 会话管理
│   │   ├── event/               # 事件系统
│   │   ├── event_callback/      # 事件回调
│   │   ├── file_store/          # 文件存储
│   │   ├── git/                 # Git 操作
│   │   ├── integrations/        # 外部集成 (Slack, Jira 等)
│   │   ├── mcp/                 # Model Context Protocol
│   │   ├── sandbox/             # 沙箱执行环境
│   │   └── secrets/             # 密钥管理
│   ├── server/                  # 服务器模块
│   └── analytics/               # 分析模块
├── frontend/                    # React 前端
├── containers/                  # Docker 容器配置
├── tests/                       # 测试套件
├── skills/                      # Agent 技能定义
├── enterprise/                  # 企业版功能
├── scripts/                     # 辅助脚本
├── docs/                        # 文档
├── dev_config/                  # 开发配置
└── kind/                        # Kubernetes 部署配置

核心模块分析

1. Agent 架构

OpenHands 的核心是一个基于 LLM 的 Agent 循环:

# OpenHands Agent 循环的概念表示
class AgentLoop:
    def run(self, task: str):
        while not task_completed:
            # 1. 思考: LLM 分析当前状态和任务需求
            thought = llm.think(task, observation, history)

            # 2. 行动: 执行代码修改、命令行操作等
            action = llm.plan_action(thought)
            observation = execute(action)  # 在沙箱中执行

            # 3. 观察: 获取执行结果
            feedback = parse_observation(observation)

            # 4. 迭代: 更新历史并继续
            history.append((thought, action, feedback))

2. 沙箱化执行环境

# 沙箱环境确保安全执行
# Agent 可以在隔离容器中:
# - 执行任意 shell 命令
# - 读写文件
# - 运行测试
# - 安装依赖
# - Git 操作

所有代码操作都在 Docker 容器中执行,确保主机系统的安全性。

3. 多模式支持

OpenHands 提供多种使用模式:

SDK 模式:

from openhands import Agent

agent = Agent(model="claude-sonnet-4-20250514")
result = agent.run("Fix the bug in src/main.py that causes NullPointerException")

CLI 模式: 类似 Claude Code 的命令行体验

GUI 模式: 类似 Devin 的图形界面,包含 REST API 和单页应用

Cloud 模式: 托管在 app.all-hands.dev,支持 GitHub/GitLab 登录

4. 事件系统与回调

# 事件驱动架构
# Agent 的每个操作都产生事件,可以被监听和记录
# 支持的事件类型包括:
# - 代码修改事件
# - 命令执行事件
# - 文件操作事件
# - Git 操作事件
# - 观察反馈事件

5. 集成与扩展

OpenHands 支持丰富的外部集成:

技术亮点

  1. SWE-bench 77.6%: 公开资料报告的真实 GitHub Issue 解决基准结果;相对位置需要按评测日期和 leaderboard 版本复核
  2. 全栈 Agent 能力: 从需求理解、代码编写、测试执行到 Git 操作的全流程自动化
  3. 多形态部署: SDK、CLI、GUI、Cloud、Enterprise 五种部署方式,适配不同使用场景
  4. 安全沙箱: Docker 容器隔离执行,确保 AI Agent 的操作不会影响宿主系统
  5. 活跃社区: 50k+ Star, 被众多一线科技公司工程师采用
  6. MCP 协议: 支持 Model Context Protocol,可与多种工具和数据源集成

与 Self-Evolve 关联

维度贡献
自主代码修改OpenHands 展示了 AI Agent 自主读取、理解、修改代码的能力,是 Self-Evolve 代码自我进化的直接参考实现
迭代改进循环”思考-行动-观察”的 Agent 循环与 Self-Evolve 的”生成-评估-改进”自我进化循环高度一致
沙箱化测试Docker 容器隔离的安全测试机制为 Self-Evolve 系统的代码验证提供安全模型
多 LLM 适配支持多种 LLM 后端的设计为 Self-Evolve 的模型无关性提供参考

参考资料