Nota del editor: Claude Code está pasando de ser un asistente de código a convertirse en un banco de trabajo de agentes orquestables.
Los workflows (flujos de trabajo) presentados en este artículo tienen como valor central permitir que Claude ya no piense y actúe únicamente dentro de la misma ventana de contexto, sino que pueda generar dinámicamente un marco de ejecución para la tarea: desglosarla, asignar subtareas a agentes secundarios, procesar en paralelo, verificar cruzadamente, iterar cíclicamente, e incluso hacer que diferentes agentes compitan entre sí, para finalmente sintetizar los resultados.
Esto significa que los casos de uso de Claude Code se están expandiendo claramente. Ya no solo es adecuado para migración de código, refactorización, reproducción de pruebas y revisión de código, sino también para tareas no técnicas como investigación profunda, verificación de hechos, filtrado de currículums, análisis post-mortem de incidentes, documentación de reglas, evaluación de planes de negocio o brainstorming de nombres. Muchos trabajos complejos son esencialmente similares a la programación: requieren descomponer problemas, aislar contextos, verificar hipótesis, manejar muchos detalles y elegir entre múltiples caminos posibles.
Los workflows dinámicos intentan resolver precisamente varios problemas comunes de los modelos de lenguaje extensos en tareas largas: la "pereza del agente" (detenerse prematuramente y anunciar la finalización a mitad de camino), el "sesgo de autopreferencia" (tendencia a validar sus propias conclusiones) y la "deriva del objetivo" (alejarse gradualmente del objetivo original tras múltiples rondas de ejecución). Al asignar la tarea a múltiples instancias de Claude con contextos independientes, transforma tareas complejas de una "maratón de un solo agente" en una "colaboración de múltiples agentes".
Por supuesto, los workflows tampoco son una solución universal. Suelen consumir más tokens y no son necesariamente adecuados para cada tarea de programación común. Pero marcan una dirección importante: la futura competencia entre herramientas de IA podría no depender solo de cuán inteligente sea un modelo individual, sino de su capacidad para organizar, en torno a objetivos complejos, un proceso de ejecución fiable, reutilizable y auditable.
A continuación, el artículo original:
Aunque el marco de ejecución predeterminado de Claude Code está construido para programación, también es aplicable a muchos otros tipos de tareas. Resulta que muchas tareas son estructuralmente similares a tareas de programación. Sin embargo, para que ciertos tipos de tareas específicas rindan al máximo, aún necesitamos construir marcos de ejecución personalizados sobre Claude Code, como investigación, análisis de seguridad, colaboración en equipo de agentes o revisión de código.
Los workflows (flujos de trabajo) te permiten crear dinámicamente marcos de ejecución, permitiendo a Claude resolver de forma más nativa los problemas mencionados anteriormente, y muchos más, dentro de Claude Code. También puedes compartir y reutilizar estos workflows con otros.
En este artículo, compartiré mis experiencias y aprendizajes iniciales usando workflows, para ayudarte a aprovechar al máximo su potencial.
Sin embargo, es importante señalar que las mejores prácticas aún se están formando. Los flujos de trabajo dinámicos suelen consumir más tokens, por lo que debes considerar cuidadosamente cuándo y cómo usarlos.
Nota: Este artículo también se publica en el Claude Blog.
Ejemplos de Prompt
Antes de entrar en detalles técnicos, me gustaría dar algunos ejemplos de prompt para ayudarte a comprender las posibilidades de los workflows:
"Esta prueba falla aproximadamente 1 de cada 50 ejecuciones. Configura un workflow para reproducirla, proponer hipótesis y realizar pruebas adversariales en diferentes worktrees. /goal No pares hasta que una hipótesis sea verificada."
"Usa un workflow para revisar mis últimas 50 sesiones, extraer las correcciones que repito y convertir estos problemas recurrentes en reglas para CLAUDE.md."
"Usa un workflow para revisar los últimos seis meses del canal #incidents en Slack y encontrar las causas raíz que aparecen repetidamente pero de las que nadie ha creado un ticket."
"Ejecuta un workflow con mi plan de negocio, haciendo que diferentes agentes lo analicen desde la perspectiva de un inversor, un cliente y un competidor."
"Aquí hay una carpeta con 80 currículums. Usa un workflow para clasificarlos según los requisitos para un puesto backend y verifica los diez primeros. Usa la herramienta AskUserQuestion para consultarme y ayudarte a establecer los criterios de evaluación."
"Necesito poner nombre a esta herramienta CLI. Usa un workflow para hacer un brainstorming de opciones y luego seleccionar las tres mejores mediante un mecanismo de torneo."
"Usa un workflow para renombrar nuestro modelo User a Account en todas partes."
"Lee el borrador de mi entrada de blog y usa un workflow para verificar cada afirmación técnica contra la base de código. No quiero publicar nada incorrecto."
Cómo funcionan los flujos de trabajo dinámicos
Un flujo de trabajo dinámico ejecuta un archivo JavaScript que contiene funciones especiales para generar y coordinar subagentes.
Los flujos de trabajo dinámicos también incluyen funciones estándar de JavaScript, como JSON, Math y Array, para procesar datos.
Es especialmente notable que un flujo de trabajo dinámico puede decidir qué modelo usa un agente y si los subagentes se ejecutan en su propio worktree. Esto permite a Claude elegir autónomamente el nivel de inteligencia y grado de aislamiento requeridos por la tarea.
Si un workflow se interrumpe, por ejemplo por una acción manual del usuario o al salir del terminal, al recuperar la sesión, el workflow puede reanudarse desde el punto de interrupción.
Por qué se necesitan flujos de trabajo dinámicos
Cuando dejas que el marco de ejecución predeterminado de Claude Code maneje una tarea, necesita planificar y ejecutar dentro de la misma ventana de contexto. Para muchas tareas de programación, esto es muy efectivo, pero en tareas de larga duración, altamente paralelas o altamente estructuradas y adversariales, a veces falla.
La razón es que cuanto más tiempo Claude maneja una tarea compleja en una sola ventana de contexto, más propenso es a mostrar ciertos modos de fallo específicos:
Agentic laziness (pereza del agente): se refiere a cuando Claude, al manejar una tarea particularmente compleja y compuesta por múltiples partes, se detiene prematuramente antes de estar realmente terminada, declarando la tarea como completada habiendo logrado solo un progreso parcial. Por ejemplo, en una revisión de seguridad que solo ha procesado 20 de 50 elementos, anuncia que ha terminado.
Self-preferential bias (sesgo de autopreferencia): se refiere a la tendencia de Claude a favorecer sus propios resultados o hallazgos, especialmente cuando se le pide que verifique o evalúe su propio output según algún criterio.
Goal drift (deriva del objetivo): se refiere a la disminución gradual en la fidelidad al objetivo original durante múltiples rondas de ejecución, especialmente después de que el contexto se comprima. Cada resumen provoca una pérdida de información, y algunos detalles, como casos extremos o restricciones del tipo "no hagas X", pueden perderse.
Crear un workflow ayuda a mitigar estos problemas porque puede orquestar múltiples instancias de Claude independientes, cada una con su propia ventana de contexto, enfocándose en tareas aisladas y con objetivos claros.
Flujos de trabajo dinámicos vs. estáticos
Es posible que ya hayas creado workflows estáticos a través del Claude Agent SDK o claude -p para coordinar múltiples instancias de Claude Code.
Pero debido a que los workflows estáticos necesitan cubrir varios casos extremos, suelen ser más genéricos. Con la llegada de Claude Opus 4.8 y los workflows dinámicos, Claude es ahora lo suficientemente inteligente como para escribir un marco de ejecución a medida para tu caso de uso concreto.
Patrones prácticos al usar flujos de trabajo dinámicos
Puedes pedirle directamente a Claude que cree un flujo de trabajo dinámico, o usar la palabra desencadenante "ultracode" para asegurarte de que Claude Code cree un workflow.
Sin embargo, si construyes un modelo mental sobre cómo funcionan los flujos de trabajo dinámicos, te resultará más fácil juzgar cuándo deberías usarlos y también guiar a Claude mediante prompts.
Cuando Claude construye workflows, suele usar y combinar los siguientes patrones:
Clasificar y ejecutar: Usa un agente clasificador para determinar el tipo de tarea y luego enrutarla a diferentes agentes o comportamientos. También puedes usar un clasificador al final del flujo para juzgar el resultado.
Abanico y sintetizar: Divide una tarea en múltiples pasos más pequeños, cada uno manejado por un agente, y luego sintetiza los resultados. Es especialmente adecuado cuando la tarea contiene muchos subpasos pequeños, o cuando cada paso necesita una ventana de contexto limpia para evitar interferencias o contaminación cruzada. El paso de síntesis actúa como una "barrera": espera a que todos los agentes del abanico terminen y luego combina sus salidas estructuradas en un único resultado.
Verificación adversarial: Por cada agente generado, ejecuta un agente independiente que verifique adversarialmente su output según un conjunto de criterios o reglas.
Generar y filtrar: Genera una gran cantidad de ideas alrededor de un tema, luego filtra según criterios de evaluación o procesos de verificación, elimina duplicados y devuelve solo las ideas de mayor calidad que hayan pasado la prueba.
Torneo: En lugar de dividir el trabajo, haz que los agentes compitan entre sí. Genera N agentes, haz que intenten completar la misma tarea usando métodos diferentes. Luego, un agente evaluador, guiado por un prompt o modelo, compara los resultados en enfrentamientos de a pares hasta elegir un ganador.
Ciclo hasta completar: Para tareas con una carga de trabajo desconocida, en lugar de establecer un número fijo de rondas, haz un ciclo generando agentes hasta que se cumpla una condición de parada, como que no surjan nuevos hallazgos o que no aparezcan más errores en los registros.
Casos de uso
Puedes pensar de forma más creativa sobre cuándo y cómo hacer que Claude Code cree flujos de trabajo dinámicos. He descubierto que los workflows a veces son incluso más útiles en trabajos no técnicos.
Migración y refactorización
Bun usó workflows para reescribirse de Zig a Rust. Puedes leer la publicación de Jarred en X para conocer el proceso.
La clave es dividir la tarea en una serie de pasos a procesar, como puntos de llamada, pruebas que fallan, módulos, etc. Inicia un subagente en un worktree para cada tarea de reparación, que la complete; luego, que otro agente realice una revisión adversarial y finalmente fusiona los resultados. Puedes considerar indicar explícitamente al agente que no use comandos que consuman muchos recursos, para así maximizar el paralelismo sin agotar los recursos de la máquina local.
Investigación profunda
Publicamos una habilidad de investigación profunda (/deep-research) en Claude Code, que utiliza un flujo de trabajo dinámico. Específicamente, despliega búsquedas web en abanico, extrae fuentes, realiza verificaciones adversariales de afirmaciones relevantes y sintetiza un informe con citas.
Pero este tipo de investigación no es solo para búsquedas web. Por ejemplo, también podrías hacer que Claude compile un informe de estado a partir del contexto de Slack, o investigue cómo funciona una funcionalidad explorando en profundidad la base de código.
Verificación profunda
Por otro lado, si tienes un informe y deseas verificar cada afirmación fáctica y fuente citada en él, puedes generar un workflow: primero, un agente identifica todas las afirmaciones fácticas; luego, para cada afirmación, inicia un subagente que la verifique en detalle. También puedes hacer que un agente validador revise a los subagentes responsables de rastrear fuentes, asegurando que la calidad de las fuentes sea lo suficientemente alta.
Clasificación
Puedes tener un conjunto de elementos que deseas ordenar según algún criterio cualitativo, y crees que Claude Code es bueno evaluando ese criterio. Por ejemplo, ordenar tickets de soporte por gravedad del bug.
Pero si intentas ordenar más de 1000 líneas en un solo prompt, la calidad disminuirá y la ventana de contexto no podrá contenerlo. Es mejor ejecutar un mecanismo de torneo, estableciendo una cadena de agentes de comparación por pares, porque los juicios comparativos suelen ser más fiables que las puntuaciones absolutas; o primero clasificar en paralelo en cubos y luego fusionar resultados. Cada comparación la realiza un agente independiente, por lo que un ciclo determinista puede mantener la estructura del torneo, y solo el orden de ejecución actual necesita permanecer en el contexto.
Memoria y cumplimiento de reglas
Si tienes un conjunto de reglas específicas que Claude, incluso al verlas en CLAUDE.md, a menudo pasa por alto o no aplica bien, puedes crear un workflow que liste esas reglas y haga que un agente validador las verifique una por una: un agente validador por regla. También ayuda crear un subagente con una personalidad de "escéptico" para revisar si las reglas son razonables, ayudando así a evitar falsos positivos excesivos.
También puedes hacerlo a la inversa: extraer tus sesiones recientes y comentarios de revisión de código para encontrar las correcciones que repites; hacer que agentes en paralelo agrupen estos problemas; luego verificar adversarialmente cada regla candidata para determinar si realmente prevendría un error real; finalmente, refinar las reglas que pasen el filtro de vuelta a CLAUDE.md.
Investigación de causa raíz
La forma más efectiva de depurar es proponer varias hipótesis mutuamente independientes y probarlas una por una. Pero si usas solo una ventana de contexto, Claude puede caer en el sesgo de autopreferencia.
Un workflow puede prevenir esto estructuralmente: puede iniciar múltiples agentes, haciendo que generen hipótesis basadas en evidencias que no se superpongan. Por ejemplo, que diferentes agentes examinen registros, archivos y datos por separado. Luego, cada hipótesis puede ser revisada por un grupo de verificadores y refutadores.
Esto no se aplica solo al código. Los workflows también se pueden usar para análisis de ventas, como "¿por qué bajaron las ventas en marzo?"; para ingeniería de datos, como "¿por qué falló este pipeline?"; o para cualquier análisis post-mortem.
Triaje a gran escala
Cada equipo tiene colas de soporte, informes de bugs u otros trabajos pendientes que no pueden ser manejados completamente por humanos. Un workflow de triaje puede clasificar cada elemento, eliminar duplicados con problemas ya rastreados y tomar acciones. Esto puede significar intentar una reparación o escalarlo para que lo maneje un usuario humano.
Para los flujos de trabajo de triaje, un patrón útil es la cuarentena (quarantine). Es decir, prohibir a los agentes que leen contenido público no confiable que ejecuten operaciones con altos privilegios; las operaciones con altos privilegios deben ser realizadas por agentes dedicados específicamente a la acción.
Puedes combinar workflows de triaje con /loop, haciendo que Claude ejecute continuamente este tipo de tareas.
Exploración y juicios de gusto
Los workflows son útiles cuando necesitas explorar diferentes caminos de solución, especialmente en tareas que implican juicios estéticos como diseño o nombramiento, y que pueden beneficiarse de un conjunto de criterios de evaluación.
Puedes hacer que Claude explore una gran cantidad de opciones y darle al agente revisor un conjunto de criterios sobre "cómo es una buena opción". La tarea se completa cuando el agente revisor considera que los resultados cumplen los criterios. Las diferentes opciones también pueden clasificarse o filtrarse según estos criterios mediante un mecanismo de torneo.
Evals (evaluaciones)
Puedes ejecutar evals ligeras para tareas específicas iniciando agentes independientes en un worktree, y luego agentes de comparación que evalúen y puntúen outputs específicos según criterios de evaluación. Por ejemplo, puedes evaluar y mejorar una habilidad que hayas creado para ver si cumple ciertos estándares.
Enrutamiento de modelo y nivel de inteligencia: Puedes crear un agente clasificador ajustado para tu tarea que decida qué modelo usar. Esto es útil cuando la tarea involucra muchas llamadas a herramientas y realizar una investigación previa puede ayudar a identificar el modelo más adecuado.
Por ejemplo, para la tarea "explica cómo funciona el módulo de autenticación", el modelo más adecuado depende de cuántos archivos haya en el módulo de autenticación y de cómo sea la estructura de la base de código. El agente clasificador puede realizar primero esta investigación y luego, según la complejidad esperada, enrutar la tarea a Sonnet o a Opus.
Cuándo NO usar flujos de trabajo dinámicos
Los workflows aún son algo nuevo. Aunque en muchos casos de uso pueden ofrecer resultados muy superiores a los métodos convencionales, no todas las tareas lo necesitan y pueden aumentar significativamente el consumo de tokens.
Es mejor usar workflows en tareas que expandan los límites de las capacidades de Claude Code de nuevas formas. Para tareas de programación convencionales, puedes preguntarte primero: ¿realmente necesita esta tarea más recursos computacionales? Por ejemplo, la mayoría de las tareas de programación tradicionales no necesitan un panel de 5 revisores.
Consejos para construir flujos de trabajo dinámicos
Diseño de prompts
Al escribir prompts para flujos de trabajo dinámicos, cuantos más detalles proporciones, mejor suele funcionar, especialmente usando las técnicas específicas mencionadas anteriormente.
Los workflows no son solo para grandes tareas. También puedes sugerir al modelo que use un "quick workflow" (flujo de trabajo rápido). Por ejemplo, puedes crear un proceso rápido de revisión adversarial para verificar una hipótesis.
Combinar con /goal y /loop
Cuando uses workflows que puedan ejecutarse repetidamente, como flujos de triaje, investigación o verificación, puedes combinarlos con /loop para que se ejecuten a intervalos regulares; y usar /goal para establecer requisitos de finalización estrictos.
Presupuesto de uso de tokens
Puedes establecer un presupuesto explícito de uso de tokens para el flujo de trabajo dinámico, limitando así la cantidad de tokens consumidos por la tarea. Puedes escribir en el prompt algo como "use 10k tokens", lo que establecerá el límite en 10k tokens.
Guardar y compartir flujos de trabajo dinámicos
Puedes guardar workflows presionando "s" en el menú de workflows. Puedes confirmarlos en ~/.claude/workflows o distribuirlos a través de habilidades (skills).
Si deseas compartirlos a través de una habilidad, puedes colocar el archivo JavaScript del workflow en la carpeta de la habilidad y hacer referencia a él en SKILL.md. Para mayor flexibilidad, también puedes indicarle a Claude que trate los workflows en la habilidad como plantillas, no como scripts que deben ejecutarse palabra por palabra.
Un mundo nuevo
Los workflows son una nueva forma útil de extender Claude Code. Te animo a verlos como un punto de partida. Aún hay mucho por explorar sobre cómo usarlos mejor. Comparte con nosotros lo que descubras.
Thariq Shihipar y Sid Bidasaria (@sidbid) son miembros del equipo técnico de Anthropic, a cargo del trabajo relacionado con Claude Code.
















