Retrato de Santiago Fernández

CubeLabs

IA · Fintech · Agentes · Automatización
🧠 IA

Cua: Dale un Ordenador Real a tu Agente de IA

Computer-Use 2.0 — sandboxes aislados, control de escritorio y benchmarks multiplataforma.

⏱ 35 min📊 Intermedio📝 10 lecciones

Aprende Cua, la plataforma open-source (respaldada por Y Combinator) para construir agentes que operan ordenadores de verdad: clic, teclado, lectura de pantalla y árbol de accesibilidad. Recorrerás el stack completo — sandboxes, Cua Driver, MCP, Lume, Cua Bench — con comandos reales y criterios de producción.

Cua, plataforma de computer-use para agentes de IA
Cua · repositorio de trycua/cua

Contenido

  1. Qué es un agente computer-use
  2. El stack de Cua: seis piezas
  3. Instalación paso a paso
  4. Tu primer sandbox con el SDK
  5. Cua Driver: controlar apps reales
  6. Cómo funciona por dentro: observar y actuar
  7. Conectar tu agente por MCP
  8. Lume: VMs macOS y Linux locales
  9. Imágenes y despliegue: local, cloud y tu nube
  10. Cua Bench y buenas prácticas

1. Qué es un agente computer-use

Un agente computer-use no se limita a llamar APIs: mira una pantalla, decide dónde pulsar y escribe como lo haría una persona. Cua es la infraestructura que hace eso posible de forma segura y reproducible, en lugar de dejar al modelo suelto sobre tu escritorio.

La idea central del proyecto es Computer-Use 2.0: un agente moviéndose entre código, APIs e interfaces gráficas dentro de la misma tarea. Cuando existe una API, la usa; cuando no, opera la interfaz. Esa mezcla es lo que convierte a un asistente en algo capaz de completar trabajo real.

EnfoqueQué controlaLímite típico
Solo APIsServicios con endpointSe rompe si no hay API
Automatización de scriptsRutas fijasFrágil ante cambios de UI
Computer-use (Cua)Escritorio real + APIsNecesita permisos y aislamiento
💡 Idea clave

El valor no está en "hacer clic", sino en el aislamiento: el agente trabaja en un sandbox o una VM, no sobre tu sesión personal. Esa es la promesa de Cua.

2. El stack de Cua: seis piezas

Cua no es una sola herramienta, sino un conjunto coordinado. Reconocer cada pieza te evita instalar de más y ayuda a elegir la capa correcta para tu caso.

PiezaPara qué sirve
Cua SpacesApp que da escritorios completos (VMs macOS/Linux) a los agentes, con teletransporte de apps y multijugador.
Cua DriverControla apps nativas y navegadores en macOS, Windows y Linux vía CLI, MCP o SDK.
LumeVMs macOS y Linux locales sobre Apple Silicon (Virtualization.Framework).
SDK y CLI cuaSandboxes locales y en la nube; API en Python, TypeScript, Swift y Kotlin.
CUA-S1Modelos pequeños y especializados para decisiones acotadas (p. ej. qué valor va en un campo).
Cua BenchCrea tareas, evalúa agentes y exporta trayectorias para entrenamiento.

La arquitectura de una ejecución típica es siempre la misma:

modelo -> harness del agente -> Cua Driver (MCP, CLI o SDK)
       -> accesibilidad + entrada del SO -> aplicaciones
⚠️ Error común

Confundir Cua Driver con un agente. Driver no llama a ningún modelo: solo convierte cada paso propuesto en una observación o una acción. El modelo y el bucle los pone tu harness (Claude Code, Codex, Hermes…).

3. Instalación paso a paso

El instalador de Cua muestra una checklist y añade el CLI, el MCP de Cua Driver y las instrucciones de agente que correspondan. No necesitas permisos de administrador para el driver.

1

Comprueba los requisitos

Python 3.11+ para el SDK de sandboxes y Node.js para la CLI de npm. Cua Driver pide macOS 14+, Windows 10/11 o un Linux x86_64 con X11/XWayland y AT-SPI 2.

2

Instala Cua (macOS / Linux)

Ejecuta curl -fsSL https://cua.ai/install.sh | sh. En Windows: irm https://cua.ai/install.ps1 | iex.

3

Prepara el runtime de contenedores

Necesitas Docker, Podman o Colima. Compruébalo y configúralo con cua runtime doctor y cua runtime setup.

4

Verifica

Ejecuta cua --version y cua auth status. Los sandboxes locales funcionan sin cuenta; el cloud y los Spaces sí requieren cua auth login.

# macOS / Linux
curl -fsSL https://cua.ai/install.sh | sh

# Windows (PowerShell)
irm https://cua.ai/install.ps1 | iex

# Comprobar host y runtime
cua runtime doctor
cua runtime setup
cua --version
💡 Atajo

Para instalar solo el driver en todos los agentes detectados: curl -fsSL https://cua.ai/install.sh | sh -s -- --select cua-driver.

4. Tu primer sandbox con el SDK

Un sandbox es una máquina aislada y efímera donde tu agente ejecuta comandos, abre servicios y controla un escritorio. El SDK de Python expone una API asíncrona muy directa: Sandbox.ephemeral crea, arranca y destruye el entorno al salir del bloque.

pip install cua-sandbox
import asyncio
from cua_sandbox import Image, Sandbox, http

async def main():
    async with Sandbox.ephemeral(
        Image.from_registry("python:3.12-slim"),
        command=["python", "-m", "http.server", "8000"],
        services={"web": 8000},
        wait_for=http("web", "/"),
    ) as sb:
        print((await sb.service("web").request("GET", "/")).status_code)
        print(await sb.service("web").url())

asyncio.run(main())

El mismo arranque desde la CLI, útil para depurar sin escribir código:

$ cua sb create python:3.12-slim --name web \
    --service web=8000 --wait http:web/ \
    -- python -m http.server 8000
$ cua sb url web web
200
http://127.0.0.1:53817
💡 Recuerda

Sandbox.ephemeral borra el sandbox al cerrar el bloque. Un sandbox creado por CLI persiste hasta que lo elimines con cua sb rm web -f. La primera vez que usas una imagen, se descarga y puede tardar unos minutos.

5. Cua Driver: controlar apps reales

Cua Driver es la capa que convierte instrucciones en acciones concretas sobre aplicaciones de escritorio. Su tutorial canónico es contundente: pedir al agente que abra la calculadora, compute 6 × 7 y lea el resultado (42) desde una captura nueva.

# macOS: instala y arranca el daemon
/bin/bash -c "$(curl -fsSL https://cua.ai/driver/install.sh)"
open -n -g -a CuaDriver --args serve
cua-driver permissions grant

# Linux
/bin/bash -c "$(curl -fsSL https://cua.ai/driver/install.sh)"
cua-driver serve

Con el daemon en marcha, comprueba que ve tus aplicaciones:

$ cua-driver call list_apps

Una lista vacía significa que el driver no llega al escritorio: ejecuta cua-driver doctor. Después conecta tu agente e indica:

Usando Cua Driver, abre la calculadora, calcula 6 × 7
y lee el resultado desde una captura nueva.
⚠️ Permisos en macOS

Concede a CuaDriver acceso en Accesibilidad y Grabación de pantalla y audio del sistema. Si solo aparece un aviso, vuelve a ejecutar cua-driver permissions grant.

La limpieza es explícita: cua-driver stop detiene el daemon cuando terminas.

6. Cómo funciona por dentro: observar y actuar

El driver sigue un ciclo observar → actuar → verificar. La herramienta get_window_state(pid, window_id) devuelve en una sola llamada el árbol de accesibilidad (roles, etiquetas y un element_token por elemento) y una captura. El árbol dice qué es accionable; la imagen dice cuál y muestra lo que el árbol omite.

Cada acción apunta a un destino explícito y sigue una escalera de precisión:

  1. Elemento, en segundo plano: actúa por element_token (la única ruta que el driver puede verificar por sí mismo).
  2. Píxel, en segundo plano: actúa por coordenadas leídas de la misma captura.
  3. Página: en pestañas de navegador, usa las herramientas de navegador (DOM por CDP, sin robar el foco).
  4. Primer plano: reintenta solo esa acción con delivery_mode: "foreground" (juegos, canvas, apps que exigen foco).
Campo de respuestaValoresQué significa
effectconfirmed / unverifiable / suspected_noop / partial / refusedSi el cambio se aplicó de verdad
escalationpx / page / foregroundSiguiente peldaño recomendado
verifiedtrue / falseSolo true cuando se leyó de vuelta por accesibilidad
⚠️ Un clic no es un cambio

Electron, Catalyst y el contenido web pueden "ecos" de una escritura que no aplicaron; el driver los marca como unverifiable. Tras cualquier resultado distinto de confirmed, vuelve a observar y comprueba antes de continuar.

7. Conectar tu agente por MCP

Un agente llega a Cua Driver de dos formas: un cliente MCP lanza cua-driver mcp, o una skill enseña a un agente con shell a ejecutar cua-driver call <tool>. En ambos casos el harness conserva el modelo y el bucle.

# Imprime el comando o JSON exacto para tu cliente
cua-driver mcp-config --client <cliente>

# Instala la skill de agente (y comprueba)
cua-driver skills install
cua-driver skills status
HarnessPuesta en marcha
Claude Codeclaude mcp add --transport stdio cua-driver -- cua-driver mcp
Codexcua-driver mcp-config --client codex imprime codex mcp add …
Cursor--client cursor; pégalo en ~/.cursor/mcp.json
HermesIntegrado: hermes tools enable computer_use --platform cli
OpenClaw--client openclaw imprime openclaw mcp set …

Para cualquier otro cliente MCP estándar basta con esta configuración:

{
  "mcpServers": {
    "cua-driver": {
      "command": "cua-driver",
      "args": ["mcp"]
    }
  }
}
💡 Modelos locales

Puedes usar un modelo local (por ejemplo con Ollama o llama.cpp) y filtrar las herramientas para ahorrar contexto con cua-mcp-filter --allow …. Usa al menos una ventana de 64K tokens.

8. Lume: VMs macOS y Linux locales

Lume crea y gestiona VMs de macOS y Linux sobre Apple Silicon usando el Virtualization.Framework de Apple. Es la base para dar a un agente un macOS completo y aislado sin tocar tu máquina.

/bin/bash -c "$(curl -fsSL https://cua.ai/lume/install.sh)"
lume --version

# macOS Tahoe desde la imagen de restauración más reciente
lume create macos-tahoe --ipsw latest --unattended tahoe
lume run macos-tahoe

# Conectar por SSH
lume ssh macos-tahoe 'sw_vers; id -un'

El preset tahoe prepara el invitado sin conexión a red externa: usuario lume con contraseña lume, SSH activado y autologin.

⚠️ Requisitos y seguridad

Necesitas un Mac con Apple Silicon, macOS 13+ y ~50 GB libres. Cambia la contraseña por defecto antes de usar la VM para algo sensible. Borra el entorno con lume stop macos-tahoe && lume delete macos-tahoe.

El proyecto incluye lumier, una interfaz compatible con Docker para las VMs de Lume, y cua sb create macos para lanzar un sandbox macOS desde la CLI.

9. Imágenes y despliegue: local, cloud y tu nube

Cua publica imágenes canónicas para Linux, Windows, macOS y Omarchy. Cada una se ofrece como contenedor (rápido, con gVisor si está instalado) o como VM (más fiel al escritorio real). El mismo código escala de tu portátil a la nube.

ImagenSistemaLocalCloud
linux:24.04Ubuntu 24.04Contenedor (gVisor)Contenedor gVisor
linux:24.04-diskUbuntu 24.04 (VM)VM QEMUVM KubeVirt
windows:2022Windows Server 2022VM QEMUVM KubeVirt
macos:26macOS Tahoe 26VM Lume (Apple silicon)Aún no disponible
omarchy:edgeOmarchyVM QEMUVM KubeVirt

Puedes ejecutar los mismos sandboxes en la nube de Cua o en tu propia cuenta:

# Tu propia nube
cua sb create --on aws ...
cua sb create --on gcp ...
cua sb create --on modal ...
💡 Higiene de disco

cua cache du muestra cuánto ocupan imágenes y sandboxes. En Linux las imágenes se ejecutan con el usuario cua y sudo sin contraseña; abre el escritorio en el navegador con cua sb view NOMBRE.

10. Cua Bench y buenas prácticas

Para saber si un agente de computer-use mejora de verdad, hay que medirlo. Cua Bench crea tareas, las puntúa con un oráculo y exporta trayectorias para entrenamiento. El arranque no necesita clave de API ni VM.

uv tool install 'cua-bench[browser]'
uv tool run --from 'cua-bench[browser]' playwright install chromium

# Listar y ejecutar una tarea del registro con su oráculo
cb dataset list
cb run cua-bench-basic --task-filter click-button --max-variants 1

# Resolverla tú mismo, o pasársela a un agente
cb interact click-button --dataset cua-bench-basic
cb run cua-bench-basic --agent cua-agent \
  --model anthropic/claude-sonnet-4-20250514 -j 4

Cada variante deja result.json, run.log y trajectory.json en ~/.local/share/cua-bench/runs/. El registro incluye benchmarks conocidos como OSWorld-Verified (369 tareas de escritorio Ubuntu) y WebVoyager (643 sitios en vivo).

Buenas prácticas para no quemar contexto ni permisos

⚠️ Antes de producción

Un sandbox aislado es tu red de seguridad. Evita dar a un agente computer-use acceso a tu sesión personal o a credenciales de larga vida; usa secretos de alcance corto y máquinas desechables.

Preguntas frecuentes

¿Necesito un Mac para usar Cua?

No para lo esencial. Cua Driver y los sandboxes Linux funcionan en macOS, Windows y Linux. Las VMs macOS de Lume sí requieren Apple Silicon.

¿Cua incluye el modelo de IA?

No. Cua aporta el ordenador y las herramientas de automatización; tú traes tu agente y tu modelo. CUA-S1 es opcional, para decisiones acotadas.

¿El agente controla mi ratón?

Por defecto, no. El driver entrega las acciones "en segundo plano" sin subir la ventana ni mover tu puntero real: el cursor que ves en los demos es una superposición del agente.

¿Es gratis?

Todo fuera de Cua Spaces es MIT. Spaces es source-available (FSL-1.1-MIT) y gratuito para uso individual; cada release pasa a MIT dos años después.