OpenHands 和 Crewly 都是开源的,都能运行 Claude Code 和 Codex,也都有浏览器界面让你看 agent 在做什么。如果你印象里的 OpenHands 还是“沙箱里的一个自主 agent”,那已经过时了:这个项目现在把自己定位成管理多个 agent 的控制台。本文按 2026 年 10 月 9 日 OpenHands 自己的页面,讲它现在做什么,以及什么时候 Crewly 这样的常驻团队更合适。
先看结论
| OpenHands | Crewly | |
|---|---|---|
| 它是什么 | 自托管的编码 agent 与自动化控制台 | 开源的常驻 agent 团队编排工具 |
| 核心思路 | 一个界面管理 agent 对话、后端和自动化 | 角色定义一次,每个 agent 有自己的记忆 |
| 支持的 agent | OpenHands 自己的 agent、Claude Code、Codex、Gemini CLI 或其他 ACP agent | Claude Code、Codex、Gemini CLI、OpenCode 和 Antigravity,按 agent 混用 |
| 谁来推动 | 你来开对话、设自动化 | lead agent 分派,你在仪表盘或 Slack 里看 |
| 怎么运行 | npm install -g @openhands/agent-canvas,或 Docker 镜像,或源码 | 一行安装脚本,然后 crewly start |
| 隔离 | 可选:每个对话一个 Docker 容器 | 每个 agent 一个终端会话;按任务的 worktree 需在项目里开启 |
| 定时任务 | 按计划或按事件触发的自动化 | Schedules 页面管理周期任务 |
| 跨天记忆 | 我们读到的页面没有描述 | 每个 agent 的角色和记忆存在 ~/.crewly/ |
| 许可证 | MIT | MIT |
| 擅长 | 观察和调度单个 agent 对话,以及事件触发的自动化 | 能持续工作、记得住事的团队,不限于写代码 |
示意图:谁来推动,工作如何隔开。OpenHands:一个界面管理 agent 对话、后端和自动化,由你来开对话、设自动化,每个对话可选一个 Docker 容器。Crewly:角色定义一次,每个 agent 有自己的记忆,lead agent 分派、你在仪表盘或 Slack 里看,每个 agent 一个终端会话,按任务的 worktree 需在项目里开启。
OpenHands 是什么?
OpenHands 仓库把它现在的产品 Agent Canvas 描述为“the self-hosted developer control center for coding agents and automations”,README 还写道:“Run OpenHands, Claude Code, Codex, Gemini, or any ACP-compatible agent across local, remote, and cloud backends.”文档称它是“an open-source control surface for agentic work”:在一个界面里可以“manage conversations, files, terminals, model configuration, backends, and automations”。
按 README 和文档,它是这样工作的:
- 多种运行方式。 README 给出本地界面(
npm install -g @openhands/agent-canvas,再运行agent-canvas)、Docker 镜像和源码三种。文档还列了 CLI、Python SDK、托管的 OpenHands Cloud 和 Enterprise 版本,并把旧的基于 Docker 的本地 GUI 标为已弃用,推荐 Agent Canvas。 - 后端。 一个对话属于一个当前后端,后端可以是 Docker 容器、虚拟机、你自己的基础设施或 OpenHands Cloud。可以连接多个后端并切换。
- 通过 ACP 接入其他 agent。 文档列出 Claude Code、Codex、Gemini CLI 或其他 ACP agent。运行中的对话一直用启动时的 agent,新的选择只对之后开始的对话生效。
- 隔离是个设置。 在每个对话一个容器的 Docker 模式下,README 说这隔离了对话的执行,但没有把整个 Canvas 或自动化服务放进沙箱。用 npm 或源码安装时,agent server 直接跑在你的机器上,README 提醒此时 agent 有完整的文件系统访问权限。
- 自动化。 可以按计划或在事件发生时运行任务,README 点名了 Slack、GitHub、Linear 和 Notion。
OpenHands 做得好的地方
- 一个窗口管多个 agent。 对话、文件、终端和设置都在一个浏览器客户端里,本地和远程后端都能接。
- 自由选 agent。 每个对话可以用它自己的 agent,或你已经在用的 CLI agent。
- 可以打开的隔离。 每个对话一个容器。
- 事件触发的自动化。 任务可以由计划或事件启动,不只靠你手动开始。
OpenHands 没打算做的事
我们读到的页面讲的是你来设置、你来观察的对话和自动化。没有描述由 lead agent 拆解请求再分派下去、agent 在会话之间保留自己的记忆,或者 agent 承担写代码以外的角色。这不是缺点,是做的事不一样。
Crewly 适合的地方
Crewly 是为这种情况做的:你不想自己一个个打开对话去指挥。
- 常驻团队。 角色定义一次(orchestrator、team lead、开发、QA,或内容、销售等角色),团队和每个 agent 的记忆保存在
~/.crewly/,重启后还在。 - 会分派的 lead。 lead agent 把请求拆成任务、分给各个 agent,并在任务关闭前检查结果。
- agent 自己积累记忆。 它们用
remember技能记下学到的东西,用recall读回来,都是你机器上的普通文件。 - 仪表盘和 Slack。 浏览器里有实时终端流和任务看板,还有可选的 Slack 桥接,每个 agent 可以有自己的 bot,你可以
@或私信它。见 Claude Code Slack bot for every agent。 - 混用运行时。 每个 agent 可以用不同的 CLI。
两个老实的限制。Crewly 比单个浏览器客户端重:它要跑一个本地服务和仪表盘。另外默认情况下它的 agent 共用项目目录,所以如果你想要每个任务一个容器或分支,要在项目里打开 worktree 设置,或者自己把 Crewly 放进容器里跑。
Crewly 仪表盘里 agent 设置的截图(演示数据),并排显示三个 agent:一个用 Claude CLI 运行时,一个用 Codex CLI 运行时,一个用 Gemini CLI 运行时,各有自己的模型。
该选哪个?
- 想要一个管理单个 agent 对话的控制台,带容器隔离和事件触发的自动化: OpenHands。
- 想要一支有明确角色、能跨天持续工作、记得住事的团队: Crewly。
- 两个都用: 没问题。隔离的单次运行和自动化交给 OpenHands,要持续推进的工作交给 Crewly。
示意图:该选哪个。想要管理单个 agent 对话的控制台,带容器隔离和事件触发的自动化:OpenHands。想要一支有明确角色、能跨天持续工作、记得住事的团队:Crewly。两个都用也可以:隔离的单次运行和自动化交给 OpenHands,要持续推进的工作交给 Crewly。
想试 Crewly,请先装 Node.js 22 或更新版本(用 nodejs.org 的安装包,或 Homebrew / 你的包管理器),然后运行:
curl -fsSL https://crewlyai.com/install.sh | bash
打开一个新终端,运行:
crewly start
想用 npm?如果你的 Node 来自 Homebrew 或 nodejs.org 的安装包,npm install -g crewly 也可以。
crewly start 会在 http://localhost:8787 打开仪表盘。入门指南带你建第一支团队;How to run multiple agents in Claude Code 比较了 worktree、subagent、agent teams 和编排器。想看在并行 worktree 里跑 agent 的 Mac 应用,见 Conductor vs Crewly。
常见问题
OpenHands 是什么?
OpenHands 是一个开源(MIT)项目。它的仓库把产品称为 Agent Canvas,“the self-hosted developer control center for coding agents and automations”(自托管的编码 agent 与自动化控制台),可以运行 OpenHands、Claude Code、Codex、Gemini 或其他兼容 ACP 的 agent。
OpenHands 和 Crewly 有什么不同?
OpenHands 围绕一个控制界面:你在同一个浏览器客户端里管理对话、后端、文件、终端和自动化。Crewly 围绕一支常驻团队:角色定义好,由一个 lead agent 分派任务,每个 agent 有自己的记忆,你可以在仪表盘或 Slack 里跟进。
OpenHands 能运行 Claude Code 和 Codex 吗?
能。它的文档列出 Claude Code、Codex、Gemini CLI 或其他 ACP agent,一个对话会一直用启动时选的 agent。Crewly 同样能运行 Claude Code 和 Codex,另外还有 Gemini CLI、OpenCode 和 Antigravity,可以按 agent 混用。
OpenHands 的 agent 在沙箱里运行吗?
可以选。它的 README 描述了一种 Docker 模式:每个对话一个容器;同时说明用 npm 或源码安装时,agent server 直接跑在你的机器上,拥有完整的文件系统访问权限。Crewly 的 agent 跑在你的机器上,各有自己的终端会话。
两个可以一起用吗?
可以。它们解决的是不同的问题。用 OpenHands 运行和观察单个 agent 对话、做事件触发的自动化;用 Crewly 管一支要跨天持续干活的团队。
来源
OpenHands 的所有事实都来自它自己的页面,2026 年 10 月 9 日查阅:OpenHands 仓库 README、文档概览、Agent Canvas 概览和 ACP Agents。我们不转述基准测试数据和价格,请到原页面查看。Crewly:代码仓库、crewlyai.com。