引言
"All hands on deck for the future of AI-driven development."
这是"一天一个开源项目"系列的第92篇文章。今天带你了解的项目是 OpenHands(原名 OpenDevin)。
如果说之前介绍的 RuFlo 侧重于后端的代理编排,而 cmux 侧重于终端的展示,那么 OpenHands 则是目前最接近"完全形态"的开源 AI 软件工程师。它是对标闭源工具 Devin 的社区力量结晶。在一个集成了代码编辑器、终端、浏览器和实时预览的完整 GUI 环境中,OpenHands 的 Agent 可以自主规划任务、执行命令、编写代码并验证结果,真正实现从需求到代码的闭环。
你将学到什么
- 什么是 OpenHands(以及它从 OpenDevin 更名的背景)
- 如何在 Docker 隔离环境安全地运行 AI 代理
- 利用 LiteLLM 接入任意大模型(如 GPT-4o, Claude 3.5, Ollama)
- AI 智能体如何处理从 Bug 修复到功能生成的全流程
前置知识
- 了解 AI Agent 的基本概念(感知-思考-执行循环)
- 熟悉 Docker 的基本操作(用于运行沙箱环境)
- 拥有主流大模型的 API Key 或本地模型环境
项目背景
项目简介
OpenHands 是一个开源平台,允许 AI 智能体与开发者并肩作战。它通过一个高度互动的网页界面,让 AI 能够直接操作文件系统、运行终端命令以及浏览网页。该项目的核心目标是让 AI 驱动的软件开发变得触手可及且完全开放。从更名后的"OpenHands"可以看出,其强调的是"众志成城(All Hands AI)"和人机协作的愿景。
作者/团队介绍
- 发起者:前身为 OpenDevin 社区,由来自 UIUC、CMU 等高校的研究者以及全行业开发者共同维护。
- 支持机构:All Hands AI。
- 核心理念:软件开发的未来不应由闭源巨头垄断,而应掌握在开源社区手中。
项目数据
- ⭐ GitHub Stars: 40k+ (极受欢迎的顶尖项目)
- 📦 技术栈: Python (后端), TypeScript/React (前端), Docker (沙箱)
- 📄 License: MIT
- 🌐 仓库: OpenHands/OpenHands
主要功能
核心作用
OpenHands 提供了一个完整的"代理沙箱"。当用户输入一个需求(如"帮我写一个贪食蛇小游戏,并修复目前的 CSS 样式 Bug")时,系统会启动一个 Docker 容器,Agent 在其中:
- 规划:拆分任务步骤。
- 执行:创建文件、安装依赖、编写代码。
- 验证:运行测试或启动应用并在浏览器内预览。
使用场景
- 端到端功能开发
- 从零开始搭建一个小型的 Web 应用或后端服务。
- 自动化 Bug 修复
- 给 Agent 一个 GitHub Issue 链接,让它自主定位代码并提交 PR。
- 技术栈迁移/重构
- 将现有代码从 JavaScript 迁移到 TypeScript,或进行大规模的代码风格统一。
快速开始
OpenHands 官方强烈建议通过 Docker 运行以确保安全。
bash
# 运行安装/启动脚本(需要 Docker 已安装)
docker run -it \
--pull=always \
-e SANDBOX_USER_ID=$UID \
-e WORKSPACE_BASE=$PWD/workspace \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $PWD/workspace:/opt/workspace \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
ghcr.io/openhands/openhands:0.15 # 使用最新版本
启动后访问 http://localhost:3000 即可在 UI 界面配置模型 Key 并开始协作。
核心特性
- 高度互动的 GUI
- 内置 VS Code 风格的代码编辑器、实时预览、终端和浏览器,让你一眼看穿 Agent 的每一个动作。
- 模型无关性
- 通过 LiteLLM 适配器,支持 100 多种 LLM 供应商,你可以自由切换最昂贵的 Claude 3.5 Sonnet 或完全本地的 Llama 3。
- 安全沙箱
- 所有破坏性操作(如
rm -rf)都发生在隔离的容器内,不会影响你的主机安全。
- 所有破坏性操作(如
- App 实时预览
- 当 Agent 构建 Web 应用时,你可以在侧边栏直接看到运行效果并进行交互。
- 支持 MCP (Model Context Protocol)
- 可以通过 MCP 插件扩展 Agent 的能力,如接入 Google 检索、Slack 消息等。
项目优势
| 对比项 | OpenHands | Devin (闭源) | Aider / Cursor |
|---|---|---|---|
| 开放度 | 完全开源 (MIT) | 商业闭源 | 部分开源/商业 |
| 自由度 | 选模型、选环境、自定义 Agent | 受限 | 面向 Chat 或 IDE |
| 沙箱模型 | 本地 Docker 透明沙箱 | 远程云端黑盒 | 通常在本地运行 |
| 任务深度 | 支持多步自主工程 | 极深 | 侧重辅助编码 |
项目详细剖析
1. 软件智能体 SDK (Agent SDK)
OpenHands 不仅仅是一个应用,它提供了一套 SDK,允许开发者自定义 Agent 的"大脑"。你可以定义不同的思维链(CoT)策略,或者为 Agent 添加特定的领域知识工具,使其成为垂直领域的"专家"。
2. SWE-bench 级的表现
在 AI 软件工程的终极考卷 SWE-bench(真实 GitHub 问题解决能力测试)上,OpenHands 一直处于开源项目的领跑地位,其自主解决复杂软件问题的成功率甚至在某些测试中逼近闭源的商业模型。
项目地址与资源
官方资源
- 🌟 GitHub : github.com/OpenHands/O...
- 📘 官方文档 : docs.all-hands.dev/
- 📄 社区论坛: [Slack/Discord 相关链接见仓库]
适用人群
- 想要拥有属于自己的"自主 AI 员工"的开发者。
- 关注 AI 软件工程前沿研究和落地的工程师。
- 对代码隐私有较高要求、希望在私有环境下运行 AI 代理的企业。
欢迎来我的个人主页找到更多有用的知识和有趣的产品