CUA 要革 RPA 的命?开源智能体与 RPA 的正面横评:泛化、容错、落地成本三个维度
【免费下载链接】cuaScale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation.项目地址: https://gitcode.com/GitHub_Trending/cua/cua
从 2025 年初 OpenAI Operator 发布、Claude Computer Use 上线,到 2026 年港大 KiMi 开源 OpenCUA、字节开源 UI-TARS、微软与阿里相继推出各自的原生电脑操作智能体,"让 AI 直接看屏幕、动鼠标键盘"的 Computer-Using Agent(CUA)已经从一个研究概念演变成一场席卷自动化工具链的范式迁移。CSDN 上大量"手写最小 CUA"教程与"对比 RPA"的分析文章持续霸榜,社区讨论的核心问题高度一致:CUA 到底是不是来终结 RPA 的?
这个问题的答案,不能靠标题党,要靠工程事实。本文以开源项目 cua(GitHub 趋势榜上的 computer-use 2.0 全家桶:Cua Driver 桌面驱动、Cua Spaces 完整桌面、Lume 本地虚拟机、CUA-S1 决策模型与 Cua Bench 评测基准)为标本,结合其真实源码与社区情报中的技术细节,从泛化能力、容错机制、落地成本三个维度做一次正面横评。结论可能和多数营销文相反:CUA 短期革不掉 RPA 的命,但它的出现正在重新定义"自动化"这个市场的价值坐标系。
一、技术差异回顾:视觉感知 + 语义树,而不是固定选择器
所有社区教程在讲 CUA 时都会强调同一件事:传统 RPA 靠"固定选择器"锚定界面元素,CUA 靠"看屏—决策—执行"的闭环。但真正值得深挖的是——开源 CUA 并非像营销文说的那样"纯视觉",而是语义树与像素视觉的双通道混合。
在 cua 仓库的 Cua Driver 核心文档中,观察(Observe)环节被明确定义为"树与像素一起":
get_window_state(pid, window_id)returns the window's accessibility tree and a screenshot in one call. The tree says what is actionable (roles, labels, anelement_tokenper element); the screenshot says which one, and shows what the tree omits or gets wrong.
这段描述(见 docs/content/docs/cua-driver/concepts/how-cua-driver-works.mdx)非常精确地刻画了 CUA 与 RPA 的分野。RPA 的选择器是"写死的定位公式":一个 CSS 路径、一个 DOM id、一组 OCR 模板匹配坐标,界面一改版,选择器失效、脚本报错,需要人工维护脚本本身。而 Cua Driver 的观察把无障碍树(Windows 的 UIA、macOS 的 AX、Linux 的 AT-SPI)与截图像素同时交给模型:树提供结构化语义(这个元素是什么、能不能点),截图提供空间事实(它现在在哪、长得什么样),两者互相纠错。
当语义树缺失时,Cua 还有第三层兜底——可选的视觉感知扩展(perception extension)。仓库中 libs/cua-driver/docs/perception-extension.md 记录了它的设计:把一张截图解析成带标签的区域(文本、图标、控件),让智能体对 Canvas 自绘界面、游戏、远程桌面这类"无障碍树形同虚设"的表面也能操作。这正是社区文章反复提及的 Qwen-CUA、OpenCUA 所强调的"视觉理解驱动"的工程化版本。
关键在于,Cua Driver 为"从哪张截图选中的区域"建立了强绑定:一次parse_visual_regions产出的区域,只能配合生成它的那张截图的capture_id使用;复用旧截图会被拒绝(capture_not_found),截图超过 60 秒会被拒绝(capture_expired)。文档原话是:"A stale or reused screen is refused instead of guessed at."这种"拒绝猜测"的纪律,恰恰是大量个人开发者手搓 demo 里最容易缺失的一环。
配一张仓库自带的架构图可以直观理解 CUA 的完整栈:环境(Desktop Sandboxes)、执行(Computer Framework)、智能(Agent Framework)三层分离,模型、SDK、桌面基础设施各司其职。
对照结论:RPA 的泛化边界是"被脚本描述过的界面";CUA 的泛化边界是"模型能看懂、驱动能触达的界面"。前者是枚举式的、静态的;后者是理解式的、动态的。这是维度上而不是程度上的差别。
二、容错:四级动作阶梯与"精确拒绝"哲学
社区情报中反复出现的对 CUA 的质疑集中在三个词:长程任务漂移、坐标偏移、动态加载。CSDN 的实战文章普遍报告"多步操作后状态错乱""DPI 缩放导致点击错位"等问题。仓库源码对这些质疑给出了比营销话术诚实得多的工程回答。
Cua Driver 把一次输入动作设计成四级动作阶梯(action ladder),见 how-cua-driver-works.mdx:
- Element, background:按
element_token走语义通道(Windows UIA Invoke、macOS AXPerformAction、Linux AT-SPI actions)——这是驱动唯一能自行验证的层级; - Pixel, background:按截图读取的 x/y 坐标点击,键盘工具先点击再键入(解决 Chromium/Electron 输入框焦点问题);
- Page:浏览器标签页切换到 DOM 级操作(CDP),无需抢焦点;
- Foreground:仅当后台无法送达时,才把窗口置前、落点输入、恢复前一个应用。
每次动作的返回不再是一个简单的"成功/失败",而是一组结构化状态:effect取值confirmed(无障碍读回确认)/unverifiable/suspected_noop/partial/refused,并附上escalation(建议爬升到哪一级)。文档明确警告:"A delivered event is not an applied change"——事件被送达不等于变更已生效,Electron、Catalyst、Web 内容可能"回显了并未真正执行的写入"。所以驱动对这类情况报unverifiable并建议下一级,而不是假装成功。
真正的容错哲学体现在两个细节里:
其一,错误码即恢复指令。文档写明:stale_element_token的意思是"重新截图快照",而不是"元素路径坏了"。也就是说,界面变了被系统性地视为常态,重观察是协议的一部分,而非异常分支。
其二,不确定时不重放。仓库示例 libs/cua-driver/examples/agent-sdks/native_driver.py 演示了完整的"感知—行动—外部验证"闭环:行动前截屏,执行输入,超时或断连后不盲目重放变更操作,而是先查询独立的 fixture 服务确认状态是否已消费,再截屏验证,最后打印the driver response was uncertain; the external postcondition resolved it。这正是 RPA 脚本最脆弱的地方——RPA 的"容错"是预先为每一种异常写一个分支,而 CUA 的容错是"观察 → 行动 → 重观察 → 外部验证"的循环结构本身。
但横评必须公平。仓库自己的平台支持台账 libs/cua-driver/docs/action-support.md 毫不避讳地记录了边界:Wayland 下对后台窗口的原生输入被系统性地拒绝(background_unavailable,因为合成器不会把 seat 输入转给别的窗口);macOS 上离屏 SwiftUI 窗口会丢失无障碍树;Windows 上 daemon 必须运行在交互会话而非 Session 0。可见CUA 的容错是有边界的容错——在可达的语义/像素通道内自我纠错,在不可达的通道上精确拒绝,而不是瞎试。社区文章提到的"缩放适配、中文输入、动态加载"等坑,本质上都是对这套边界的工程确认。
对照结论:RPA 的容错是"脚本化的异常处理",CUA 的容错是"协议化的重观察循环"。前者适合高度稳定的环境,后者天生为不确定环境设计——代价是推理延迟和模型调用成本。
三、成本账:许可费、实施周期与维护成本
把三个维度落到钱上,社区的"成本论"主要流传两种说法:一是"CUA 省掉了 RPA 动辄数十万的企业许可与实施咨询费",二是"CUA 每次操作都要调模型,token 成本是 RPA 的百倍"。仓库的许可与定价结构给出了比这两种极端说法更细的事实。
许可侧:传统 RPA 按机器人(bot)席位、按年收取企业许可费,实施通常外包给咨询团队,维护依赖脚本工程师。而 cua 仓库的 README 明确:Cua Spaces 对个人免费,Pro/Teams 计划"coming soon";Cua Driver 核心为 MIT 许可,默认安装不需要任何模型工件("The default MIT-licensed Driver works without model artifacts"),可直接以 MCP/CLI/SDK 形式接入 Claude Code、Codex、Cursor 等已有 agent;CUA-S1 系列决策模型源码 MIT 许可、权重托管在 Hugging Face。这意味着对一个开发者团队而言,CUA 的进入成本几乎是零——不需要先付一年许可费才能证明价值。
实施侧:RPA 的实施周期以"梳理流程 → 录制/编写脚本 → 处理边界 → 联调上线"为单位,流程一变脚本就要返工。CUA 的实施是"把任务用自然语言描述给 agent",由模型拆解步骤;cua 的 SDK 提供 Python/TypeScript/Swift/Kotlin 同一套 API(见 libs/cua/README.md 与 README 的 SDK 章节),本地容器、本地虚拟机、云上 Fleet 一命令切换。Cua Bench 则提供了评估闭环:cb run <task>一键在本地 gVisor 容器或云上跑任务、出 pass@k、导出 ATIF 轨迹用于训练(见 libs/cua-bench/README.md)。社区文章里"30 分钟跑通表单填写 demo"的体验,与 RPA 厂商动辄一周的 POC 周期形成了鲜明对比。
维护侧:这是最容易误判的一项。RPA 的维护成本是"界面改版 → 脚本失效 → 人工修选择器",是确定性成本。CUA 的维护成本是"每次运行都消耗 token + 推理延迟 + 需要质量护栏",是概率性成本。仓库给出了几个量化锚点:感知扩展的本地 CPU 解析耗时约 macOS 2–2.5 秒、Linux 3.5–4 秒、Windows 8–9 秒/屏(见 perception-extension.mdx);长任务需要多轮"观察—行动"循环叠加推理费用。所以理性的工程决策不是"二选一",而是按任务确定性分层:高确定性、高频率、界面长期不变的流程(如银行核心系统对账),RPA 依然以更低的单次边际成本胜出;低确定性、长尾、界面常变的流程(如处理非标准化桌面软件、老旧系统数据搬运),CUA 的免维护优势开始碾压。
对照结论:RPA 是"重前期、轻单次"的固定成本模型,CUA 是"零进入、按次计费"的可变成本模型。当自动化场景足够稳定,RPA 的折旧摊薄更划算;当场景多而杂、变化快,CUA 的边际成本优势决定性地胜出。
四、结论:不是"替代",而是"重新分层"
横评做完,回到开头的那个问题。社区的讨论里,"CUA 革 RPA 的命"是情绪化的提问方式;仓库给出的答案是分层共存的工程现实。Cua 的产品矩阵本身就是这种分层的产物:Cua Driver 负责"驱动任何桌面应用",Lume 负责"给你可控的 macOS/Linux 虚拟机",CUA-S1 负责"表单这类高频决策用 855K 参数小模型快速打分",Cua Bench 负责"用 8 大基准(OSWorld、WebVoyager、Screenspot-Pro、Mind2Web 等任务集)持续度量泛化边界"——每一个组件都在回答"哪些环节该交给理解式自动化,哪些环节该保持确定性"。
RPA 不会消失,但它会被推回到它擅长的窄巷:极度稳定、极度高频、极度强调审计确定性的流程。而 CUA 正在接管自动化市场里更大的新地盘——那些 RPA 从来搞不定的、需要一点点"看懂"能力的场景。对技术决策者而言,真正的问题不是"选 RPA 还是选 CUA",而是"你的流程变更频率,决定了你的自动化应该长在脚本上,还是长在模型上"。
开源让这场横评第一次有了可验证的实体:你可以自己跑一遍 Cua Driver 的 Calculator 教程,看一眼action-support.md的边界台账,用cb run在自己的桌面上测量一次 pass@k,而不是听任何一方的发布会。
【免费下载链接】cuaScale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation.项目地址: https://gitcode.com/GitHub_Trending/cua/cua
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考