Cargando

Uso de computadora: automatiza software de escritorio sin API

Lección 79 min

La mayoría de las empresas tiene al menos una aplicación que no tiene ninguna API. Las herramientas de las lecciones anteriores no pueden acceder a ella, porque no hay nada que puedan llamar.

Meridian, una consultora de ingeniería ficticia, tiene una de estas aplicaciones. Es un antiguo gestor de planos llamado PlotDesk, también ficticio. Cada viernes, una persona pasa el día haciendo clic en las mismas pantallas para exportar conjuntos de planos en PDF. PlotDesk no tiene API ni línea de comandos. Solo tiene ventanas y botones.

El uso de computadora permite que Claude opere PlotDesk a través de esas ventanas y botones, tal como lo haría una persona, observando capturas de pantalla y decidiendo qué hacer clic y qué texto escribir.

Meridian quiere que Claude exporte el conjunto de planos en PDF de hoy para el proyecto MEG-2026-0142.

Observa quién realiza cada acción

A través de la API, Claude nunca se conecta al escritorio. Todo lo que Claude produce es una respuesta con llamadas a herramientas dentro de ella. Tu programa es el programa de Python que llama a la Messages API. Este lleva a cabo cada acción en el escritorio y envía de vuelta el resultado.

Este es el bucle. Claude pide una captura de pantalla. Tu programa toma una y la envía de vuelta como una imagen. Claude la observa y envía la siguiente acción, como un clic en coordenadas dadas o algún texto para escribir. Tu programa lleva a cabo la acción, y el bucle se repite hasta que la tarea esté terminada. Es el mismo bucle de herramientas que ya tienes, excepto que algunos de los resultados son capturas de pantalla.

Toda la exportación de Meridian tomó siete acciones.

Acción de ClaudeQué sucedió
screenshotClaude encuentra la ventana de PlotDesk
left_clickEn el campo de número de proyecto
typeMEG-2026-0142
left_clickEn Abrir
screenshotPlotDesk muestra el proyecto: Reemplazo de estación de bombeo, 22 hojas
left_clickEn Exportar PDF
screenshotLa barra de estado indica "Exported MEG-2026-0142_plots.pdf"

Ejecuta el escritorio en un contenedor dedicado

Claude actúa sobre lo que sea que esté en la pantalla. El texto en una página web o en una imagen puede anular tus instrucciones o llevar a Claude a cometer errores. Para limitar el daño que una acción incorrecta pueda causar, dale al escritorio un contenedor dedicado o una máquina virtual que contenga solo lo que la tarea necesita. Configúralo de esta manera:

  • Cada sesión obtiene un contenedor dedicado.
  • El contenedor no contiene credenciales ni directorios montados desde el host.
  • El contenedor solo puede acceder a los hosts de red que la tarea utiliza.

Tu programa y tu clave de API permanecen fuera del contenedor.

Escribe las acciones y deja que el SDK ejecute el bucle

Los SDK de Python y TypeScript tienen una clase llamada el conjunto de herramientas de computadora. La subclasificas y escribes un método para cada acción que la tarea necesita. La clase construye la entrada tools del conjunto de herramientas por ti y está en beta. En Python, necesita la versión 1.12.0 o posterior del SDK.

Meridian implementa tres de las acciones del conjunto de herramientas: screenshot, left_click y type. Cualquier acción que no implementes se envía a la API como deshabilitada.

Cada método es una línea que delega el trabajo a backend. Eso es tu propio envoltorio alrededor de lo que sea que controle el escritorio, como un cliente VNC o xdotool. Este ejemplo mínimo de VNC en Python y TypeScript es un buen punto de partida, pero no está pensado para producción.

Pasa una instancia de tu clase en tools, junto con el prompt. Tool Runner, un asistente del SDK, ejecuta el bucle por ti hasta que Claude responda sin una llamada a herramienta.

A partir de octubre de 2026, este conjunto de herramientas está disponible en la Claude API y en Claude Models on Google Cloud (gestionado por Google). Amazon Bedrock, Microsoft Foundry y Claude Platform on AWS cuentan con las versiones beta anteriores de la herramienta. Esas usan una entrada tools diferente y un encabezado beta, un encabezado de solicitud que activa una función beta.

Haz que una persona apruebe los clics y la escritura

Cuando creas la instancia, pasa una función llamada confirm. El SDK la llama antes de cada acción. Si devuelve True, la acción se ejecuta. Cualquier otra cosa rechaza la acción, y se le dice a Claude que una persona la rechazó.

confirm ve la acción y su entrada, pero no la pantalla. Una persona que observa el escritorio puede ver qué hay en el punto donde Claude quiere hacer clic. Así que Meridian aprueba las capturas de pantalla automáticamente y envía cada clic y cada acción type a su operador, la persona que observa el escritorio.

Este es el programa de Meridian. Tres nombres en él provienen del propio código de Meridian, no del SDK: backend, ask_operator y TASK. ask_operator muestra la acción al operador y devuelve su respuesta, y TASK contiene el prompt.

Cargando

Decide cuándo el uso de computadora es adecuado

Cada captura de pantalla permanece en la conversación, por lo que cada paso cuesta más que el anterior. Así que cuando el software tiene un servidor MCP (un servicio que ofrece sus funciones a Claude como herramientas), una API o una línea de comandos, usa eso en su lugar. El uso de computadora es para software que no tiene nada de esto, como PlotDesk.

Si la tarea se mantiene dentro de páginas web, la herramienta de uso de navegador es la opción más adecuada. Lee y actúa sobre la página misma y no necesita un escritorio completo.

Puntos clave

  • Claude solicita acciones, y tu programa las lleva a cabo.
  • El escritorio se ejecuta en un contenedor dedicado para cada sesión.
  • Implementas solo las acciones que la tarea necesita.
  • La función confirm de Meridian envía cada clic y cada acción type a una persona para que la apruebe.
  • Usa una interfaz directa cuando exista una, y el uso de computadora cuando no exista ninguna.