如何使用 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配置 LLM 与 GitHub第一个 Agent 任务

OpenHands 适合谁、要解决什么

OpenHands 是开源的 AI 软件工程 Agent:在沙箱里读仓库、改文件、跑终端命令、开浏览器,把自然语言任务拆成多步执行。适合已有 GitHub 仓库、想在本机或内网 Docker 里试 Agent 闭环的开发者。你需要自备受支持的 LLM 提供商 API 密钥(如 Anthropic、OpenAI 等,以官方当前列表为准),并遵守密钥与仓库访问策略。

Docker compose
常见本地路径
PAT scope
GitHub 仓库读写
LLM API
自备模型密钥

用 Docker 或本地安装并打开 Web UI

  1. 1

    准备 Docker 与 Git

    官方推荐在 Linux / macOS / WSL2 上使用 Docker Desktop 或兼容引擎。确认 docker 与 git 在终端可用。若走源码安装,需满足仓库 README 中的 Python / Node 版本要求。

  2. 2

    Clone 仓库并按 README 启动

    从 GitHub 克隆 All-Hands-AI/OpenHands,进入目录后按文档执行 Docker Compose(常见为 docker compose up 或文档给出的 make 目标)。首次拉镜像可能较久。启动后在浏览器打开文档标明的本地 URL(常见为 http://localhost:3000 或当前版本默认端口)。

  3. 3

    写入 LLM 与基础设置

    在 Web UI 的 Settings 或环境变量(如 .env / compose 中的 LLM_API_KEY、模型名)里配置至少一个受支持的 LLM。不要把密钥提交进 Git;企业环境用密钥管理器或本地 .env(已在 .gitignore)。

  4. 4

    确认沙箱与网络

    Agent 会在容器内执行命令。若公司代理或防火墙拦截出站,需按官方 troubleshooting 调整。第一小时建议只用测试仓库或 fork,避免直接动生产默认分支。

连接 GitHub 仓库

  1. 1

    创建最小权限 PAT

    在 GitHub → Settings → Developer settings → Personal access tokens 创建 token。对私有仓库通常需要 repo 范围;只读公开库可用更窄范围。令牌只粘贴进 OpenHands 设置或本地密钥文件,不要写进博客截图。

  2. 2

    在 OpenHands 里添加仓库

    在 UI 中选择连接 GitHub / 导入仓库,粘贴 PAT 或按文档完成 OAuth(若你的部署版本支持)。指定要工作的仓库 URL 或从列表挑选。等待工作区 clone 完成后再发任务。

  3. 3

    核对分支与权限

    确认当前分支(如 main 或功能分支)。若组织启用 SSO,PAT 可能需在 GitHub 上授权 SSO。无 push 权限时 Agent 只能本地改文件,你需要手动 push 或换有写权限的 fork。

第一个 Agent 任务:修一个小问题

  1. 1

    选可回滚的小 issue

    例如:README 错别字、未使用的 import、或 failing 的单测断言。在对话里写清文件路径与期望结果:「在 src/foo.ts 修复 lint 报错,不要改公共 API。」

  2. 2

    逐步批准终端与 diff

    观察 Agent 列出的计划、文件 diff 与终端输出。默认应人工确认再运行安装依赖或 git push 类命令。第一小时不要开「全自动 push 到 main」。

  3. 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
01

UI 打不开

查 compose 日志、端口占用与防火墙。确认 Docker 守护进程在运行。

02

Clone 失败

PAT 是否过期、scope 是否含 repo、组织 SSO 是否已授权。

03

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。

免费开始开会