Cua
一句话定义
Cua 是面向 Computer-Use Agent 的开源基础设施套件,把桌面驱动、跨系统沙箱、评测基准和 macOS/Linux 虚拟化工具组合成一套可给 Claude Code、Cursor、Codex、OpenClaw 等 Agent 使用的“电脑使用层”。
摘要
Cua 的核心价值不是再造一个聊天式 Agent,而是把“让 Agent 真正操作电脑”这件事拆成可复用的基础设施:后台桌面驱动负责在不抢鼠标焦点的情况下点击、输入、截图和验证;Sandbox SDK 提供 Linux、macOS、Windows、Android 等环境的一致 API;Cua-Bench 面向 OSWorld、ScreenSpot、Windows Arena 等任务做评测与轨迹导出;Lume 则把 Apple Silicon 上的 macOS/Linux VM 管理纳入同一工程体系。对 AI 工程来说,它补的是传统编码 Agent 很缺的一层:可隔离、可复现、可评测的完整桌面环境。
详情
起源与背景
Computer-use Agent 的难点在于模型并不只需要“会写命令”,还需要看屏幕、定位窗口、点击控件、确认结果,并且最好不要打断用户当前桌面。浏览器自动化可以覆盖网页,但无法覆盖原生应用、Office、终端、多窗口和跨操作系统任务。Cua 的 README 把项目分成四条路径:构建自己的电脑使用 Agent 用 Cua,给编码 Agent 一台电脑用 Cua Drivers,训练或评测模型用 Cua Bench,需要 macOS VM 则用 Lume。这种分层说明它更像 Agent OS 基础设施,而不是单一工具。
核心机制 / 工作原理
Cua Drivers 是后台 computer-use 驱动,支持 macOS 和 Windows,Linux 处于预发布后端;它通过 CLI 和 MCP server 接入 Claude Code、Cursor、Codex、OpenClaw 或自定义客户端。Cua Sandbox 则提供异步 API:创建临时沙箱、运行 shell、截图、鼠标点击、键盘输入和移动端手势。Cua Bench 把环境、任务和 Agent 跑分放在同一套 CLI 里,支持并行执行和轨迹导出。Lume 专注 Apple Silicon 上的 macOS/Linux VM,解决本地近原生性能和镜像管理问题。
from cua import Sandbox, Image
async with Sandbox.ephemeral(Image.linux()) as sb:
result = await sb.shell.run("echo hello")
screenshot = await sb.screenshot()
await sb.mouse.click(100, 200)
await sb.keyboard.type("Hello from Cua!")应用 / 使用场景
- 给 Claude Code、Codex、OpenClaw 这类编码 Agent 接一层后台桌面,不抢用户焦点也能操作原生应用。
- 在云端或本地启动 Linux/macOS/Windows/Android 环境,让 Agent 任务跑在隔离环境中。
- 对 computer-use 模型做 OSWorld、ScreenSpot、Windows Arena 或自定义任务评测。
- 用 Lume 管理 macOS VM,给需要真实 macOS 应用、Xcode、Safari 或桌面状态的任务提供运行基座。
局限与争议
Cua 仍然依赖底层虚拟化、操作系统权限和平台适配质量。对团队而言,真正难点不只是安装驱动,而是把截图、点击、验证和失败恢复做进 Harness;否则 Agent 只是多了一只能点屏幕的手。另一个边界是安全:一旦 Agent 可以操作完整桌面,凭证、文件、剪贴板和系统权限都需要更严格的隔离与审计。
与其他实体的关系
- MCP —— Cua Drivers 通过 MCP server 给 Agent 暴露桌面操作能力。
- OpenClaw —— README 明确把 OpenClaw 列为可接入 Cua Drivers 的客户端之一。
- RMUX —— 两者都在补 Agent 运行环境层:Cua 偏 GUI/桌面,RMUX 偏终端/TUI 会话。
- OfficeCLI —— OfficeCLI 解决 Office 文档的结构化编辑,Cua 解决更广的桌面控制,两者都让 Agent 从纯文本生成走向可观察可修复的工作循环。