Producto

Los agentes de Cursor ahora pueden controlar sus propios equipos

Jonas Nelle & Alexi Robbins11 min de lectura

La capacidad de los agentes depende del entorno en el que se ejecutan. Sin poder usar el software que están creando, los agentes tocan techo.

En los últimos meses, resolvimos esto internamente dándoles a los agentes sus propias máquinas virtuales con entornos de desarrollo completos, además de la capacidad de probar sus cambios y generar artefactos (videos, capturas de pantalla y log) para que puedas validar rápidamente su trabajo.

Hoy ponemos a disposición una nueva versión de los agentes en la nube de Cursor desde cualquier lugar donde trabajes, incluida la web, el móvil, la aplicación de escritorio, Slack y GitHub. Los agentes en la nube se integran por sí solos en tu base de código y generan PR listas para fusionar con artefactos para hacer una demo de sus cambios. También puedes controlar el escritorio remoto del agente para usar el software modificado y hacer ediciones tú mismo, sin tener que descargar la rama en local.

Este ha sido el mayor cambio en nuestra forma de crear software desde que pasamos del autocompletado Tab a trabajar de forma síncrona con agentes. Más del 30 % de las PR que fusionamos en Cursor ahora las crean agentes que operan de forma autónoma en sandboxes en la nube.

El 30 % de las PR internas fusionadas ahora las crean agentes en la nubeEl 30 % de las PR internas fusionadas ahora las crean agentes en la nube

El siguiente nivel de autonomía

Los agentes locales facilitan empezar a generar código, pero enseguida se topan con conflictos y compiten entre sí (y contigo) por los recursos de tu ordenador. Los agentes en la nube eliminan esta limitación al dar a cada agente una VM aislada, para que puedas ejecutar muchos en paralelo.

Los agentes en la nube también pueden crear e interactuar con software directamente en su propio sandbox, lo que les permite iterar hasta validar su resultado, en lugar de limitarse a entregar el primer intento. El siguiente video muestra una prueba de concepto de una investigación anterior sobre el uso avanzado del ordenador.

Puedes ver al agente navegar por páginas web en el navegador, manipular herramientas como hojas de cálculo, interpretar datos y tomar decisiones, y resolver incidencias en entornos de UI complejos.

El agente se grabó interactuando con aplicaciones de escritorio en su VM.

Uso de agentes en la nube en Cursor

Durante el último mes, hemos estado usando agentes en la nube internamente, y eso ha cambiado la forma en que creamos software. En lugar de dividir las tareas en partes pequeñas y microgestionar a los agentes, delegamos tareas más ambiciosas y dejamos que trabajen por su cuenta.

Estas son algunas formas en que estamos usando agentes en la nube:

Desarrollo de nuevas funcionalidades

Usamos agentes en la nube para ayudarnos a crear plugins, que lanzamos recientemente en el Cursor Marketplace. Este es uno de nuestros prompts:

Para cada componente que se muestra en la página de un plugin determinado, nos gustaría incluir un enlace al código fuente. Para skills, commands, rules y subagents, ese es el archivo .md. Para hooks, es el hooks.json. Para mcps, es el .mcp.json o el manifest donde está definido. A medida que indexamos todos los componentes de un plugin, lleva un registro del archivo fuente y construye enlaces a ese archivo a partir de la URL subyacente de GitHub. Muéstralo en el frontend y haz que nuestro frontend enlace a GitHub usando este ícono. Prueba con https://github.com/prisma/cursor-plugin localmente

El agente implementó la funcionalidad y luego se grabó navegando al plugin de Prisma importado y haciendo clic en cada componente para verificar los enlaces de GitHub.

El agente se grabó haciendo clic en botones para verificar que enlazan a los archivos fuente correctos.

Para las pruebas locales, el agente omitió temporalmente la feature flag que protegía la página del marketplace y luego revirtió el cambio antes de hacer push. Hizo rebase sobre main, resolvió conflictos de merge y lo redujo a un solo commit.

Reproducción de vulnerabilidades

Iniciamos un agente en la nube desde Slack con el prompt "Please triage and explain this vulnerability to me in great detail", seguido de una descripción de una vulnerabilidad de exfiltración del portapapeles. Cuando el agente terminó de ejecutarse, respondió en el hilo de Slack con un resumen de lo que había logrado.

Agente en la nube reproduciendo una vulnerabilidad

El agente creó una página HTML que explota la vulnerabilidad a través de una API expuesta. Inició un servidor backend para alojar la página demo localmente y cargó la página en el Browser integrado de Cursor.

El artefacto de video muestra el flujo completo del ataque: el agente copió un UUID de prueba al portapapeles del sistema, cargó la página demo en el Browser de Cursor e hizo clic en un botón para exfiltrar y mostrar el UUID. También tomó una captura de pantalla que muestra el robo exitoso del portapapeles e hizo commit del archivo HTML de la demo en el repositorio.

El agente se grabó recorriendo el flujo del ataque para demostrar la vulnerabilidad.

Correcciones rápidas

Le pedimos a un agente en la nube que reemplazara la etiqueta estática "Read lints" por una dinámica basada en los resultados del lint. Implementó "No linter errors" para cero diagnósticos y "Found N errors" para N diagnósticos, con estilos acordes al CSS existente.

El agente probó dos casos en la aplicación de escritorio de Cursor: un archivo con múltiples errores de tipo y un archivo limpio sin errores. El artefacto de video muestra al agente verificando que el archivo limpio tenga un grupo expandido que muestre “No linter errors”.

El agente se grabó para mostrar que implementó correctamente la corrección de la etiqueta de lint.

Pruebas de la UI

Pusimos en marcha un agente en la nube para comprobar que todo funcionara correctamente en cursor.com/docs. Pasó 45 minutos haciendo un recorrido completo por nuestro sitio de documentación. El agente proporcionó un resumen de todas las funcionalidades que probó, incluida la barra lateral, la navegación principal, la búsqueda, el botón para copiar la página, el cuadro de diálogo para compartir feedback, la tabla de contenido y el cambio de tema.

El agente se grabó probando la UI en el sitio de documentación de Cursor.

Ahora que los agentes pueden encargarse de la mayor parte de la implementación, hemos descubierto que el rol de un desarrollador tiene más que ver con marcar la dirección y decidir qué se publica.

Qué sigue

Estamos creando el camino hacia un futuro de bases de código autónomas, donde los agentes fusionan PRs, gestionan despliegues progresivos y supervisan la producción. Pasaremos de un mundo en el que los desarrolladores usan agentes para crear diffs a otro en el que los agentes despliegan funcionalidades probadas de principio a fin.

Para hacer realidad por completo ese cambio, será necesario mejorar las herramientas, los modelos y los patrones de interacción. Nuestro enfoque a corto plazo se centra en coordinar el trabajo entre muchos agentes y crear modelos que aprendan de ejecuciones anteriores y se vuelvan más eficaces a medida que acumulan experiencia.

Empieza en cursor.com/onboard para ver cómo el agente se configura por sí solo y grabar una demo. O aprende más en la documentación.

Archivado en: Producto

Autors: Jonas Nelle & Alexi Robbins