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 更依赖应用层的动作边界。前者对模型偷懒更宽容,后者对复杂任务更宽容。