Iniciar sesión

Workflows 2.0

Ejemplos de Workflows listos para usar: Hemos creado ejemplos de workflows listos que simplemente puedes descargar, usar y estudiar. Consúltalos aquí.
NUEVO (Supercode 2.0.4+)
Workflows Maker Skill ya está disponible: genera Supercode Workflows con IA. Instala el skill desde el menú de Supercode → Tweaks.
Luego pídele al agente de IA que cree workflows para ti.
Importante: Cursor soporta Skills solo en versiones nightly. Antigravity soporta Skills en todas las versiones. Puedes instalar este skill en Claude Code.
Workflows Maker Skill

A finales de 2025, Skills y Workflows se convirtieron en los temas más populares en el desarrollo de IA. Skills - un mecanismo simple pero extremadamente poderoso que ya está soportado por la mayoría de los agentes de IA. Con la extensión Supercode, ahora puedes crear y usar Workflows de cualquier complejidad y flexibilidad en Cursor.

Seis meses después del lanzamiento de Smart Actions, vimos cientos de ejemplos de cadenas de acciones increíblemente largas y ramificadas creadas por nuestros usuarios: desde integraciones con rastreadores de tareas y mensajeros hasta ciclos de desarrollo completamente automatizados con refactorización paso a paso, abstracción y extracción de módulos, deduplicación de código y cobertura completa de pruebas.

Estamos orgullosos de este resultado, y durante este tiempo recibimos una gran cantidad de retroalimentación y solicitudes de mejoras. Hoy nos complace presentar el mecanismo actualizado: Workflows.

Teníamos dos objetivos: hacer los workflows tan simples que incluso los usuarios menos técnicos pudieran implementar sus ideas, y hacerlos tan poderosos que incluso los más exigentes pudieran lograr los resultados deseados.

Esta actualización contiene 3 características clave:

  1. Workflows UI: ahora todos los pasos del Workflow se crean en una sola UI (o archivo), en un par de clics, decenas de veces más rápido y fácil.
    Pasos del Workflow
  2. Workflow State: ves el proceso de ejecución e información para cada paso en tiempo real
  3. Smart Conditions: ahora puedes crear condiciones para pasos a través de JavaScript, solicitudes HTTP, comandos shell, e incluso consultas de IA, para que decida según los datos de entrada si la verificación pasa.
    Pasos condicionales

¿Por qué Workflows?

¿Por qué los Workflows son más poderosos que los Skills? ¿En qué se diferencia un workflow de simplemente proporcionar al agente una lista de pasos? ¿Por qué los comandos shell en workflows son más convenientes que los hooks? ¿Por qué necesitamos pasos condicionales que solo se ejecutan en ciertos casos? Averigüémoslo.

A pesar del crecimiento significativo en la autonomía de los modelos insignia en 2025, la queja más popular sobre los agentes de IA es ignorar instrucciones. No muchos quieren y pueden permitirse realizar todas las tareas a través de Opus 4.5 y Codex 5.2, donde los problemas ocurren con menos frecuencia. Por razones de velocidad y costo, muchos usuarios prefieren usar Sonnet, Gemini 3 Flash, Cursor Auto (Composer-1). Estos modelos son mucho más vulnerables a perder la cadena de acciones, especialmente después de llenar 1/3 del contexto.

Los dos pilares principales de los workflows son el determinismo (ejecución garantizada) y la encapsulación (aislamiento) de los pasos futuros. Detrás de estas palabras largas e intimidantes hay ideas simples: desglosémoslas con ejemplos.

Ejecución Garantizada

Digamos que enviamos el siguiente prompt, modelo - Auto (es decir, Composer-1), a un proyecto frontend Next.js:

1. Mira qué controles de UI hay en src/controls
2. Entiende cómo funciona la gestión de estado en stores
3. Crea un componente de tabla básico: con ordenamiento, filtrado, carga de datos desde el backend y hermosa animación
4. Crea una página /users con una tabla de usuarios
5. Crea una página /products con una tabla de productos

No detengas la ejecución de la tarea hasta que todos los elementos anteriores se completen con éxito.

Naturalmente, el agente inmediatamente agregó todos los pasos a la lista de tareas y comenzó a trabajar. El primer y segundo paso cargaron bastante el contexto - leer ~30 archivos consumió casi 100k tokens. Digamos que hubo dificultades con el tercer paso: el agente tuvo que hacer varias iteraciones de correcciones y verificaciones a través del navegador incorporado antes de que la tabla funcionara como debería. En el proceso, creó páginas de prueba para verificar la funcionalidad de la tabla. En este punto, el contexto ya está lleno al 80%.

¿Qué crees que es la probabilidad de que después de completar el trabajo en la tabla, el agente pase a crear la página /users? ¿Y a crear /products?

Tarea con asterisco: ¿cuál es la probabilidad de que después del paso 3 el agente se detenga, escriba "¡Hurra, finalmente se corrigió el error de la tabla! ¿Te gustaría que continúe creando las páginas?", y espere tu confirmación?

Tarea con dos asteriscos: ¿cuál es la probabilidad de que después de que escribas "sí, por el amor de Dios, por supuesto, literalmente te escribí sobre dos páginas, ¿por qué preguntas?", la siguiente respuesta del agente comience con las palabras "¡Tienes toda la razón!"?

Afortunadamente, no tenemos que adivinar: literalmente realizamos este experimento con un proyecto de prueba Next.js en 7 modelos: Sonnet 4.5, Opus 4.5, Haiku 4.5, GPT-5.2, Composer-1, Gemini 3 Pro, Gemini 3 Flash, con 5 ejecuciones para cada modelo. El criterio es simple - ¿se completaron todos los pasos con éxito después de una sola solicitud del usuario?

El resultado promedio para Opus 4.5 y GPT-5.2 es 80% (8 pruebas exitosas de 10), Sonnet y Gemini 3 Pro - 60%, promedio en el grupo "Haiku, Composer-1 y Gemini 3 Flash" - 46% (7 de 15).

Es fácil notarlo - incluso los modelos insignia, en 1 de cada 5 casos, no completaron la tarea desde una sola solicitud. El último grupo de modelos económicos populares no terminó el trabajo en la mitad de los casos. Al mismo tiempo, la tarea misma y el escenario de problema descrito son bastante típicos. ¿Qué pasa si el workflow del usuario tiene 20 pasos, algunos de los cuales solo deberían ejecutarse bajo ciertas condiciones?

La ejecución garantizada (determinismo) es una propiedad básica de los Workflows: si hay un paso en el workflow (enviar una tarea al agente, ejecutar un script, etc.), se ejecutará garantizadamente.

Aislamiento de Pasos Futuros

Cuando le das al modelo un conjunto de acciones que necesita realizar, conoce todas las acciones de antemano, y no puede evitar prestar atención a las últimas mientras ejecuta las primeras.

Este concepto es comprensible para las personas: si sabemos de antemano qué resultado se espera de nosotros, podemos intentar adaptar nuestro trabajo para llegar allí más rápido. A veces esto es genial y puede ahorrar tiempo. Pero hay procesos donde es necesario seguir meticulosamente las instrucciones; sin ellos, no obtendrás un buen resultado.

Para facilitar, aquí hay un ejemplo. Digamos que le damos al modelo una tarea (aplicación de escritorio Electron ):

1. Estudia todos los archivos en el directorio src/watchers (30 archivos)
2. Claramente tenemos una fuga de memoria - 17gb ocupados después de una hora. Corrige las fugas detectadas.

Digamos que estos archivos tienen dos tipos de fugas:

  1. en lugar de eliminar el temporizador, se apaga: setInterval(() => { if (!active) return; ... })
  2. limpieza incorrecta del caché global (nivel superior const map = new Map())

Y en los primeros 5 archivos en src/watchers, solo se encuentran errores del primer tipo.

A menudo, un agente que sabe de antemano que se espera que corrija fugas intentará "tomar atajos": después de encontrar el mismo problema 5 veces seguidas, escribirá "Revisemos inmediatamente todos los archivos con una búsqueda regexp", buscará setInterval, y solo encontrará archivos que tenían problemas del primer tipo, mientras que se pierde completamente el segundo tipo.

El problema del "sesgo del resultado esperado" no se resuelve aumentando la inteligencia o el precio del modelo; incluso las personas son susceptibles a él. En situaciones donde la provisión de información paso a paso mejora la calidad del resultado (análisis profundo de archivos antes de refactorizar, revisión completa de documentación antes de la implementación), los workflows garantizan que la información sobre acciones futuras no entre en el contexto del agente hasta el momento en que necesitan ejecutarse.

Comparación con Skills

CaracterísticaWorkflowsSkills
Proceso/skill empaquetado en una carpeta separada, con todos los scripts y datos relacionados
Fácil de importar y compartir
Se puede usar en otros workflows/skills (crear procesos jerárquicos)
Permite incrustar llamadas de script (bash/js/python) en el proceso de trabajo del agenteAntes y después de cualquier paso, con cualquier condición y ejecución garantizada. ParcialmentePuedes pedirle al agente que ejecute scripts después de ciertos pasos. No hay garantía de que lo haga. Puedes usar hooks, pero son globales, sin vinculación a pasos, condiciones o un Skill específico.
Ejecución de acciones garantizadaUn paso solo se puede omitir si tiene una condición de ejecución explícita que no se cumple. En todos los demás casos, el paso definitivamente se ejecutará. NoLa lista de pasos en un Skill es simplemente una solicitud para que el agente realice un conjunto de acciones. Si realmente se ejecutarán o no depende de la decisión del agente.
Aislamiento de contextoPuedes reiniciar el contexto incluso después de cada paso. El agente no conoce los pasos futuros de antemano y no puede hacer trampa adaptando el trabajo al resultado esperado. NoLa descripción de todos los pasos en un Skill se carga cuando se carga el Skill. Hipotéticamente, puedes pedirle a un agente orquestador que ejecute cada paso en un subagente (Cursor 2.4+), pero en la práctica esto degrada significativamente el resultado.
Pasos condicionales (ramificación)Puedes establecer una condición de ejecución de paso, ya sea como un prompt para un verificador de IA separado ("Ejecuta el paso de actualización de prueba solo si hubo cambios en los componentes"), o como código JS, solicitud HTTP o comando shell (! npm run test). NoPuedes describir condiciones al agente bajo las cuales debería ejecutar u omitir un paso, pero seguir estas reglas sigue siendo a discreción del agente.

Creando un Workflow

Los Workflows se almacenan en archivos yml/json dentro de .supercode/workflows/ (local - en el raíz del proyecto, global - en el directorio del usuario).
En un archivo puedes describir uno o varios workflows. Se pueden almacenar en cualquier carpeta anidada, por ejemplo, nos resulta conveniente separar los workflows en un directorio separado y almacenar la descripción del workflow justo al lado de los scripts utilizados (similar a Skills).

Directorio de Workflows
No tienes que crear archivos manualmente, la forma más fácil de hacer esto es a través de la UI:

Configuración Global

Un workflow tiene dos grupos de configuración global - Disparadores y Configuración Avanzada.

Configuración global

En el grupo de disparadores, puedes configurar cómo quieres lanzar el workflow: haciendo clic en un botón en la UI, y/o basándote en un comando de voz. Nota - incluso si no has seleccionado ninguna de las opciones, tu workflow siempre está disponible haciendo clic desde el menú Supercode > Workflows, y siempre puede ser lanzado desde otro Workflow.

En el grupo de Configuración Avanzada, puedes configurar el modelo predeterminado y el modo del agente que se seleccionará cuando se lance el workflow. Nota: si algún paso del workflow anula explícitamente el modelo o modo - entonces esta anulación (para ese paso específico) tendrá prioridad sobre la configuración predeterminada.

Pasos del Workflow

Un Workflow consiste en una secuencia de acciones (pasos) que se ejecutarán en orden.

Un paso puede ser un comando (prompt) para el agente de IA en tu IDE. Un paso puede ser una llamada a un script. O puede formar dinámicamente un nuevo prompt o system prompt (usando un script o consulta de IA). Puede anular el modelo activo actual o el modo del agente. Un paso puede contener una condición que determine si se ejecutará o se omitirá. Y también puede contener un número ilimitado de pasos anidados o referencias a otros Workflows. Examinemos cada una de estas capacidades en detalle.

Paso del Workflow

Tres Tipos de Pasos

Agregar paso del workflow

En cada workflow, así como en todas las acciones anidadas, puedes crear tres tipos de pasos:

  1. Add Step: opción estándar, crea un paso regular que puedes configurar para tus tareas.
  2. Select Existing Action: crea un paso-enlace a un Workflow o Smart Action existente.
  3. Add "Run Shell" action: crea un paso que ejecuta un comando shell (por ejemplo, ejecuta un script Node.js o Python).

Paso Estándar

Este es el tipo principal de pasos que componen los Workflows. Cada paso tiene:

  • Nombre
  • Si este paso debe lanzar el agente de IA en tu IDE (icono Run con toggle)
  • Estado activo (icono de ojo, con el que puedes marcar temporalmente pasos no utilizados como inactivos)
  • Conjunto de configuraciones (prompt, system prompt, modelo, modo del agente, comando IDE, condición de ejecución)
  • Conjunto de pasos anidados
Paso estándar del workflow

Prompt y System Prompt

Hay 5 formas de actualizar un prompt o system prompt:

  1. Texto
  2. Generación de IA
  3. Comando shell
  4. Solicitud HTTP
  5. Código JavaScript
Tipos de prompt

Texto

Texto del prompt

Esta es la opción más simple: simplemente puedes establecer texto estático para el nuevo prompt, que se pasará al agente de IA de Cursor. O puedes usar variables disponibles que se reemplazarán automáticamente con valores del contexto actual.

IA

Prompt IA

Este es un mecanismo poderoso que te permite generar el texto de un nuevo prompt usando una consulta a un modelo de IA de Supercode separado. También puedes usar variables disponibles (por ejemplo, el prompt actual a través de $prompt), y pedirle a la IA que rehaga la tarea: desglósala en etapas, tradúcela a otro idioma, elimina partes innecesarias, estructúrala o agrega detalles faltantes, considera los matices de seguridad y mucho más. Imagina que puedes mejorar automáticamente tu prompt a través de ChatGPT antes de pasarlo al agente de Cursor. Esto es exactamente lo que este tipo de generación de prompt te permite hacer.

Comando Shell

Prompt Shell

Este tipo te permite ejecutar cualquier comando shell (o cadena de comandos) y usar la salida estándar (stdout) del comando como el nuevo prompt.
Incluyendo, los scripts pueden usarse como comandos: node ./my-script.js o python ./get-data.py. Usando este mecanismo, puedes exportar texto de tareas desde rastreadores de tareas , extraer errores actuales de Sentry, acceder a APIs, bases de datos, obtener información de logs, y mucho más. Como en todos los demás casos - tienes acceso a las variables actuales.

Solicitud URL

Prompt URL

Este tipo te permite ejecutar una solicitud POST a cualquier URL y usar la respuesta (JSON) como el nuevo valor. Las variables actuales se envían en el cuerpo de la solicitud (application/json).

Código JavaScript

Prompt JS

Este tipo te permite ejecutar cualquier código JavaScript y usar su resultado como el nuevo valor. Las variables actuales están disponibles como variables globales (no se necesita prefijo de signo de dólar para acceder a ellas, solo prompt, model, response, etc).

Variables Disponibles

Con cualquier tipo de anulación de prompt o system prompt, puedes usar variables que contienen el estado del contexto actual:

  • $prompt - Texto del prompt actual
  • $systemPrompt - Texto del system prompt actual
  • $response - Última respuesta del agente de IA de Cursor. Nota: este es literalmente el último mensaje de texto escrito por el agente. Si el agente realizó varias acciones (editó archivos, pensó, ejecutó comandos en la terminal, etc), entonces esta variable contendrá exactamente el último bloque de texto que fue escrito por el agente, no todos sus mensajes de texto desde tu última solicitud. Esta variable es útil cuando le pides al agente que complete su trabajo con alguna respuesta de texto: en ese caso, esa respuesta estará en esta variable.
  • $packedResponses - Todos los mensajes de texto que fueron enviados por el agente desde tu última solicitud, empaquetados en formato tipo XML (...<message from="ai-assistant">...</message>...). Esta variable es adecuada cuando quieres analizar todas las acciones del agente desde tu última solicitud.
  • $model - Modelo actualmente seleccionado
  • $mode - Modo del agente actual (agent/plan/debug/etc/o nombre del Modo Personalizado)
  • $initialPrompt - El prompt que estaba en el campo de entrada cuando se lanzó el workflow.
  • $initialModel - El modelo que estaba seleccionado cuando se lanzó el workflow.
  • $initialMode - El modo que estaba seleccionado cuando se lanzó el workflow.
Las variables iniciales son convenientes de usar cuando quieres restaurar el estado original después de que se complete el workflow .

Modo y Modelo

Modo y modelo

Cada paso del workflow puede cambiar el modelo actual y el modo del agente. Este mecanismo te permite adaptar flexiblemente el trabajo: usar modelos más inteligentes para planificar cambios, y más baratos para editar código. Puedes usar modos analíticos para explorar el código base y encontrar respuestas a tus preguntas, luego habilitar automáticamente el modo Debug para encontrar y corregir errores.

Nota: el modo y el modelo no se restablecen después de que se completa el paso que los cambió. Esto es conveniente: una vez que cambias el modo y modelo actual, continúas usándolos para todos los pasos posteriores hasta que necesites cambiarlos nuevamente.

Pasos Condicionales (Ramificación)

Pasos condicionales

Para cada paso, puedes establecer una condición que se verificará antes de que el paso comience a ejecutarse. El mecanismo de condición es muy similar al mecanismo de actualización de prompt: también tienes acceso a todas las variables, y casi todas las opciones de lanzamiento (excepto texto): JavaScript, comando Shell, solicitud HTTP, y consulta de IA.

La diferencia clave está en qué respuesta se espera de la ejecución de la condición:

  • JavaScript: debe devolver un valor booleano (ya sea true/false explícito o valor truthy-falsy).
  • Comando Shell: debe salir con código 0 en caso de éxito (el paso se ejecutará), y valor distinto de cero en caso de error (el paso se omitirá).
  • Solicitud HTTP: debe devolver estado 2xx en caso de éxito (el paso se ejecutará), y cualquier otro estado en caso de error (el paso se omitirá).
  • Consulta de IA: debe devolver texto "true", "yes", o "1", entonces el paso se ejecutará, de lo contrario - se omitirá.

La combinación de condiciones y pasos anidados te permite crear ramas y bucles de cualquier complejidad.

Comando IDE

Comando IDE

Puedes establecer un comando IDE, que se ejecutará en el momento en que este paso se ejecute. Este mecanismo te permite gestionar el entorno dentro de tu workflow: abrir un nuevo chat, reiniciando así el contexto, lanzar la compilación del proyecto a través de tareas npm, crear nuevos archivos, y mucho más.

Pasos Anidados

Pasos anidados

Puedes crear pasos anidados que se ejecutarán al final de la ejecución del paso actual (después de que sus acciones principales para sobrescribir prompts, lanzar el agente de IA, etc. ya se hayan ejecutado). Este mecanismo funciona exactamente igual que los pasos principales en un workflow: puedes crear acciones adicionales , referencias a otros workflows, ejecutar scripts, etc. Gracias a la capacidad de crear tantos pasos anidados como quieras (y anidarlos uno dentro del otro), puedes describir cualquier escenario que imagines usando workflows.