CuaComputer-Use Agent 的 Docker让 AI 像人一样操作电脑——后台零干扰 |Github Daily

0 阅读6分钟

⚠️ 本工具依赖境外公开数据源,部分平台在中国大陆需合规网络环境

GITHUB DAILY · 第064期

Cua

Computer-Use Agent 的 Docker

让 AI 像人一样操作电脑——后台零干扰

📋 项目速览

项目trycua/cua
定位Computer-Use Agent 全栈开源基础设施
Stars18,197 ⭐
语言Python 19.7% / Rust 9.0% / Swift 6.4% / TypeScript 2.6%
协议MIT 开源
支持平台macOS / Linux / Windows / Android
MCP 集成Claude Code / Cursor / Codex / OpenClaw
官网cua.ai
4核心产品5操作系统30+MCP 工具0焦点抢占

🔥 它能解决什么问题?

Anthropic 的 Computer Use API 让 LLM 能看屏幕、点鼠标、敲键盘。但拿到 API 之后,落地的硬活才刚开始——

痛点一:环境不隔离,Agent 到处乱点

AI Agent 直接在本机操作桌面?一旦误操作,后果不可逆。生产级 CUA 必须在沙箱中隔离运行。

痛点二:Agent 运行抢占焦点,用户没法干活

传统自动化方案每操作一步就把窗口弹到最前,用户完全无法并行工作。Agent 和人不能共处一台电脑。

痛点三:跨平台 API 各自裂开

macOS 用 Accessibility API、Windows 用 UI Automation、Linux 用 AT-SPI……每换一个 OS 就要重写一套代码。

痛点四:没有基准,"能跑"不等于"靠谱"

Demo 一次成功很容易,但持续稳定?跨窗口恢复?长任务漂移?没有 Benchmark 就没法衡量和优化。

✨ 核心亮点

① Cua Driver — 后台操控,零干扰

这是 Cua 最独特的技术特性。Agent 可以在不抢占光标、不抢焦点、不切换 Space 的前提下,操控任意 macOS 原生应用。

核心技术方案:

  • 焦点欺骗(SyntheticAppFocusEnforcer):临时给目标窗口写入 AXFocused=true,让 AppKit 误以为"我有焦点",操作完立即恢复

  • 像素级输入路由:键盘事件走 CGEvent.postToPid 直发 PID,鼠标走 SLEventPostToPid 事件,窗口不会升起

  • 智能 AX 元素定位:当元素中心落在可见区域外时,自动做 5×5 网格探测找到可点击位置

  • ScreenCaptureKit 截图:输出分辨率上限 1568px,精确匹配 Anthropic 多模态输入限制

② Cua Sandbox — 一套 API,五个操作系统

统一 API 抽象层,切换操作系统只需改一个参数。底层自动路由到对应的运行时环境。

from cua import Sandbox, Image


# 同一 API,无论 OS 或运行时

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!")

    await sb.mobile.gesture((100, 500), (100, 200))

Transport 路由表:

Transport后端
DockerLinux 容器
QEMUWindows / Linux VM
LumemacOS VM(Apple Silicon)
Cloud云端环境
Android模拟器

③ Cua Bench — 评测 + RL 训练闭环

不是"跑个 demo 就行",而是提供标准化评测体系。支持 OSWorld、ScreenSpot、Windows Arena 等主流基准测试,且能导出操作轨迹用于强化学习训练——从评测到训练数据形成闭环。

# 安装并创建基础镜像

git clone https://github.com/trycua/cua && cd cua/cua-bench

uv tool install -e . && cb image create linux-docker


# 运行基准测试(4 并行)

cb run dataset datasets/cua-bench-basic \

  --agent cua-agent --max-parallel 4

💡 Gym-like API 风格:reset() → step() → evaluate(),每个 step 自动记录截图、操作数据、窗口快照。

④ Lume — Apple Silicon 原生虚拟化

基于 Apple Virtualization.Framework,在 Apple Silicon 上以接近原生速度运行 macOS 和 Linux 虚拟机。支持 IPSW 直装 macOS、Rosetta 二进制翻译、VirtioFS 文件共享。一条命令启动:

lume run macos-sequoia-vanilla:latest

⚠️ 仅限 Apple Silicon(M 系列芯片),Intel Mac 只能走 QEMU。

⑤ MCP 原生集成,即插即用

Cua Driver 暴露 30+ MCP 工具,可直接集成到 Claude Code、Cursor、Codex、OpenClaw 等主流 Agent 平台。一条命令完成接入:

# 集成到 Claude Code

claude mcp add --transport stdio cua-driver -- cua-driver mcp

🛠️ 实战场景

场景一:桌面 RPA — 后台自动创建 GitHub PR

from cua import Driver


driver = Driver()  # 自动连接 macOS 辅助功能 API


task = """

在 Chrome 中打开 github.com,

使用当前登录的 GitHub 账号,

为仓库 trycua/cua 创建一个 PR,

标题为 "fix: update driver"

"""

driver.run(task)  # 后台执行,你继续用电脑

场景二:沙箱自动化 — 跨 OS 执行任务

from cua import Sandbox, Image


# Linux 沙箱自动操作

async with Sandbox.ephemeral(Image.linux()) as sb:

    await sb.shell.run("apt install -y firefox")

    screenshot = await sb.screenshot()

    await sb.mouse.click(400, 300)

    await sb.keyboard.type("https://github.com")


# macOS 沙箱同理,只换 Image

async with Sandbox.ephemeral(Image.macos()) as sb:

    await sb.shell.run("open -a Safari")

    await sb.keyboard.type("Hello from macOS sandbox!")

场景三:CuaBot — 编码 Agent 加上眼睛和手

一条命令把 Claude Code 扔进 Docker 沙箱,里面跑完整 Ubuntu 22.04 桌面环境,Agent 可以看到屏幕、点击按钮、输入文字:

cuabot claude  # 启动带桌面环境的 Agent 会话

📊 竞品对比

维度CuaBrowser UseAnthropic CUPlaywright MCP
操控范围全桌面浏览器全桌面浏览器
后台运行✅ 零干扰❌ 占标签页❌ 占焦点❌ 占浏览器
Canvas 工具✅ Figma/Blender
沙箱隔离✅ 内置❌ 自建
评测基准✅ Cua-Bench
开源协议MITMIT闭源 APIApache 2.0
RL 训练✅ 轨迹导出

🚀 上手指南

Step 1:安装 Cua Driver(后台桌面控制)

# macOS / Linux

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh)"


# Windows (PowerShell)

irm https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.ps1 | iex

Step 2:安装 Cua SDK(沙箱环境)

pip install cua  # 需要 Python 3.11+

Step 3:集成到 Claude Code

claude mcp add --transport stdio cua-driver -- cua-driver mcp

Step 4(可选):安装 Lume 虚拟化

# 安装 Lume(仅 Apple Silicon)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/lume/scripts/install.sh)"


# 启动 macOS 虚拟机

lume run macos-sequoia-vanilla:latest

支持的 AI 模型

场景推荐模型
初学者openai/computer-use-preview
生产环境anthropic/claude-opus-4-1-20250805
本地部署UI-TARS-1.5-7B(HuggingFace)

命令速查表

命令说明
cua-driver mcp启动 MCP Server
cuabot claude启动 CuaBot + Claude
lume run <image>启动虚拟机
cb run dataset <path>运行基准测试

🎯 谁该用?谁不该用?

✅ 适合你• 在做 Computer-Use Agent 产品• 需要隔离环境执行 Agent• macOS 后台自动化测试• 需要评测/训练桌面控制模型• 想给编码 Agent 加桌面操作能力❌ 不适合• 只需浏览器自动化(用 Browser Use)• 简单网页抓取(用 Playwright MCP)• 追求开箱即用的稳定性• Intel Mac 用户(Lume 不可用)• 对 GPU 要求极高的本地模型

⚖️ 优势与局限

💪 优势1. 唯一开源全栈 CUA 方案2. 后台零干扰运行是杀手级特性3. 统一 API 跨 5 个操作系统4. 评测+RL训练形成闭环5. MCP 即插即用集成主流 Agent6. MIT 协议,商用无忧⚠️ 局限1. 叙事覆盖极广,工程成熟度待验证2. 三语言并存(Swift+Python+TS),维护成本高3. Lume 仅限 Apple Silicon4. 演示效果强于日常稳定性5. 跨 GUI/分辨率/平台风险较大6. 企业落地镜像管理/安全策略等"脏活"待完善

📝 今日总结

1. Cua 是目前唯一开源的 Computer-Use Agent 全栈基础设施,覆盖沙箱、驱动、评测、虚拟化四层2. 后台零干扰运行是最大差异化特性——Agent 不抢占焦点,人和 AI 可以共存一台电脑3. 统一 API 横跨 macOS/Linux/Windows/Android,切换操作系统只需改一行参数4. Cua Bench 提供评测+RL训练闭环,从"能跑一次"走向"能长期稳定优化"5. MCP 原生集成 Claude Code/Cursor/Codex,30+ 工具即插即用6. 方向很对,但工程成熟度仍在验证中——适合跟踪,不宜直接上生产

💬 你觉得 Computer-Use Agent 最先落地的场景是什么?

桌面 RPA / 测试自动化 / 无障碍辅助 / AI 编程助手?

如果你觉得今天的项目有价值,转发给需要的朋友 👇

GitHub Daily · 第064期 · trycua/cuagithub.com/trycua/cua