OpenHands
类别:AI 编程智能体(开源) | 更新时间:2026-07
1. 基础信息
| 项目 | 内容 |
|---|---|
| 开发商/维护方 | All Hands AI |
| 是否开源 | 是 |
| 开源协议 | MIT |
| 官方网站 | https://all-hands.dev |
| GitHub 地址 | https://github.com/All-Hands-AI/OpenHands |
| 核心语言 | Python |
| 底层模型 | 兼容 100+ 模型供应商(经 LiteLLM),最佳配置如 Claude Opus 4.6 |
| 适用人群 | 追求高自主度的开发团队、开源维护者、需要批量处理 Issue 的中大型团队 |
2. 核心设计思想
OpenHands 前身为 OpenDevin,定位是"软件开发的数字智能体":不止于 IDE 内辅助补全,而是像人类工程师一样理解仓库、规划任务、修改并测试代码、提交成果。核心工作方式是自主代理------给它一个 Issue 或任务描述,它在沙箱中自主探索代码库、执行修复,最终产出可直接合并的 PR。
架构上最具辨识度的是事件流(Event Stream):智能体的所有动作------读文件、执行命令、调用工具、模型推理------都被序列化为事件,经统一服务器串联,支持任务持久化、续跑与多智能体编排。执行环境采用 Docker 沙箱,任务在隔离容器中运行,避免污染宿主机器。
另一技术特色是 CodeAct:智能体直接生成并执行 Python 代码来操作系统与文件,而非对话式调用工具,这是其 SWE-bench 高分的核心。2025-11 完成 1800 万美元 A 轮融资,v1.0 基于自研 Software Agent SDK 重写,进一步强化可组合性。
3. 特性
- 自主修复 Issue 并生成 PR 的全流程闭环
- Docker 隔离沙箱执行,安全可控地运行任意命令
- CodeAct 机制:以生成并执行 Python 代码的方式调用工具,效率高、表达力强
- 事件流架构:任务可持久化、续跑,支持多智能体协作与人工接管
- 兼容 100+ 模型供应商(经 LiteLLM),模型可插拔
- 提供 CLI、桌面应用与云端多种形态
- 支持 GitHub 集成:Issue 拉取、PR 创建、仓库克隆
- 多智能体协作:多个实例并行处理不同任务
- SWE-bench Verified 约 72%(Claude Opus 4.6 配置),为开源项目最佳成绩之一
- 内置代码浏览、检索与测试执行能力
- 支持自定义沙箱镜像与运行时扩展
- v1.0 基于自研 Software Agent SDK 重写,架构更清晰、扩展点更规范
4. 典型模式
模式一:Issue 到 PR 的自动化修复。 场景:维护者收到大量 bug 报告,人力不足。工作流:将 Issue 链接交给 OpenHands,指定目标分支;智能体在 Docker 沙箱中克隆仓库、定位问题、修改代码、运行测试;人工审查智能体生成的 PR 后合并,全程可随时接管或回滚。
模式二:批量重构/迁移。 场景:技术债清理、框架升级。工作流:拆分为多个子任务并行执行,各实例在独立沙箱中工作,事件流统一记录进度,汇总各 PR 统一评审。
5. 关键对比
| 维度 | OpenHands | Devin | Claude Code | Aider |
|---|---|---|---|---|
| 形态 | 沙箱自主代理 | 云端自主代理 | 终端/CLI | 终端/CLI |
| 是否开源 | 是(MIT) | 否 | 否 | 是(Apache 2.0) |
| 底层模型 | 100+ 供应商可插拔 | 自研闭源模型 | Claude 系列 | 75+ 供应商 |
| 成本 | 模型按量付费,自托管免费 | 订阅制,较高 | 按 token 计费 | 单会话 token 消耗最低 |
| 最佳场景 | 无人值守的 Issue 批处理 | 托管式全自动开发 | 交互式结对编程 | 轻量结对编程 |
与 Devin 相比,OpenHands 开源可自托管、模型自选、成本可控;与 Claude Code、Aider 等交互式工具相比,强在高自主度场景,弱在交互手感与轻量性。追求自主批处理、且能维护 Docker 环境的团队选它。
6. 优缺点
优点
- MIT 开源,可自托管、可深度定制
- 自主任务执行能力强,SWE-bench 成绩居开源之首
- 模型无关,100+ 供应商任选
- 事件流架构支持持久化与多智能体协作
缺点
- 部署重:强依赖 Docker,环境门槛高
- 本地小模型(如 7B 参数级)效果差,难以离线轻量运行
- 自主模式下行为复杂,人工审查成本高
- 沙箱与事件流架构复杂度高,二次开发门槛高
7. 落地组合方案
方案 A:开源项目维护的 Issue 自动化流水线。 组合:OpenHands(自托管)+ Claude Opus 4.6 或 DeepSeek 等性价比模型(经 LiteLLM)+ GitHub Actions。适合:有持续 Issue 量的中大型项目。工作流:Actions 创建沙箱→OpenHands 拉取标记的 Issue→修复并跑测试→生成 PR 打上 agent 标签→维护者统一审查。安全上加只读权限与依赖扫描,成本按用量控制。
方案 B:多智能体并行重构平台。 组合:OpenHands v1.0(Software Agent SDK)+ 事件流服务器 + 私有 Docker 镜像库。适合:30 人以上、代码量大的中大型团队。工作流:架构师拆解任务→并行调度多个实例→事件流集中监控→CI 校验后人工抽查合并,实现"机器干重复活、人干评审活"。
8. 安装步骤
OpenHands 以 Docker 容器方式运行,需要先安装 Docker(https://www.docker.com )。
- 安装并启动 Docker。
- 拉取镜像并启动 OpenHands:
bash
docker run -it --rm -p 3000:3000 ghcr.io/all-hands-ai/openhands
- 浏览器打开 http://localhost:3000 进入工作台。
- 在设置中选择模型供应商(经 LiteLLM 兼容 100+ 供应商)并填入 API Key,创建会话开始使用。
9. 登录与模型配置
OpenHands 开源自托管版本无账号登录;模型经 LiteLLM 兼容 100+ 供应商(OpenAI、Anthropic、DeepSeek、GLM、Qwen、本地 Ollama 等),在设置中选择厂商并填入 API Key 即可。
9.1 自托管:无账号,直接配置模型
- 开源形态无需注册登录;Docker 启动后在 http://localhost:3000 工作台 → Settings → Model 中选择供应商并填入 Key。
- 只消耗所配置模型厂商的 API 额度;OpenHands 本身免费(云端托管版 all-hands.dev 才需要注册账号)。
- LiteLLM 兼容层保证切换厂商只改一处配置。
9.2 各厂商 API Key 配置(界面或环境变量)
工作台 Settings → Model 下拉选择供应商:
bash
# 也可通过环境变量注入(docker run -e 或 .env)
# OpenAI
export OPENAI_API_KEY=sk-xxxxxxxx
# Anthropic Claude
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxx
# DeepSeek(深度求索)
export DEEPSEEK_API_KEY=sk-xxxxxxxx
# GLM(智谱清言)
export ZHIPU_API_KEY=xxxxxxxx.yyyyyyyy
# Qwen(阿里云百炼)
export DASHSCOPE_API_KEY=sk-xxxxxxxx
9.3 自定义 OpenAI 兼容端点(国产模型 / 本地 Ollama)
若预设列表不含目标厂商,用 LiteLLM 自定义模型标识:
| 厂商 | 模型标识(LiteLLM 格式) | 模型名示例 |
|---|---|---|
| DeepSeek | deepseek/deepseek-chat | deepseek-chat |
| 智谱 GLM | zhipu/glm-4.5 | glm-4.5 |
| 阿里云百炼 | dashscope/qwen-max | qwen-max |
| 硅基流动 | 各家开源模型 | siliconflow/qwen2.5-72b |
| 本地 Ollama | ollama/qwen2.5:7b(ollama serve 后可用) |
qwen2.5:7b |
9.4 各厂商 Key 获取入口
| 厂商 | 模型示例 | Key 获取入口 |
|---|---|---|
| OpenAI | gpt-4o / o3 | platform.openai.com |
| Anthropic | claude-opus-4-1 / claude-sonnet-4-5 | console.anthropic.com |
| DeepSeek | deepseek-chat / deepseek-reasoner | platform.deepseek.com |
| 智谱 GLM | glm-4.5 / glm-4.5-air | open.bigmodel.cn |
| 阿里云百炼 | qwen-max / qwen3 | bailian.console.aliyun.com |
| 硅基流动 | 各家开源模型聚合 | cloud.siliconflow.cn |
| Ollama | 本地任意开源模型 | 无需 Key |
提示:OpenHands 的 SWE-bench 高分依赖强模型(Claude Opus 级别);日常小任务用 DeepSeek / GLM 可大幅降低成本;本地 7B 级小模型效果较差,不建议离线轻量场景。
10. 简单示例
示例一:打开 http://localhost:3000 后:
-
选择工作区目录或粘贴 GitHub 仓库 / Issue 链接。
-
输入任务描述,例如:
这个仓库的 user API 在并发请求下偶发 500,请定位根因并修复,跑通现有测试
-
点击开始,OpenHands 在 Docker 沙箱中克隆代码、定位问题、修改并运行测试,界面实时展示每一步操作。
-
任务完成后可生成 PR,人工 review 后合并。
示例二:让 OpenHands 生成一个 HTML 小游戏(贪吃蛇)。
-
打开 http://localhost:3000 工作台,在工作区目录选择或创建一个空文件夹。
-
输入任务描述:
用 HTML + CSS + JavaScript 写一个贪吃蛇小游戏,单文件,用方向键控制,得分显示在页面上,保存为 snake.html;然后在沙箱里起一个本地服务器验证页面能正常打开
-
OpenHands 在 Docker 沙箱中创建
snake.html(画布 + 游戏循环 + 键盘事件 + 计分逻辑),启动python -m http.server 8000验证,界面实时展示每一步操作。 -
任务完成后浏览器打开 http://localhost:8000/snake.html 即可试玩;想加功能(如"增加音效""加重新开始按钮")在会话中继续描述,OpenHands 会在沙箱内迭代修改并重新验证。
说明:本示例按第 9 章配置的模型计费;单文件小游戏消耗较少,DeepSeek / GLM 等低价模型即可完成;任务全程在 Docker 沙箱中执行,不影响宿主环境。