返回博客
openhandscomparisonclaude-codemulti-agentopen-source

OpenHands vs Crewly:一个管理编码 agent 的控制台,还是一支常驻团队

OpenHands 现在把自己定位成自托管的控制台,可以运行 OpenHands、Claude Code、Codex 等 agent。Crewly 则是一支有角色、有记忆的 agent 团队。各自做什么、哪里重叠、什么时候选哪个。

C
Crewly Team
阅读约 7 分钟
分享

目录

OpenHands 和 Crewly 都是开源的,都能运行 Claude Code 和 Codex,也都有浏览器界面让你看 agent 在做什么。如果你印象里的 OpenHands 还是“沙箱里的一个自主 agent”,那已经过时了:这个项目现在把自己定位成管理多个 agent 的控制台。本文按 2026 年 10 月 9 日 OpenHands 自己的页面,讲它现在做什么,以及什么时候 Crewly 这样的常驻团队更合适。

先看结论

OpenHandsCrewly
它是什么自托管的编码 agent 与自动化控制台开源的常驻 agent 团队编排工具
核心思路一个界面管理 agent 对话、后端和自动化角色定义一次,每个 agent 有自己的记忆
支持的 agentOpenHands 自己的 agent、Claude Code、Codex、Gemini CLI 或其他 ACP agentClaude 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/
许可证MITMIT
擅长观察和调度单个 agent 对话,以及事件触发的自动化能持续工作、记得住事的团队,不限于写代码

示意图:谁来推动,工作如何隔开。OpenHands:一个界面管理 agent 对话、后端和自动化,由你来开对话、设自动化,每个对话可选一个 Docker 容器。Crewly:角色定义一次,每个 agent 有自己的记忆,lead agent 分派、你在仪表盘或 Slack 里看,每个 agent 一个终端会话,按任务的 worktree 需在项目里开启。示意图:谁来推动,工作如何隔开。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 运行时,各有自己的模型。Crewly 仪表盘里 agent 设置的截图(演示数据),并排显示三个 agent:一个用 Claude CLI 运行时,一个用 Codex CLI 运行时,一个用 Gemini CLI 运行时,各有自己的模型。

该选哪个?

  • 想要一个管理单个 agent 对话的控制台,带容器隔离和事件触发的自动化: OpenHands。
  • 想要一支有明确角色、能跨天持续工作、记得住事的团队: Crewly。
  • 两个都用: 没问题。隔离的单次运行和自动化交给 OpenHands,要持续推进的工作交给 Crewly。

示意图:该选哪个。想要管理单个 agent 对话的控制台,带容器隔离和事件触发的自动化:OpenHands。想要一支有明确角色、能跨天持续工作、记得住事的团队:Crewly。两个都用也可以:隔离的单次运行和自动化交给 OpenHands,要持续推进的工作交给 Crewly。示意图:该选哪个。想要管理单个 agent 对话的控制台,带容器隔离和事件触发的自动化:OpenHands。想要一支有明确角色、能跨天持续工作、记得住事的团队:Crewly。两个都用也可以:隔离的单次运行和自动化交给 OpenHands,要持续推进的工作交给 Crewly。

想试 Crewly,请先装 Node.js 22 或更新版本(用 nodejs.org 的安装包,或 Homebrew / 你的包管理器),然后运行:

bash
curl -fsSL https://crewlyai.com/install.sh | bash

打开一个新终端,运行:

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。

准备好编排你的 AI 团队了吗?

开始使用 Crewly,把多个 Claude Code、Codex 或 Antigravity agent 组成一支协同工作的团队来运行。

curl -fsSL https://crewlyai.com/install.sh | bash阅读文档 →

然后打开一个新的终端,运行:

crewly start

相关文章