如何使用 OpenHands 本地或 Docker 安装:连接 GitHub 仓库与第一个 Agent 修复任务
安装 OpenHands、连接 GitHub 与 LLM,再让 Agent 修一个小问题并审查 diff。
第一次在本地跑 OpenHands(原 OpenDevin),卡住的多半不是提示词,而是 Docker 或 Python 环境没就绪、LLM API 密钥没写进配置,或 GitHub 个人访问令牌(PAT)权限不够。按官方文档用 Docker Compose 或源码启动 Web UI,把仓库 clone 进工作区,再让 Agent 完成一项可审查的小修复。
检索词是 如何使用 OpenHands 安装并连接 GitHub。下文对照 All-Hands-AI 官方文档 docs.all-hands.dev 与 GitHub 仓库 All-Hands-AI/OpenHands 的安装、配置与 Git 集成说明。这是开源 AI 编程 Agent 平台,不是本站会议产品。要约短会对齐 diff,用 wbmeet 建房即可,步骤见 如何创建与加入房间。
OpenHands 适合谁、要解决什么
OpenHands 是开源的 AI 软件工程 Agent:在沙箱里读仓库、改文件、跑终端命令、开浏览器,把自然语言任务拆成多步执行。适合已有 GitHub 仓库、想在本机或内网 Docker 里试 Agent 闭环的开发者。你需要自备受支持的 LLM 提供商 API 密钥(如 Anthropic、OpenAI 等,以官方当前列表为准),并遵守密钥与仓库访问策略。
用 Docker 或本地安装并打开 Web UI
- 1
准备 Docker 与 Git
官方推荐在 Linux / macOS / WSL2 上使用 Docker Desktop 或兼容引擎。确认
docker与git在终端可用。若走源码安装,需满足仓库 README 中的 Python / Node 版本要求。 - 2
Clone 仓库并按 README 启动
从 GitHub 克隆
All-Hands-AI/OpenHands,进入目录后按文档执行 Docker Compose(常见为docker compose up或文档给出的 make 目标)。首次拉镜像可能较久。启动后在浏览器打开文档标明的本地 URL(常见为http://localhost:3000或当前版本默认端口)。 - 3
写入 LLM 与基础设置
在 Web UI 的 Settings 或环境变量(如
.env/ compose 中的LLM_API_KEY、模型名)里配置至少一个受支持的 LLM。不要把密钥提交进 Git;企业环境用密钥管理器或本地.env(已在.gitignore)。 - 4
确认沙箱与网络
Agent 会在容器内执行命令。若公司代理或防火墙拦截出站,需按官方 troubleshooting 调整。第一小时建议只用测试仓库或 fork,避免直接动生产默认分支。
连接 GitHub 仓库
- 1
创建最小权限 PAT
在 GitHub → Settings → Developer settings → Personal access tokens 创建 token。对私有仓库通常需要
repo范围;只读公开库可用更窄范围。令牌只粘贴进 OpenHands 设置或本地密钥文件,不要写进博客截图。 - 2
在 OpenHands 里添加仓库
在 UI 中选择连接 GitHub / 导入仓库,粘贴 PAT 或按文档完成 OAuth(若你的部署版本支持)。指定要工作的仓库 URL 或从列表挑选。等待工作区 clone 完成后再发任务。
- 3
核对分支与权限
确认当前分支(如
main或功能分支)。若组织启用 SSO,PAT 可能需在 GitHub 上授权 SSO。无 push 权限时 Agent 只能本地改文件,你需要手动 push 或换有写权限的 fork。
第一个 Agent 任务:修一个小问题
- 1
选可回滚的小 issue
例如:README 错别字、未使用的 import、或 failing 的单测断言。在对话里写清文件路径与期望结果:「在
src/foo.ts修复 lint 报错,不要改公共 API。」 - 2
逐步批准终端与 diff
观察 Agent 列出的计划、文件 diff 与终端输出。默认应人工确认再运行安装依赖或 git push 类命令。第一小时不要开「全自动 push 到 main」。
- 3
本地验证后提交
在宿主机或 CI 跑
npm test/pytest等。满意后在 GitHub 开 PR 或本地 commit。若 Agent 改偏,用 Git 回滚工作区再缩小任务描述重试。
# First hour · OpenHands · 2026-09
# git clone https://github.com/All-Hands-AI/OpenHands
# docker compose up → Web UI (see docs for port)
# Settings: LLM_API_KEY + model id
# GitHub PAT (repo scope) → clone your fork
# Task: fix one lint/test issue → review diff → run tests本地 Docker 与源码对照
| 方式 | 适合 | 第一次注意 |
|---|---|---|
| Docker Compose | 快速试 UI + 沙箱 | 镜像体积与端口冲突 |
| 源码 dev | 改 OpenHands 本身 | 依赖版本以 README 为准 |
| 仅 API 密钥 | 任何方式 | 密钥勿进 Git |
| GitHub PAT | 私有仓库 | 最小 scope + SSO 授权 |
| 首任务 | 学习审查流 | 测试 fork,别直推 main |
UI 打不开
查 compose 日志、端口占用与防火墙。确认 Docker 守护进程在运行。
Clone 失败
PAT 是否过期、scope 是否含 repo、组织 SSO 是否已授权。
Agent 乱改文件
缩小任务;要求只改列出的路径;用 git checkout 恢复后再试。
官方路径:安装 OpenHands → 配置 LLM → GitHub PAT 连接仓库 → 小任务 + 审查 diff + 本地测试。以 docs.all-hands.dev 与你部署的版本为准。
- OpenHands 会上传代码吗
- LLM 请求会把上下文发给你所选的模型提供商;本地 Docker 仍可能在容器内持有 clone。敏感仓库请用内网部署、私有模型或组织批准的配置。
- 和 IDE 插件 Agent 的区别
- OpenHands 偏独立 Web/沙箱里的全仓库 Agent;VS Code 内 Copilot/Cursor 等更贴编辑器。可并存,职责不同。
- 教程页不是会议说明书
- 只讲 OpenHands 第一次。短会白板见 wbmeet 与 对照笔记。
还想核对的问题
必须用 Docker 吗?
不是。官方同时文档化 Docker 与从源码安装的开发路径。Docker 通常是验证 Agent 沙箱最快的方式。
没有 GitHub 私有库可以吗?
可以。用公开仓库或本地挂载的工作目录试跑;私有库才需要 PAT 或 OAuth。
第一个任务应该多复杂?
控制在单文件或单测级别,10–20 分钟内能人工 review 完。避免「重构整个模块」。
Agent 可以直接 push 吗?
取决于配置与权限。第一小时建议只本地改并自己 commit/PR,确认 diff 与测试通过后再考虑自动化 push。