Agent Mentor Learn
Diseñar flujos de trabajo de agentes: de la conversación puntual a la automatización de varios pasos · Lección 2 de 6

Lección 2: Bloques de construcción de un flujo de trabajo: pasos, estado, bifurcaciones y bucles

Objetivos de aprendizaje:

  • Dominar los cuatro bloques de construcción centrales de un flujo de trabajo
  • Entender las dependencias y el paso de datos entre pasos
  • Aprender a diseñar el diagrama de ejecución de un flujo de trabajo

Requisitos: Lección 1: De la conversación al flujo de trabajo | Siguiente: Lección 3 >>

Los flujos de trabajo no son magia, son composición

En la lección anterior vimos que un flujo de trabajo puede coordinar decenas de agentes para terminar una tarea compleja. Pero si abres el script de un flujo de trabajo, descubrirás que es código común y corriente: funciones, bucles, condicionales.

La potencia de un flujo de trabajo viene de combinar cuatro bloques de construcción simples:

  1. Pasos — la unidad básica de trabajo
  2. Estado — los datos que se comparten entre pasos
  3. Bifurcaciones — elegir un camino según una condición
  4. Bucles — repetir una operación similar

Una vez que entiendes estos cuatro bloques de construcción, puedes diseñar un flujo de trabajo de cualquier complejidad.1

Bloque de construcción 1: los pasos

Un paso es la operación atómica de un flujo de trabajo. Cada paso es o bien una llamada a un agente, o bien una función determinista.2

Pasos de agente frente a pasos de función

Cuándo usar un paso de agente:

  • Necesitas entender una entrada difusa (lenguaje natural, datos no estructurados)
  • Necesitas generar contenido creativo (documentación, código, explicaciones)
  • Necesitas emitir un juicio (¿este código tiene un problema de seguridad?)

Cuándo usar un paso de función:

  • Transformación de datos (filtrar, ordenar, formatear)
  • Cálculos (estadísticas, agregación)
  • Comprobaciones condicionales (lógica if-else)
  • Operaciones con archivos (leer, escribir, mover)

Buena práctica: los pasos de agente razonan, los pasos de función calculan. No le pidas al LLM que haga un simple filtrado de un array o que sume números: es lento, caro y poco confiable.2

El contrato de entrada/salida de un paso

Cada paso debería tener un contrato claro de entrada y salida:

Un contrato claro hace que un flujo de trabajo sea fácil de entender y de depurar. Cuando el paso 5 se rompe, ves de inmediato que es porque la salida del paso 4 tenía el formato equivocado.3

Bloque de construcción 2: el estado

El estado son los datos que se comparten entre pasos. Es como la memoria del flujo de trabajo: guarda los resultados intermedios y el progreso de la ejecución.4

Dos tipos de estado

Estado del flujo de trabajo:

  • Toda la información sobre la tarea actual: en qué paso vas, el resultado de cada paso, lo que necesita el paso siguiente
  • Se guarda en variables del script o en una base de datos externa
  • Se pasa entre pasos, pero no entre sesiones

Estado de sesión:

  • El historial de conversación del usuario y sus preferencias
  • Lo gestiona el propio agente; al flujo de trabajo no le hace falta ocuparse de él4

Patrones de gestión del estado

Patrón 1: variables del script (bueno para flujos de trabajo cortos)

Patrón 2: un objeto de estado (bueno para complejidad media)

Patrón 3: almacenamiento externo (bueno para flujos de trabajo de larga duración)

Puntos de control: guarda el estado después de los pasos clave para que el flujo de trabajo pueda reanudarse desde el punto de fallo en lugar de empezar de nuevo.5

Bloque de construcción 3: las bifurcaciones

Una bifurcación elige una ruta de ejecución distinta según una condición.6

Bifurcación simple

Bifurcar según la decisión de un agente

Bifurcación para el manejo de errores

Bloque de construcción 4: los bucles

Un bucle te permite ejecutar la misma operación sobre muchos objetos similares. Esta es la fuente central de la potencia de un flujo de trabajo.6

Bucle secuencial

Bucle paralelo

Aquí, limit = 5 es el tope de concurrencia: ejecutar como máximo 5 a la vez en lugar de disparar los 100 de golpe con Promise.all, lo que abriría demasiadas conexiones o descriptores de archivo.

Bucle con acumulación

Bucle con terminación condicional

Combinar los bloques de construcción: un flujo de trabajo completo

Combinemos estos cuatro bloques de construcción para diseñar un flujo de trabajo de «chequeo de salud de microservicios»:

mermaid
graph TD    A[Inicio] --> B[Listar todos los servicios]    B --> C{¿Más de 10 servicios?}    C -->|Sí| D[Comprobar todos los servicios en paralelo]    C -->|No| E[Comprobar todos los servicios en secuencia]    D --> F[Recolectar resultados]    E --> F    F --> G{¿Hay servicios con fallo?}    G -->|Sí| H[Generar reporte de alerta]    G -->|No| I[Generar reporte de salud]    H --> J[Enviar notificación]    I --> K[Fin]    J --> K

El script correspondiente:

Este flujo de trabajo usa los cuatro bloques de construcción:

  • Pasos: listServices, checkServiceHealth, las llamadas a agent()
  • Estado: el objeto state que guarda el total y las listas de servicios sanos y no sanos
  • Bifurcaciones: paralelo o secuencial según la cantidad de servicios, y el tipo de reporte según el estado de salud
  • Bucles: el bucle paralelo con map, el bucle secuencial con for

Cómo pensar el diseño de un flujo de trabajo

Trabaja hacia atrás desde el final:

  1. ¿Cuál es la salida final? (un reporte, servicios desplegados, código limpio)
  2. ¿Qué entrada necesita el último paso? (datos agregados, resultados validados)
  3. ¿De dónde viene esa entrada? (de la salida del paso anterior)
  4. Repite hasta llegar al inicio (la entrada del usuario o el sistema de archivos)

Detecta las oportunidades de paralelismo:

  • Si varios pasos no dependen entre sí, pueden ejecutarse en paralelo
  • «Haz Y para cada X» casi siempre se puede paralelizar
  • El paralelismo puede llevar diez tareas de 5 minutos de 50 minutos a 5

Haz explícitas las dependencias:


Siguiente: Lección 3: Descomponer una tarea compleja en un flujo de trabajo — estrategias para desglosar sistemáticamente una tarea compleja en los pasos de un flujo de trabajo

Footnotes

  1. MindStudio: Five Claude Code Agentic Workflow Patterns — https://www.mindstudio.ai/blog/claude-code-agentic-workflow-patterns

  2. Mae Capozzi: Building a Multi-Agent Orchestrator — https://maecapozzi.com/blog/building-a-multi-agent-orchestrator 2

  3. AWS Marketplace: Agent Orchestration — https://aws.amazon.com/marketplace/build-learn/ai-agent-learning-series/agent-orchestration

  4. MindStudio: Workflow State vs. Session State — https://www.mindstudio.ai/blog/workflow-state-vs-session-state-ai-agents 2

  5. MachineLearningMastery: 5 Architectural Patterns for Persistent Memory and State in AI Agents — https://machinelearningmastery.com/5-architectural-patterns-for-persistent-memory-and-state-in-ai-agents/

  6. Alex Op: Claude Code Workflows and Deterministic Orchestration — https://alexop.dev/posts/claude-code-workflows-deterministic-orchestration/ 2

Ejercicios

01

Tarea: diseña un flujo de trabajo de «procesamiento de imágenes por lotes». La entrada son 50 imágenes y necesitas: (1) redimensionarlas a 800x600, (2) agregarles una marca de agua, (3) convertirlas al formato WebP.

Nivel 1: Diseñar un flujo de trabajo simple

Requisitos:

  • Dibuja el diagrama de flujo (una descripción en texto también sirve, por ejemplo A → B → C)
  • Indica qué pasos usan funciones y cuáles usan un agente
  • Indica dónde se puede ejecutar en paralelo
  • Escribe la parte central del pseudocódigo (bucle y bifurcación)
Criterios de finalización · marcado local
02

Un flujo de trabajo de «migración de una base de código» necesita: (1) escanear 200 archivos para encontrar las llamadas a la API que hay que migrar, (2) migrar todos los archivos en paralelo, (3) ejecutar las pruebas, (4) si las pruebas fallan, revertir todos los cambios.

Nivel 2: Identificar las necesidades de gestión del estado

Preguntas:

  1. ¿Qué estado necesita guardar este flujo de trabajo? Enumera al menos 3 campos de estado.
  2. ¿Después de qué paso deberías establecer un punto de control? ¿Por qué?
  3. Si el paso 3 (ejecutar las pruebas) falla, ¿qué información de estado necesita el flujo de trabajo para revertir correctamente?
Criterios de finalización · marcado local