一句话定位:自托管的编码 Agent 控制中心,多种 Agent 后端随时切。

认 OpenHands 这个名字的人,很多还停在“开源版 Devin”的印象里。仓库现在的王炸是 Agent Canvas:官方定位是“自托管的编码 Agent 与自动化控制中心”,把不同 Agent 后端(本地、Docker、虚拟机、云)统到一个界面里,随时切换且不丢上下文。它自带 OpenHands 开源 Agent,同时能接 Claude Code、Codex、Gemini CLI、Pi、OpenCode,以及任何遵循 ACP 协议的 Agent。MIT 许可,TypeScript 前端 + Python Agent 服务。

核心能力

一、多后端随时切,不丢上下文
可以在本地进程、Docker 沙箱、VM、云上跑 Agent,在界面上直接切。实际场景很具体:白天用本地后端快速度调,跑长任务时切到服务器上的 Docker 后端,对话历史和上下文都保留,不用重新描述需求。

二、不限自家 Agent,Claude Code 与 Codex 也能纳管
开箱带 OpenHands Agent,但也能把 Claude Code、Codex、Gemini CLI、Pi、OpenCode 接进来,还支持任何 ACP 兼容 Agent。对团队来说这意味着不押注单一厂商:同一个界面里管理不同人的工具链,谁想用哪个都行。

三、自动化与集成:定时跑,或 Webhook 触发
可以建自动化工作流,集成 Slack、GitHub、Linear、Notion,支持定时调度与 Webhook 事件触发。典型用法:每天早上把一个仓库的 issue 列表拆成任务并分派,或者 PR 开了自动跑一轮检查并回帖。这类“重复但需要判断”的活正好是 Agent 该干的。

四、自带模型配置,BYO-LLM
通过 LLM Profiles 配任意模型。这一点在自托管场景里很重要:你可以接云端 API,也可以指向本地 Ollama / vLLM,不用改代码、也不用等官方支持某种模型。

五、部署形态齐:本地、单容器、多容器、源码
官方给了四条路:直接 npm install -g @openhands/agent-canvas 后跑 agent-canvas(无沙箱,Agent 有完整文件系统权限);单 Docker 沙箱(推荐);多 Docker 沙箱(每个对话一个容器);或从源码 npm ci && npm run dev。从试用到正式部署不用换项目。

使用上手

  1. 装 Docker:macOS / Windows 用 Docker Desktop,Linux 用 Docker Engine;同时准备 Node.js 24+ 与 uv(源码或多沙箱模式需要)。
  2. 拉单容器镜像:docker run -it --rm -p 127.0.0.1:8000:8000 -e AGENT_CANVAS_ALLOW_LAN_SESSION_KEY=true -v openhands-state:/home/openhands/.openhands -v "$PROJECTS_PATH:/projects" ghcr.io/openhands/agent-canvas:1.37.0。
  3. 访问并建首个对话:开 http://localhost:8000/canvas,选一个后端(先选本地)、配一个 LLM Profile,再开一个对话。
  4. 挂上你的项目:把代码目录挂到容器内 /projects;Linux 下注意容器内 uid 10001 需要有读写权限,否则 Agent 改不了文件。
  5. 再加自动化:跑通单个对话后,再接 Slack / GitHub,把重复任务做成定时或 Webhook 触发。

优点与不足

优点:

  • 多种 Agent 后端纳管,不押注单一厂商。
  • 自带 OpenHands Agent,开箱可用。
  • 自动化 + Slack/GitHub/Linear/Notion 集成,能真的接进工作流。
  • MIT 许可,可商用可改。

不足:

  • 无沙箱模式(直接 agent-canvas)会开完整文件系统权限,不能随便在生产机器上跑。
  • 容器内 Agent Server 约 30 秒无 /alive 响应会自动退出(exit code 1),不配 --restart 策略会以为“服务莫名其妙挂了”。
  • 前后端分仓(前端在 OpenHands/OpenHands,Agent 运行时在 software-agent-sdk),排查问题时要先分清哪一层。
  • 星标与版本迭代较快,具体数字以 GitHub 实时页为准。

适合谁

  • 团队里同时用 Claude Code、Codex、Gemini CLI,想统一管理的人。
  • 想把“重复的仓库任务”做成定时或事件触发的工程团队。
  • 不适合:只想在终端里用一个 Agent 的个人开发者(直接用 CLI 更轻)。

下载与访问

许可证与部署

方案方式说明
单 Docker 沙箱ghcr.io/openhands/agent-canvas 镜像推荐路径,容器隔离
多 Docker 沙箱OH_CONVERSATION_RUNTIME=docker每个对话一个容器,适合并发
无沙箱本地npm i -g @openhands/agent-canvas最快,但 Agent 有完整文件权限
源码构建npm ci && npm run dev需 Node 24+、uv
许可证MIT可商用可修改

本文属于「项目」分类的 AI 资源专栏,更多评测见分类页。