Con los agentes en segundo plano, inicia agentes asíncronos que editan y ejecutan código en un entorno remoto. Revisa su estado, envía seguimiento o toma el control cuando quieras.

Cómo usar

Puedes acceder a los agentes en segundo plano de dos maneras:
  1. Barra lateral de agentes en segundo plano: Usa la pestaña de agentes en segundo plano en la barra lateral nativa de Cursor para ver todos los agentes en segundo plano asociados a tu cuenta, buscar agentes existentes y crear nuevos.
  2. Modo de agente en segundo plano: Presiona para activar el modo de agente en segundo plano en la interfaz.
Después de enviar un prompt, selecciona tu agente de la lista para ver el estado y entrar a la máquina.

Los agentes en segundo plano requieren retención de datos en el orden de unos pocos días.

Feedback

Manda tus comentarios al canal de Discord #background-agent o a background-agent-feedback@cursor.com. Por favor, envía bugs, solicitudes de funciones o ideas.

Configuración

Los agentes en segundo plano se ejecutan de forma predeterminada en una máquina aislada basada en Ubuntu. Tienen acceso a internet y pueden instalar paquetes.

Conexión con GitHub

Los agentes en segundo plano clonan tu repo desde GitHub y trabajan en una rama aparte, haciendo push a tu repo para un handoff fácil. Otorga privilegios de lectura y escritura a tu repo (y a cualquier repo o submódulo dependiente). En el futuro admitiremos otros proveedores (GitLab, Bitbucket, etc.).
Configuración de la lista de IP permitidas
Si tu organización usa la función de lista de IP permitidas de GitHub, vas a necesitar configurar el acceso para los agentes en segundo plano. Consulta la documentación de la integración con GitHub para obtener instrucciones completas de configuración, incluyendo información de contacto y direcciones IP.

Configuración del entorno base

Para casos avanzados, configura el entorno tú mismo. Consigue una instancia del IDE conectada a la máquina remota. Configura tu máquina, instala herramientas y paquetes, luego toma un snapshot. Configura los ajustes de runtime:
  • El comando de instalación se ejecuta antes de que arranque un agente e instala dependencias de runtime. Esto puede ser ejecutar npm install o bazel build.
  • Los terminales ejecutan procesos en segundo plano mientras el agente trabaja, como iniciar un servidor web o compilar archivos protobuf.
Para los casos más avanzados, usa un Dockerfile para la configuración de la máquina. El Dockerfile te permite configurar dependencias a nivel de sistema: instalar versiones específicas de compiladores, depuradores o cambiar la imagen base del SO. No hagas COPY de todo el proyecto: nosotros gestionamos el workspace y hacemos checkout del commit correcto. Aun así, maneja la instalación de dependencias en el script de instalación. Ingresa cualquier secreto requerido para tu entorno de desarrollo: se almacenan cifrados en reposo (usando KMS) en nuestra base de datos y se proporcionan en el entorno del agente en segundo plano. La configuración de la máquina vive en .cursor/environment.json, que puedes commitear en tu repo (recomendado) o almacenar de forma privada. El flujo de configuración te guía para crear environment.json.

Comandos de mantenimiento

Al configurar una máquina nueva, empezamos desde el entorno base y luego ejecutamos el comando install de tu environment.json. Este comando es lo que ejecutaría una persona desarrolladora al cambiar de rama: instalar cualquier dependencia nueva. Para la mayoría, el comando install es npm install o bazel build. Para asegurar un arranque rápido de la máquina, almacenamos en caché el estado del disco después de que se ejecute el comando install. Diseñalo para que pueda ejecutarse múltiples veces. Solo persiste el estado del disco del comando install: los procesos iniciados aquí no seguirán vivos cuando arranque el agente.

Comandos de arranque

Después de ejecutar install, la máquina arranca y ejecutamos el comando start, seguido de iniciar cualquier terminals. Esto inicia procesos que deberían estar vivos cuando se ejecute el agente. A menudo se puede omitir el comando start. Úsalo si tu entorno de desarrollo depende de Docker: pon sudo service docker start en el comando start. Los terminals son para código de la app. Estos terminales se ejecutan en una sesión de tmux disponible para ti y para el agente. Por ejemplo, muchos repos de sitios web ponen npm run watch como un terminal.

La especificación de environment.json

El archivo environment.json puede verse así:
{
  "snapshot": "POPULATED_FROM_SETTINGS",
  "install": "npm install",
  "terminals": [
    {
      "name": "Run Next.js",
      "command": "npm run dev"
    }
  ]
}
Formalmente, la especificación está definida aquí.

Modelos

Solo los modelos compatibles con Max Mode están disponibles para los agentes en segundo plano.

Precios

Conoce más sobre los precios de Background Agent.

Seguridad

Los Background Agents están disponibles en modo de privacidad. Nunca entrenamos con tu código y solo conservamos el código necesario para ejecutar el agente. Más información sobre el modo de privacidad. Lo que deberías saber:
  1. Concede permisos de lectura y escritura a nuestra app de GitHub para los repos que quieras editar. Usamos esto para clonar el repo y hacer cambios.
  2. Tu código se ejecuta en nuestra infraestructura de AWS en VMs aisladas y se almacena en discos de las VMs mientras el agente está activo.
  3. El agente tiene acceso a Internet.
  4. El agente ejecuta automáticamente todos los comandos de terminal, lo que le permite iterar sobre tests. Esto difiere del agente en primer plano, que requiere la aprobación del usuario para cada comando. La ejecución automática introduce riesgo de exfiltración de datos: atacantes podrían realizar ataques de prompt injection y engañar al agente para subir código a sitios maliciosos. Consulta la explicación de OpenAI sobre los riesgos de prompt injection para background agents.
  5. Si el modo de privacidad está desactivado, recopilamos prompts y entornos de desarrollo para mejorar el producto.
  6. Si desactivas el modo de privacidad al iniciar un background agent y luego lo activas durante su ejecución, el agente continúa con el modo de privacidad desactivado hasta que termine.