trycua/cua:面向计算机使用代理的开源基础设施
原标题:trycua/cua
HTML★ 17,996 stars+57 今日
速览
该项目致力于构建计算机使用代理(Computer-Use Agents)的开源基础设施,提供完整的开发环境以训练和评估能够操作全桌面的AI智能体。它涵盖了沙箱隔离、软件开发工具包(SDK)以及标准化的基准测试,旨在解决AI代理在复杂桌面环境中执行任务的训练与评测难题。
AI 深度解读
这是什么
Cua 是一个由 GitHub 热门开源项目 trycua/cua 提供的综合性 AI Agent 基础设施平台。它不仅仅是一个单一的工具,而是一套完整的生态系统,旨在为构建、评估和运行计算机使用(Computer-Use)Agent 提供底层支持。
该项目主要包含四个核心组件:
- Cua Drivers:允许 Agent 在后台驱动原生桌面应用,无需抢占鼠标焦点或输入焦点。
- Cua Bench:用于评估或训练 AI 模型的基准测试工具,支持 OSWorld、ScreenSpot 等数据集。
- Lume:基于 Apple Silicon 的 Virtualization.Framework,提供接近原生性能的 macOS/Linux 虚拟机管理。
- Cua Sandbox:提供统一的 API,用于在任何 VM 或容器镜像中构建能“看见”屏幕、点击按钮并自主完成任务的 Agent。
该项目主语言标注为 HTML(可能指其 Web 界面或文档结构),目前 Star 数约为 17,996,支持 macOS、Windows 以及处于预发布阶段的 Linux。
解决的问题
在 AI Agent 从“文本交互”走向“实体操作”的过程中,开发者面临三大核心痛点,Cua 旨在解决这些问题:
- 焦点冲突与用户体验中断:传统的自动化脚本(如 PyAutoGUI)通常需要抢占系统焦点和鼠标控制权,导致用户无法同时使用电脑,且容易引发焦点丢失或操作冲突。Cua Drivers 解决了这一问题,使 Agent 能够在后台静默运行,不干扰用户的正常操作。
- 跨平台环境一致性差:构建能跨操作系统(macOS, Windows, Linux, Android)工作的 Agent 极其困难,因为各平台的 UI 渲染、API 和权限机制差异巨大。Cua 通过统一的 API 抽象层,屏蔽了底层操作系统的差异。
- 缺乏标准化的评估体系:目前对于“计算机使用”能力的评估缺乏统一标准,难以量化 Agent 在真实桌面环境中的表现。Cua Bench 提供了标准化的基准测试框架,支持轨迹导出,便于模型训练和性能对比。
核心功能
1. 后台桌面驱动 (Cua Drivers)
- 无焦点操作:Agent 可以模拟点击、输入和验证操作,而不会窃取当前窗口的焦点或光标。
- 多客户端兼容:提供 CLI 和 MCP (Model Context Protocol) 服务器接口,可直接集成到 Claude Code、Cursor、Codex、OpenClaw 等主流 AI 编程助手或自定义客户端中。
- 安装简便:支持通过一键脚本在 macOS/Linux (
install.sh) 和 Windows (PowerShellinstall.ps1) 上快速部署。
2. 统一沙箱 API (Cua Sandbox)
- 跨平台统一接口:通过 Python SDK (
pip install cua) 提供一致的编程接口。无论底层是 Linux、macOS、Windows 还是 Android,API 调用方式保持一致。 - 多模态交互能力:
- 视觉:
sb.screenshot()获取屏幕截图。 - 控制:
sb.mouse.click()模拟鼠标点击,sb.keyboard.type()模拟键盘输入。 - 移动端支持:
sb.mobile.gesture()支持多点触控手势操作。 - Shell 执行:
sb.shell.run()执行系统命令。
- 视觉:
3. 基准测试与训练 (Cua Bench)
- 数据集支持:内置支持 OSWorld、ScreenSpot、Windows Arena 等主流计算机使用基准测试数据集。
- 轨迹导出:支持将 Agent 的操作轨迹导出,用于后续的模型微调或训练。
- 并行评估:支持通过 CLI (
cb run) 并行运行多个 Agent 实例,提高评估效率。
4. 高性能虚拟机管理 (Lume)
- Apple Silicon 优化:利用 Apple 原生的 Virtualization.Framework,在 M 系列芯片 Mac 上提供接近原生性能的 macOS 虚拟机。
- 轻量级部署:通过
lume run命令即可快速拉取并启动如 macOS Sequoia 等系统镜像,无需复杂的虚拟化配置。
亮点 / 与同类相比
- MCP 协议原生支持:Cua 深度集成 Model Context Protocol (MCP),这使得它能够无缝接入基于 MCP 构建的现代 AI 应用生态(如 Cursor、Claude Code),降低了集成门槛。
- 真正的“后台”驱动:与 Selenium 或 Playwright 等浏览器自动化工具不同,Cua Drivers 针对原生桌面应用进行了优化,解决了焦点抢占问题,更适合需要长期运行且不干扰用户的自动化场景。
- 全栈覆盖:大多数竞品可能只关注浏览器自动化(如 Browser-use)或只关注某个特定 OS。Cua 提供了从底层虚拟机(Lume)、桌面驱动(Drivers)、沙箱环境(Sandbox)到上层评估(Bench)的全栈解决方案。
- 多平台一致性:通过抽象层屏蔽了 macOS、Windows 和 Linux 的差异,开发者只需编写一次代码即可适配多种环境,极大降低了跨平台 Agent 的开发成本。
适合谁用 / 上手
适合人群
- AI Agent 开发者:需要构建能够操作桌面应用、浏览网页或执行系统任务的自主 Agent。
- 自动化测试工程师:需要跨平台、非侵入式的 UI 自动化测试方案。
- 模型研究人员:需要标准化的基准测试(Bench)来评估 Computer-Use 模型的性能,并需要导出轨迹数据进行训练。
- Mac 用户/开发者:需要高效管理 macOS 虚拟机进行开发或测试的用户。
快速上手指南
-
安装桌面驱动 (以 macOS 为例):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh)" -
集成到 MCP 服务器: 将 Cua Driver 添加为 MCP 服务器,使 AI 客户端能够调用桌面控制能力:
claude mcp add --transport stdio cua-driver -- cua-driver mcp -
使用 Python SDK 构建 Agent:
pip install cuafrom cua import Sandbox, Image # 启动一个临时的 Linux 沙箱 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!") -
运行基准测试:
git clone https://github.com/trycua/cua && cd cua/cua-bench uv tool install -e . && cb image create linux-docker cb run dataset datasets/cua-bench-basic --agent cua-agent --max-parallel 4
Cua 采用 MIT 许可证开源,欢迎社区贡献。对于需要构建下一代自主计算机使用 Agent 的团队来说,这是一个极具潜力的基础设施项目。
查看原文 →github.com
