https://jiajia.fun/qa/b522b156-vercel-%E6%96%B0%E5%8F%91%E5%B8%83%E7%9A%84-agent-desktop-%E5%92%8C-cua-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E4%BB%80%E4%B9%88

# vercel 新发布的 agent-desktop 和 cua 的区别是什么？

回复 群友 3892 这两个东西不在同一层。agent-desktop 是一个“操作桌面应用”的驱动，cua 是一整套 cu 基础设施（环境 + 驱动 + 评测 + 小模型）。我按四个层面拆开说。 一、agent-desktop 的定位和作用 它是 vercel-labs 出的 CLI 加 C 库（Rust 实现，Apache-2.0，2.4k 星，npm 安装 agent-desktop），覆盖 macOS、Windows、Linux。核心机制是不看像素，而是走操作系统无障碍树（macOS 的 Accessibility、Windows 的 UIA、Linux 的 AT-SPI），返回一棵带 ref 的元素树： agent-desktop snapshot --app Finder -i agent-desktop click @s8f3k2p9:e8 第二次 snapshot 验证 几个工程上的关键点值得注意： - ref 绑定快照。旧 ref 会返回 STALE\_REF 或 AMBIGUOUS\_TARGET，强制你重新观察。这是把“操作后必须验证”写进协议里，而不是靠 prompt 提醒模型。 - 默认 headless，通过无障碍 API 动作，不移动指针、不抢焦点，\`--headed\` 才做物理输入。 - macOS 上有个常驻 command host 保留原生无障碍对象，避免“被删掉的行”静默解析成同 id 的幸存行，空闲 15 分钟退出。 - 每个命令输出一个 JSON envelope（ok + data 或 error + code + disposition + suggestion），并明确告诉你哪些错误可以安全重试。 - 自带 skill 文本和 FFI 库，可以按版本内置文档给 agent 读（agent-desktop skills get desktop）。 所以它本质上是一个“视图 + 动作”的窄接口，agent 的循环留在你自己的 harness 里。它也明确不做前台激活、不替你规划。 二、cua 的定位和作用 cua（Cua AI Inc.，trycua/cua，MIT 为主，31k 星）是完整栈，可以分成五块： - Cua Spaces：给 agent 的完整桌面，每个 Space 是本机的 macOS VM（Lume）或 Linux/Omarchy 镜像，跑在你自己的 Mac、你拥有的机器或你自己的云账号（AWS/GCP/Modal）。带 Teleport（把已登录的 Chrome、Slack 带着会话搬进 Space，凭证存在本机加密 Keyvault 里）、Multiplayer（人和 agent 同屏各自光标，你随时接手再交还）。 - Cua Driver：桌面与浏览器自动化的驱动，CLI、MCP、typed SDK 三种接入，支持后台投递。 - cua SDK / CLI：统一管理沙箱、镜像、本地运行时，Python/TS/Rust，进程内或走 cua daemon。 - Lume：Apple Silicon 上的 VM 管理，Docker 兼容层 lumier。 - CUA-S1：小的专精子模型（System 1 类比，做“这个字段该填哪个值”这类有界决策）。 - Cua Bench：造任务、评 agent、导出轨迹做训练。 定位是 cu 2.0：同一个任务里在代码、API、图形界面之间来回切。 三、真正的区别 1. 层次不同。agent-desktop 只解决“我怎么看见并操作这个 app”，cua 还在解决“agent 在哪台机器上跑、这个环境怎么创建和回收、跑得好不好怎么测、训练数据从哪来、真人怎么介入”。用 agent-desktop 你仍然要自己搞定沙箱、镜像、多机、评测。 2. 执行面不同。agent-desktop 主打在你自己的桌面上 headless 地做事，不抢焦点，人和 agent 共存于同一个会话。cua 的默认执行面是一个独立的 Space（一台 VM），agent 在里面是“整台电脑的主人”，人和它在同一个桌面多光标协作，或者干脆不开人。前者是“辅助你”，后者是“给它一台电脑”。 3. 感知路线。agent-desktop 是纯无障碍树，路线更单一；cua 是分层——无障碍树优先，同时保留截图、cua-perception（OmniParser + OCR，AGPL，单独装）作为视觉回落，因为浏览器 canvas、游戏、远程桌面这类无障碍树残废的场景只能靠看。 4. 生态和许可。agent-desktop 极简、Apache-2.0、整包都能随便用；cua 主体 MIT 但 Spaces 和 Driver Bench 是 FSL-1.1-MIT（不能拿去做竞品托管服务，两年后转 MIT），perception 拓展可能触发 AGPL。要商用得看清目录。 5. 商业形态。agent-desktop 是 vercel-labs 的实验室项目，配套 agent-browser，走的是“给 agent 生态提供标准工具 + 引流到 Vercel 的 Sandbox/agent stack”；cua Spaces 是个已收费产品（个人免费、Pro 18 刀/月、Teams 30 刀/席位/月），卖的是“给团队和 agent 共享的电脑”。 四、选取建议 - 只想让自己的 ca 或 pa 能在本机跨 app 干活（填表、点 Slack、读日历），别自己造轮子：agent-desktop 一个 npm 包装上，接口干净，错误语义明确。 - 要跑无人值守、多 agent、要隔离、要能评测和出训练数据：用 cua，直接拿 Space 当执行面，再配 Cua Bench。 - 想混着来也行：Space 里装 agent-desktop 当驱动，一个管环境，一个管视图和动作，这俩不冲突——事实上 cua Driver 和 agent-desktop 的重叠部分主要就在“无障碍树 + ref 动作”这一层，选谁都行。 顺带提一句值得注意的设计差异：agent-desktop 把“ref 过期就报错、重试前先重新观察”当成硬契约，而 cua 更依赖应用层的动作边界。前者对模型偷懒更宽容，后者对复杂任务更宽容。
