Saltar al contenido
Explorar conocimiento

patrón · intermedio · 4 min de lectura

Agentic Workflows

Los workflows agénticos estructuran tareas multi-paso donde un modelo de lenguaje decide acciones, llama herramientas, itera sobre resultados y coordina con humanos o sistemas, combinando flexibilidad con control.

No requiere conocimientos previos.

Alcance en breve

Cubre

  • agentic workflows as structured multi-step processes driven by LLM decisions
  • patterns: chaining, routing, parallelization, orchestrator-workers, evaluator-optimizer
  • human-in-the-loop and escalation boundaries
  • practical considerations: error handling, observability, cost, and latency

No cubre

  • single-model prompt chains without state
  • low-level implementation details of specific frameworks
  • fine-tuning or training models for workflow tasks

Supone

  • The reader understands AI agents, tool calling, and basic orchestration concepts.

Resumen

Un workflow agéntico es un proceso estructurado donde un modelo de lenguaje toma decisiones dentro de un flujo definido: encadena pasos, bifurca según condiciones, paraleliza tareas, delega a sub-agentes o evalúa su propia salida en ciclos de mejora. A diferencia de un agente libre, un workflow tiene una estructura más predecible y controlable.

Los patrones comunes incluyen: chaining (cada paso alimenta al siguiente), routing (clasifica y deriva a un handler especializado), parallelization (ejecuta tareas independientes simultáneamente), orchestrator-workers (un coordinador delega a workers especializados) y evaluator-optimizer (un generador produce y un evaluador critica hasta alcanzar calidad).

Alcance y supuestos

Este paquete cubre patrones de workflows agénticos, cuándo usarlos, y cómo integrar humanos en el loop. Incluye chaining, routing, parallelization, orchestrator-workers y evaluator-optimizer.

No cubre implementaciones específicas de frameworks (LangGraph, CrewAI), fine-tuning de modelos, ni teoría de procesos de negocio (BPMN). Asume que entiendes agentes IA, tool calling y orquestación básica.

Modelo mental

Piensa en un workflow agéntico como una fábrica con supervisores. Cada estación de trabajo hace una tarea específica. El supervisor (LLM) decide qué pieza va a qué estación, si necesita volver a una estación anterior, o si el producto final está listo.

La diferencia con una línea de ensamblaje tradicional es que el supervisor puede cambiar la ruta según lo que observa. No sigue un plano fijo; adapta el proceso al producto real que está viendo.

Uso práctico

  • ✅ Chaining para pipelines secuenciales: extraer texto → resumir → traducir.
  • ✅ Routing para clasificar requests y derivar a handlers especializados.
  • ✅ Parallelization para tareas independientes como auditar código con múltiples criterios simultáneos.
  • ✅ Orchestrator-workers para investigación donde un coordinador asigna tareas de búsqueda.
  • ✅ Evaluator-optimizer para generación de contenido que requiere revisión antes de publicar.
  • ❌ Workflows agénticos para tareas que un solo prompt resuelve: agregar compleja innecesaria.

Ejemplo trabajado: generación de documentación con evaluator-optimizer

Supón que necesitas generar documentación técnica de una API. El patrón evaluator-optimizer itera hasta alcanzar calidad:

type DocResult = { content: string; quality: number };

async function generateDocs(spec: string, maxIterations = 3): Promise<DocResult> {
  let draft = "";
  let quality = 0;

  for (let i = 0; i < maxIterations; i++) {
    // Generator: produce o mejora el borrador
    draft = await llm.complete({
      prompt: i === 0
        ? `Genera documentación técnica para esta API spec:\n${spec}`
        : `Mejora esta documentación según la retroalimentación:\n\n${draft}\n\nRetroalimentación: ${feedback}`,
    });

    // Evaluator: puntúa calidad del 1 al 10
    const evalResult = await llm.complete({
      prompt: `Evalúa esta documentación del 1 al 10 en claridad, completitud, ejemplos y estructura. Devuelve solo el número:\n\n${draft}`,
    });

    quality = parseInt(evalResult.trim());

    if (quality >= 8) break;

    // Feedback para la siguiente iteración
    feedback = await llm.complete({
      prompt: `¿Qué falta para que esta documentación sea excelente? Sé específico:\n\n${draft}`,
    });
  }

  return { content: draft, quality };
}

Este patrón asegura calidad sin supervisión humana constante. El costo es N llamadas en vez de 1; el beneficio es un resultado consistentemente mejor que una sola pasada.

Evidencia

Fuentes citadas