让 AI 替你值班:OpenHands Agent Canvas 完整部署与自动化配置全解
【免费下载链接】OpenHands🙌 OpenHands: AI-Driven Development项目地址: https://gitcode.com/GitHub_Trending/ope/OpenHands
OpenHands 是一个可以自部署的 AI 编程代理控制台,正式名称叫 Agent Canvas。它装在你自己的电脑或服务器里,把 OpenHands、Claude Code、Codex、Gemini 这些编码代理统一管理起来:聊天式改代码、按定时任务跑依赖升级、在新 PR 提交时自动做代码评审。和云端 SaaS 不同的是,它跑在你掌控的硬件上,代理有权限访问哪些目录、连哪个模型,全部由你说了算。
这篇分享来自我在一台 Mac 上实际部署的体验,目标是让你从零到"第一个自动化任务跑起来",全程不超过 10 分钟。
先搞清楚它能干什么
OpenHands 的定位不是"又一个聊天框",而是一个代理调度中枢。它的价值主要体现在三块:
- 多代理统一管理:开源的 OpenHands 代理开箱即用,同时支持任何符合 ACP(Agent-Client Protocol,代理客户端协议)的第三方代理,比如 Claude Code 和 Codex,可以在同一个界面里来回切换。
- 多后端灵活部署:代理可以跑在你笔记本上、Docker 容器里、一台云服务器(比如 Mac Mini 或 VM)上,甚至 OpenHands 官方云。同一个前端可以同时接多个后端——公司共享一台服务器做代码评审,自己笔记本上跑个人代理,互不干扰。
- 自动化工作流:这是它最"值钱"的部分。定时任务、Webhook 事件触发、对接 Slack / GitHub / Linear 都是原生能力,比如每晚扫描安全漏洞、每次 push 自动生成 changelog。
上面这张就是自动化仪表盘:每个自动化任务的健康状态、运行次数、成功率、平均耗时一目了然,还能手动点"Run now"触发一次。
三种启动方式,选最适合你的
部署前只需要确认一件事:你想让代理接触你机器的哪些文件。这决定了走哪条路。
方式一:npm 全局安装(最快,但无沙箱)
前提是需要 Node.js 22.12+ 和 uv。两条命令:
npm install -g @openhands/agent-canvas # 全局安装 agent-canvas # 启动完整本地栈注意:这种方式代理服务器直接跑在你本机上,代理对你的文件系统有完全访问权限。只在信任环境使用。也可以拆开启动:agent-canvas --frontend-only或--backend-only。
方式二:Docker 沙箱(推荐,隔离最省心)
代理被关进容器,只能通过挂载的目录访问你指定的项目文件夹,是日常使用最稳妥的选择:
export PROJECTS_PATH="$HOME/projects" # 指定代理可访问的项目目录 mkdir -p "$PROJECTS_PATH" "$HOME/.openhands" docker run -it --rm -p 8000:8000 \ -v "$HOME/.openhands:/home/openhands/.openhands" \ -v "${PROJECTS_PATH}:/projects" \ ghcr.io/openhands/agent-canvas:1.15.0PROJECTS_PATH目录必须在容器启动前创建好,否则挂载会失效——这是新手最常踩的第一个坑。
方式三:从源码跑(适合想改前端或跟进开发)
git clone https://gitcode.com/GitHub_Trending/ope/OpenHands cd OpenHands && npm install && npm run dev启动后浏览器访问 http://localhost:8000 即可(Docker 方式的路径是 http://localhost:8000/canvas),后端也可以在界面里随时追加。
打开界面后,先做这三件事
左下角有个 Getting started 清单,按顺序走完就能开始干活:
- 添加 LLM 配置:OpenHands 支持自带任何模型(BYOK 思路),在 Customize 区域填好 API key 并选择模型。没有 key 之前代理无法对话,这一步卡住的人最多。
- 确认后端连接:左下角显示当前后端(如 Local backend, localhost:5199),状态点是绿色的就是通了。
- 挑一个会话开始聊天:直接输入自然语言指令即可,代理会生成代码、跑命令、把结果贴回对话里。
把重复劳动交给自动化模板
聊天解决一次性任务,真正拉开效率差距的是 Automate 模块。点进 Templates 页面,OpenHands 提供了一批现成配方:GitHub 代码评审代理、GitHub 仓库监控(盯着 issue 和 PR 里的 @OpenHands 提及)、Slack 频道监听,还有一批 Beta 模板如 Slack 每日摘要、Linear 工单分诊。
点开任意模板(比如"GitHub Code Review Agent")就是预填好的配置,确认细节后启动即可。以"新 PR 自动评审"这个自动化为例,详情页里能看到完整链路:
- Prompt:评审聚焦正确性、安全性和性能,结果以行内评论形式发回 PR;
- Trigger:GitHub 的
pull_request_opened事件触发,并用 Filter 表达式限定只处理指定仓库; - LLM profile:指定用哪个模型跑(示例里用的是 review-fast,说明评审类任务可以挂一个更快更便宜的模型);
- Notification:结果通过 GitHub 评论回传。
也就是说,"谁在什么时候、用什么模型、处理什么事件"全部显式可配,出问题时看 Activity 里的 Last run 就能定位。
给代理装"技能":Skills 市场
Customize → Skills 页面内置了 59 个可安装的技能(skill),每个技能本质上是给代理注入的一段结构化提示词和工作流,例如add-javadoc(给 Java 类补文档)、agent-memory(把代码库的关键信息持久化到 AGENTS.md 文件里)、code-review(严格模式代码审查)。
左侧筛选器支持按状态(Enabled/Disabled)、推荐度和分类(自动化配方、环境工具、CI、写作文档等)过滤。技能变更后对新会话生效,已开启的旧会话不受影响——调完技能想立刻验证,记得开个新聊天。
容易踩的坑与排障建议
- 无沙箱模式的权限边界:npm/源码方式下代理能碰你整台机器的文件。如果这台机器上有敏感数据,强烈建议走 Docker 方式,或者干脆把后端放到一台独立服务器上。
- 端口冲突:本地栈默认占用 8000 端口,Docker 沙箱内部代理服务器在 5199 端口,起多个实例时留意区分。
- Windows 用户:PowerShell 下的挂载和路径写法有差异,直接看仓库里的 README.windows.md。
- 想长期跑在云服务器上:官方有一份面向自托管的安全加固指南,覆盖了反向代理、认证和持久化等细节,见 docs/SELF_HOSTING.md。
- 想接入第三方代理:Claude Code、Codex、Gemini CLI 的接入步骤写在 docs/ACP_AGENTS.md,系统各模块的边界划分可参考 docs/architecture.md。
写在最后
部署只是起点,真正值得花时间的,是想清楚你手头哪些事是"规则明确、重复发生"的——依赖升级、issue 分诊、每周安全扫描,这些都是自动化模板最对口的场景。建议先从一个模板开始跑起来,把触发条件、模型、通知渠道调顺了,再逐步加自己的定制自动化。
【免费下载链接】OpenHands🙌 OpenHands: AI-Driven Development项目地址: https://gitcode.com/GitHub_Trending/ope/OpenHands
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考