La mayoría de los usuarios de Claude Code todavía escriben sus flujos de trabajo a mano. Encadenan indicaciones, copian resultados, los pegan en la siguiente indicación, corrigen lo que salió mal y repiten.
9 de cada 10 desarrolladores ni siquiera han probado los Flujos de Trabajo Dinámicos, aunque se lanzaron hace dos semanas.
Escriben 50 indicaciones cuando un solo flujo de trabajo sería suficiente. Esta es la hoja de ruta de 14 pasos y los 6 patrones que los propios ingenieros de Anthropic usan realmente: para migraciones, investigación, clasificación, causa raíz, triaje y evaluaciones.
Sigue mi Substack para recibir información fresca sobre IA:
Los Flujos de Trabajo Dinámicos se lanzaron en Claude Code el 28 de mayo de 2026. El entorno predeterminado de Claude Code está diseñado para codificar, y funciona bien para la mayoría de las tareas de codificación. Pero hay tipos de trabajo donde una sola ventana de contexto comienza a fallar: tareas de larga duración, masivamente paralelas, altamente estructuradas o adversariales.
Para esos casos, Anthropic solía construir sus propios entornos personalizados (Investigación, Revisión de Código, equipos de agentes). Con los Flujos de Trabajo Dinámicos, Claude escribe ese entorno para ti sobre la marcha, personalizado para tu tarea, en JavaScript.

14 pasos. 6 patrones. Un flujo de trabajo en lugar de cincuenta indicaciones.
Parte 1 · El Modelo Mental
01. Un flujo de trabajo es un entorno que Claude escribe.
El entorno predeterminado de Claude Code hace que Claude planifique y ejecute en la misma ventana de contexto. Para la mayoría del trabajo de codificación, esto es excelente. Para trabajos de larga duración, paralelos o adversariales, falla.
Un Flujo de Trabajo Dinámico es Claude escribiendo su propio entorno personalizado para la tarea: un archivo JavaScript con algunas funciones especiales que crean y coordinan subagentes, más JavaScript estándar (Math, JSON, Array) para procesar los datos que fluyen entre ellos.
Tres cosas que esto te da que el entorno predeterminado no puede:
- Aislamiento por agente. Cada subagente obtiene su propia ventana de contexto con un objetivo enfocado. Sin contaminación cruzada.
- Elección de modelo por agente. El flujo de trabajo elige qué modelo usa cada subagente: Opus para razonamiento complejo, Haiku para exploración económica, Sonnet para el término medio.
- Nivel de aislamiento por agente. Worktree (checkout de git aislado) o remoto (sin checkout). El flujo de trabajo decide lo que necesita cada agente.
Inicia uno pidiéndole directamente a Claude ("crea un flujo de trabajo que...") o con la palabra clave ultracode. Si un flujo de trabajo se interrumpe (acción del usuario, cierre del terminal), reanudar la sesión continúa desde donde se quedó.
02. Los 3 modos de fallo que resuelven los flujos de trabajo.
Para saber cuándo un flujo de trabajo es la herramienta adecuada, debes saber qué soluciona. Cuanto más tiempo trabaja Claude en una tarea compleja en una sola ventana de contexto, más susceptible se vuelve a tres modos de fallo específicos, nombrados directamente en el artículo de lanzamiento de Anthropic:
- Pereza del agente: Claude se detiene antes de terminar una tarea compleja de múltiples partes y declara que ha terminado después de un progreso parcial. Aborda 20 de los 50 elementos en una revisión de seguridad y llama al resto "manejado".
- Sesgo de autopreferencia: Claude prefiere sus propios resultados cuando se le pide que los verifique o juzgue según una rúbrica. Un verificador con intereses creados no puede ser un verificador justo.
- Desviación del objetivo: la pérdida gradual de fidelidad al objetivo original a lo largo de muchos turnos, especialmente después de la compactación. Cada paso de resumen es con pérdida. Las restricciones de "No hagas X" desaparecen silenciosamente en el turno 47.
Un flujo de trabajo resuelve los tres estructuralmente: Claudes separados con sus propios contextos, objetivos enfocados y estado aislado. Si tu tarea sufre alguno de estos patrones, esa es la señal para recurrir a un flujo de trabajo.
03. Flujos de trabajo estáticos vs. dinámicos.
Es posible que ya hayas creado flujos de trabajo estáticos usando el SDK de Agente de Claude o claude -p, coordinando múltiples instancias de Claude Code.
- Los flujos de trabajo estáticos son genéricos: se escriben una vez para manejar cada caso extremo. Funcionan, pero deben ser conservadores.
- Los Flujos de Trabajo Dinámicos son diferentes: Claude escribe este flujo de trabajo para esta tarea. El entorno está hecho a medida. A continuación, la misma pregunta manejada de ambas maneras:

La razón por la que gana la versión dinámica no es el paso de búsqueda; ambos pueden buscar.
Es que el flujo de trabajo puede adaptarse a tu contexto: leer tu código de facturación, verificar cada característica con la documentación real del nuevo proveedor, calcular el precio según tu volumen de transacciones y ejecutar una pasada adversarial de "por qué no migrar" contra su propia respuesta emergente.
Un entorno estático no puede hacer esto porque no sabe que tu código existe.
04. La API principal. agent(), parallel(), pipeline().
Tres funciones hacen la mayor parte del trabajo en un flujo de trabajo. Conocerlas es suficiente para leer cualquier flujo de trabajo que Claude escriba para ti y para guiar a Claude cuando quieras una forma específica.

parallel() es una barrera: se expande, luego espera todo antes de regresar. pipeline() es transmisión: cada elemento fluye a través de cada etapa de forma independiente.
Elige según la pregunta: ¿Necesito todos los resultados antes de poder hacer algo más? Sí → parallel. No → pipeline (más económico, más rápido en general).
05. Clasificar y actuar. Enruta el trabajo antes de hacerlo.
Un agente clasificador decide el tipo de tarea, luego el flujo de trabajo enruta a diferentes agentes o comportamientos según la respuesta. O un clasificador se ejecuta al final, ordenando los resultados brutos en categorías para lo que venga después.
Cuándo este patrón vale la pena:
- La tarea es heterogénea: diferentes subtipos necesitan un tratamiento diferente.
- Quieres usar el modelo costoso solo donde la complejidad lo exija (clasificador económico, luego enrutar a Opus solo cuando sea necesario).
- La descomposición del trabajo en sí misma no es trivial y se beneficia de que un modelo decida la forma.
Ejemplo: "Explica cómo funciona el módulo de autenticación." Un agente clasificador lee primero el código base, estima la complejidad, luego enruta la tarea de explicación real a Sonnet para un módulo de 10 archivos o a Opus para uno de 100 archivos. El modelo adecuado para el trabajo, decidido después de que se comprende el trabajo.
06. Expandir y sintetizar. Muchos pasos pequeños, un resultado fusionado.
Divide una tarea en muchos pasos más pequeños. Ejecuta un agente en cada paso en paralelo. Sintetiza los resultados en una respuesta.
El paso de síntesis es una barrera: espera a cada agente expandido, luego fusiona sus resultados estructurados.
Por qué este patrón domina en la práctica: resuelve el fallo de "demasiadas cosas a la vez" del trabajo de contexto único. Cada subagente ve solo su parte. El orquestador nunca se distrae con 50 detalles no relacionados.
Cada paso se beneficia de su propia ventana limpia para que no se contaminen entre sí.
Úsalo cuando:
- Tengas una lista claramente enumerable de elementos de trabajo (50 archivos, 200 endpoints, 100 revisiones).
- Cada elemento sea independiente: ningún elemento necesita la salida de otro para comenzar.
- Quieras una respuesta consolidada única al final, no un montón de informes parciales.
1// Expandir: un agente por archivo. Barrera: esperar a todos.2const reviews = await parallel(3 files.map(file => () => agent(4 `Revisa ${file} en busca de problemas de seguridad`,5 { model: "haiku", schema: IssueList }6 ))7)89// Sintetizar: un agente Opus fusiona todo.10const report = await agent(11 `Fusiona estas revisiones en un informe priorizado:\n${JSON.stringify(reviews)}`,12 { model: "opus" }13)
07. Verificación adversarial
Esta es la solución estructural para el sesgo de autopreferencia. Por cada agente creado, ejecuta un agente creado separado que verifique adversarialmente su salida contra una rúbrica. El verificador nunca ha visto el trabajo original; no puede favorecerlo.
El patrón es más importante para:
- Verificación de afirmaciones: cada declaración fáctica en un informe obtiene su propio subagente verificador, que verifica contra la fuente original.
- Revisión de código: el agente autor escribe la corrección, el agente revisor (contexto separado) la revisa. Nunca el mismo Claude juzgándose a sí mismo.
- Controles de calidad: antes de que cualquier artefacto se envíe, un adversario intenta encontrar el caso más débil en su contra. Si el adversario no puede, se envía.
La regla de emparejamiento: el verificador debe conocer solo la rúbrica y el artefacto, no quién lo produjo. De lo contrario, la autopreferencia se cuela a través de pistas en la indicación.
08. Generar y filtrar.
Genera una serie de ideas sobre un tema, luego fíltralas mediante una rúbrica o verificación. Elimina duplicados. Devuelve solo las ideas de mayor calidad y probadas.
Dónde brilla este patrón:
- Lluvia de ideas: 30 nombres de productos, luego un verificador elimina clichés, conflictos de marca registrada y fonética débil. Ves 3.
- Generación de hipótesis: 5 enfoques diferentes para un problema, luego cada uno se puntúa según tus restricciones. El ganador se lo ha ganado.
- Diseño de soluciones: 5 enfoques diferentes para un problema, luego cada uno se puntúa según tus restricciones. El ganador se lo ha ganado.
Lo opuesto a pedirle a Claude "la mejor respuesta". Pedir la mejor respuesta hace que Claude se comprometa temprano. Generar y filtrar hace que Claude se comprometa tarde, después de que cada opción haya sido desafiada.
09. Torneo. La comparación por pares supera a la puntuación absoluta.
En lugar de dividir el trabajo, haz que los agentes compitan en él. Crea N agentes que intenten la misma tarea usando diferentes enfoques, luego juzga los resultados de forma pareada hasta que uno gane.
El juicio comparativo es más confiable que la puntuación absoluta, especialmente para trabajos basados en el gusto.

Por qué esto supera a ordenar por puntuación: intentar ordenar 1000 elementos en una sola indicación falla en dos frentes: la calidad se degrada y no cabe en el contexto. Un torneo divide el cuadro entre agentes nuevos, cada uno comparando solo dos elementos.
El cuadro en sí mismo vive en código de bucle determinista, no en el contexto. Cada comparación es rápida, justa y aislada. La misma idea funciona para la clasificación basada en el gusto: elecciones de diseño, selección de candidatos, priorización de contenido.
10. Bucle hasta terminar.
Para tareas con una cantidad de trabajo desconocida, crea agentes en bucle hasta que se cumpla una condición de parada (sin nuevos hallazgos, sin más errores en los registros, teoría verificada), en lugar de ejecutar un número fijo de pasadas.
Este patrón es la respuesta a "sigue hasta que esté realmente terminado":
- Depuración de pruebas inestables: reproduce, formula teorías, pruébalas, hasta que una teoría se sostenga.
- Caza de errores: sigue encontrando errores hasta que una pasada completa devuelva cero.
- Minería de patrones: agrupa, identifica reglas, hasta que no aparezcan nuevos grupos.
Combina este patrón con /goal para establecer un requisito de finalización estricto ("no pares hasta que una teoría funcione") y con /loop si quieres que todo el flujo de trabajo se ejecute en un horario recurrente.
El cuadro y la condición de parada viven en el código; solo la iteración activa permanece en el contexto.
11. Combina patrones para casos de uso reales. Un flujo de trabajo, varios patrones.
Los 6 patrones rara vez aparecen solos. Un flujo de trabajo real combina 2-4 de ellos. La matriz a continuación empareja cada caso de uso del artículo de lanzamiento de Anthropic con los patrones que tiende a usar:
- Migraciones y refactorizaciones. Expandir (un agente por sitio de llamada/prueba fallida en un worktree) → verificación adversarial (un agente separado revisa cada corrección) → bucle hasta terminar. Este es el patrón que Anthropic usó para reescribir Bun de Zig a Rust.
- Investigación profunda (la habilidad /deep-research). Expandir (búsquedas web paralelas) → verificación adversarial (cada afirmación verificada de forma independiente) → sintetizar (un informe citado).
- Verificación profunda de un borrador. Identificar todas las afirmaciones fácticas (un agente) → expandir (un verificador por afirmación, cada agente verifica contra la fuente) → meta-verificador (verifica que las fuentes del verificador sean de alta calidad).
- Ordenar más de 1000 elementos. Torneo (pasos 5-9): comparación por pares, clasificación por cubos o cuadro. Juicio comparativo, nunca puntuación absoluta.
- Memoria y cumplimiento de reglas. Verificador por regla (expandir) → una persona escéptica revisa las reglas mismas para evitar falsos positivos.
- Investigación de causa raíz. Generar teorías a partir de evidencia inconexa (diferentes agentes leen registros, archivos, datos) → panel de verificadores y refutadores para cada teoría → bucle hasta que una sobreviva.
- Triaje a escala. Clasificar y actuar → eliminar duplicados con tickets existentes → intentar la corrección o escalar. Combínalo con /loop para triaje continuo.
- Exploración y gusto (diseño, nombres, opciones de UI). Generar y filtrar (5-20 opciones) → torneo con una rúbrica → clasificar o elegir.
- Evaluaciones ligeras. Ejecutar el candidato en un worktree → agentes de comparación califican contra la rúbrica → refinar y volver a calificar. La misma forma que un torneo pero para calificar, no para clasificar.
La forma correcta de internalizar esto: identifica qué modo de fallo está fallando tu tarea actual, luego elige el patrón que lo prevenga estructuralmente.
Desviación → expandir. Autopreferencia → verificación adversarial. Abierto → bucle hasta terminar. Difícil de puntuar → torneo.
12. Combínalo con /goal, /loop y presupuestos de tokens.
Los flujos de trabajo pueden ser costosos. Tres controles los convierten de "geniales pero costosos" en "una herramienta que ejecuto sin supervisión".
- /goal establece un requisito de finalización estricto. Combínalo con el patrón de bucle: "no pares hasta que una teoría funcione." Sin /goal, un flujo de trabajo se detiene en un punto de finalización suave. Con /goal, itera hasta que se cumpla la condición final real.
- /loop ejecuta todo el flujo de trabajo en un horario recurrente. Úsalo para flujos de trabajo que quieras ejecutar continuamente: triaje, actualizaciones de investigación semanales, verificación recurrente.
- Presupuestos de tokens explícitos. Dile a Claude en la indicación: "usa 10k tokens." Esto establece un límite en la ejecución del flujo de trabajo. Sin un límite, un flujo de trabajo ambicioso puede inflarse a 5–10× los tokens que esperabas.
1> ultracode revisión adversarial rápida de esta suposición:2 "migrar a Postgres elimina nuestro rebalanceo de shards."3 Usa 5k tokens. /goal no pares hasta que tengas4 un contraejemplo o tres confirmaciones independientes.
Citando directamente al equipo de Claude Code: "Las mejores prácticas aún se están desarrollando. Los flujos de trabajo dinámicos a menudo usan más tokens, así que piensa cuidadosamente cuándo y cómo usarlos." La mayoría de las tareas de codificación tradicionales no necesitan un panel de 5 revisores.

Pregúntate: ¿esta tarea realmente necesita más cómputo? Si una sesión regular de Claude Code la terminaría en cinco minutos, no necesitas un flujo de trabajo.
13. Usa el patrón de cuarentena para entradas no confiables.
Cualquier flujo de trabajo que lea contenido público no confiable (tickets de soporte, informes de errores, comentarios de usuarios, datos extraídos) debe asumir que ese contenido podría contener inyección de indicaciones.
La solución: cuarentena. Impide que los agentes que leen el contenido no confiable tomen acciones de alto privilegio. Agentes separados, sin exposición al contenido sin procesar, realizan la acción.

Cualquier flujo de trabajo que procese contenido enviado por el usuario (tickets de soporte, informes de errores, comentarios de clientes, redes sociales), extraiga páginas web públicas o se ejecute contra la salida de una API de terceros.
Si la entrada no fue escrita por ti o un compañero de confianza, ponla en cuarentena. Un agente lector de solo lectura de 30 líneas cuesta casi nada y elimina una clase completa de riesgo de inyección de indicaciones.
14. Guarda flujos de trabajo. Envíalos como Skills.
Una vez que un flujo de trabajo funciona, guárdalo: presiona s en el menú del flujo de trabajo. Los flujos de trabajo guardados van a ~/.claude/workflows. Desde allí tienes dos caminos:
- Mantenerlo local: reutilízalo en tus propios proyectos.
- Enviarlo como Skill: empaqueta el archivo JavaScript dentro de una carpeta Skill, refiérele en SKILL.md, y cualquiera que instale el Skill ejecutará el mismo flujo de trabajo.

Un matiz práctico que vale la pena conocer: cuando empaquetes un flujo de trabajo en un Skill, indícale a Claude que trate el flujo de trabajo como una plantilla, no como un script para ejecutar textualmente.
Eso deja espacio para que Claude adapte la forma del flujo de trabajo a la tarea específica en cuestión, manteniendo la estructura general intacta. Especialmente útil para flujos de trabajo como "verificación profunda" o "triaje" que necesitan flexibilizarse según el caso de uso.
Los errores que desperdician tokens en flujos de trabajo
- Recurrir a un flujo de trabajo cuando una sesión regular de Claude Code sería suficiente. La mayoría de las tareas de codificación tradicionales no necesitan un panel de 5 revisores.
- Sin presupuesto de tokens. Los flujos de trabajo ambiciosos se inflan a 5–10× de lo que esperabas sin un límite explícito.
- Un agente haciendo tanto el trabajo como la verificación. El sesgo de autopreferencia hace que el verificador favorezca al trabajador. Deben estar separados.
- Tratar parallel() y pipeline() como intercambiables. La barrera importa: parallel espera a todos, pipeline transmite.
- Omitir /goal en patrones de bucle. El flujo de trabajo se detiene temprano en el primer punto de finalización suave. /goal fuerza la finalización estricta.
- Dejar que el contenido no confiable llegue al actor. La cuarentena no es opcional una vez que procesas cualquier cosa enviada por el usuario.
- Ordenar con puntuaciones absolutas. El juicio comparativo es más confiable. Usa un torneo.
- Nunca guardar flujos de trabajo que funcionan. Volver a indicar la misma forma cada semana. Guárdalos con s, envíalos como Skill.





