Los sistemas modernos de IA están evolucionando más allá de las simples interacciones de instrucción-respuesta. Los agentes de IA actuales pueden realizar razonamientos estructurados de varios pasos, tomar decisiones y coordinar tareas complejas de forma autónoma. Esta capacidad emergente se conoce como un flujo de trabajo, un poderoso cambio en el machine learning donde los agentes operan a través de una serie de pasos lógicos para resolver problemas de manera más efectiva.
En este tutorial, exploraremos cómo crear estos flujos de trabajo agénticos de IA utilizando dos herramientas clave: LangGraph, un marco para construir rutas de razonamiento basadas en gráficos y modelos IBM® Granite, un modelo sólido que complementa esta estructura. Cada paso del flujo de trabajo, denominado "nodo", lo gestiona un agente, normalmente impulsado por modelos de lenguaje de gran tamaño. Estos agentes se mueven entre estados en función de los outputs del modelo o la lógica condicional, formando un gráfico dinámico basado en decisiones.
Para dar vida a estos flujos de trabajo agénticos, analizaremos más de cerca dos componentes esenciales: LangGraph y el modelo Granite.
LangGraph es un potente marco diseñado para agilizar el desarrollo de flujos de trabajo impulsados por IA mediante la representación de modelos de IA como agentes con estado dentro de un gráfico computacional. Permite a los desarrolladores crear sistemas escalables y modulares en los que cada comportamiento o punto de decisión se define como un nodo en el gráfico.
Con LangGraph, puede:
Sistemas multiagente y marcos como LangGraph, cuando se aplican a tareas de IA generativa, suelen estructurar la ejecución de tareas como flujos de trabajo secuenciales o condicionales. Tanto si trabaja con LangChain, modelos IBM Granite, modelos GPT de OpenAI u otras herramientas de inteligencia artificial, LangGraph le ayuda a optimizar su flujo de trabajo para mejorar la escalabilidad y el rendimiento.
LangGraph presenta un enfoque moderno para orquestar las tecnologías de IA al descomponer flujos de trabajo complejos en componentes modulares e inteligentes. A diferencia de la automatización tradicional o la automatización robótica de procesos (RPA), LangGraph permite la ejecución dinámica de tareas conscientes del contexto mediante el uso de lógica y memoria en tiempo real. Estos son los cuatro componentes clave que alimentan este marco:
Juntos, estos componentes permiten a LangGraph transformar la forma en que las organizaciones diseñan y ejecutan flujos de trabajo impulsados por IA, cerrando la brecha entre las herramientas de IA y los procesos empresariales del mundo real.
Granite-4.0-Tiny-Preview, desarrollado por IBM Research, es un modelo de lenguaje de código abierto ligero pero capaz diseñado para resolver problemas complejos y tareas prácticas de procesamiento del lenguaje natural (PLN). Aunque es más pequeño que modelos comerciales como GPT-4, Granite es rápido, eficiente y totalmente compatible con Hugging Face, lo que lo convierte en una excelente opción para los desarrolladores que buscan eficiencia operativa sin sacrificar el rendimiento.
Granite destaca en:
En este tutorial, el modelo Granite desempeña un papel clave en varias etapas del flujo de trabajo agéntico, y respalda tanto la resolución de problemas como la generación de contenido. Su diseño ligero lo hace adecuado para aplicaciones del mundo real en las que la intervención humana puede ser limitada y en las que los patrones de diseño escalables son esenciales para crear soluciones de IA sólidas en diversos conjuntos de datos y proveedores.
En este tutorial, crearemos un flujo de trabajo de agencia que actúe como asistente creativo para escribir guiones cortos animados.
Dada una idea de historia del usuario, el agente:
Este caso de uso está diseñado para mostrar tanto el razonamiento como las capacidades generativas de un modelo de lenguaje, estructurado a través del flujo de trabajo compositivo de LangGraph.
Cada uno de los siguientes pasos se implementa como un nodo LangGraph:
Estos nodos se conectan secuencialmente en un LangGraph, y el modelo se mueve a través de ellos mientras lleva adelante un diccionario de estados mutable.
Este flujo de trabajo logra un equilibrio entre la generación creativa y la planificación estructural. Demuestra:
También se escala bien, puede ampliarlo fácilmente añadiendo pasos de revisión, múltiples generadores de escenas o incluso ramificación basada en caracteres.
Necesita una cuenta de IBM Cloud para crear un proyecto watsonx.ai .
Aunque puede elegir entre varias herramientas, este tutorial le muestra cómo configurar una cuenta de IBM para utilizar un Jupyter Notebook.
Este paso abre un entorno de Notebook donde puede copiar el código de este tutorial. También puede descargar este cuaderno en su sistema local y cargarlo en su proyecto watsonx.ai como activo. Para ver más tutoriales de Granite, consulte la comunidad de IBM Granite. Este tutorial también está disponible en GitHub
Esta celda instala las bibliotecas principales necesarias para utilizar el modelo IBM Granite alojado en Hugging Face:
El
Nota: si está siguiendo este tutorial en un entorno virtual y no tiene Langgraph preinstalado, utilice pip install langgraph para instalarlo en tu entorno local.
Esta celda importa todas las bibliotecas principales necesarias para crear y ejecutar el flujo de trabajo de agencia:
Juntas, estas importaciones preparan el entorno para la interacción del modelo, la estructuración del flujo de trabajo y la presentación del output.
Esta celda carga el modelo de IBM
El
Este paso inicializa eficazmente el modelo Granite como el "motor de razonamiento" detrás de nuestro flujo de trabajo agéntico.
Esta función,
Detalles clave:
Esta función se reutilizará en todo el flujo de trabajo de agencia para invocar el modelo Granite en varios nodos de decisión o generación.
Esta función,
Entrada:
Construcción de instrucciones: la instrucción pide al modelo que:
Generación de texto: la instrucción se transfiere a la función de
Análisis de output: un bucle simple extrae el género y el tono de la respuesta del modelo en función de los prefijos de línea (
Actualización del estado: los valores
Este nodo actúa como un clasificador creativo que permite que los nodos posteriores generen esquemas, estructuras y escenas alineados contextualmente utilizando el género y el tono como parámetros fundamentales.
El
Entrada: la función recibe el diccionario de estado que contiene:
Construcción de instrucciones: se instruye al modelo para que:
Generación de texto: la instrucción se envía a
Actualización de estado: el contorno del gráfico generado se añade al estado bajo la clave
Este nodo traduce la intención creativa abstracta en un boceto narrativo, proporcionando un andamiaje para la estructura detallada en tres actos que sigue a continuación. Garantiza que los nodos posteriores funcionen a partir de una línea de base coherente e imaginativa.
El
Entrada: el nodo toma el diccionario de estado, que ahora incluye:
Construcción de instrucciones: se instruye al modelo para que:
Requisitos de la escena:
Generación de texto:
Actualización del estado: La escena generada se añade al diccionario de estados bajo la
Introduce la inmersión narrativa y la narración visual en el flujo de trabajo. En lugar de limitarse a resumir la historia, este nodo le da vida con detalles sensoriales y emocionales, esenciales para la creación de guiones de cortos animados.
El
Entrada: el nodo espera que el estado
Construcción de instrucciones: el modelo se orienta hacia:
Directrices para el diálogo:
Generación: la
Actualización del estado: El diálogo se guarda en el estado bajo la
Esta función auxiliar
Propósito de la función: envolver un nodo (por ejemplo, generate_scene_node) con un decorador que registra:
Parámetros:
Envoltorio interno:
Devuelve: una versión modificada de la función que añade mensajes de progreso pero que, por lo demás, se comporta de forma idéntica.
A medida que crecen los flujos de trabajo, es importante realizar un seguimiento de qué paso se está ejecutando, especialmente si algunos pasos (como la generación o la edición) tardan más o pueden causar problemas como la sobrecarga de memoria. Este contenedor de progreso garantiza la transparencia y es útil para la depuración y el diagnóstico en tiempo de ejecución.
Esta celda define la lógica del flujo de trabajo para generar una breve historia animada mediante LangGraph, un marco de programación composicional basado en grafos diseñado para flujos de trabajo LLM. Cada paso del diagrama representa una tarea creativa que se ejecuta en una secuencia específica para producir el guion final.
Componentes del flujo de trabajo:
Registro de nodos con seguimiento del progreso: cada paso (selección de género, generación de esquemas, escritura de escenas, escritura de diálogos) se agrega como un nodo con el contenedor with_progress() -
Este enfoque garantiza que cada nodo registre su tiempo de ejecución y su progreso cuando se ejecute.
Fases del flujo de trabajo (secuenciación de nodos): la secuencia del proceso creativo está claramente definida:
Esta estructura permite un flujo de trabajo LLM modular, legible y depurable. Cada etapa del proceso creativo se puede aislar, perfilar por separado y, posteriormente, intercambiar o ampliar (por ejemplo, añadiendo un paso de "revisar escena" o un nodo de "resumir resultado"). El
Esta celda de código final es donde se ejecuta el flujo de trabajo creativo completo y se muestran los resultados de cada etapa de la generación de la historia.
Visualización de resultados: el diccionario de estado final ahora contiene claves pobladas por varios nodos:
Esta sección demuestra cómo la intención del usuario se transforma en un miniscript completo a través de un flujo de trabajo LLM modular y paso a paso. Es una canalización creativa integral que es interactiva, interpretable y personalizable.
Nota: el código tardará aproximadamente entre 15 y 17 minutos en ejecutarse si utiliza GPU o TPU. En un entorno virtual local, se tardará entre 65 y 70 minutos en ejecutarse y generar el output en función de la infraestructura utilizada para ejecutar la cesión.
Entendamos cómo el sistema transforma la instrucción del usuario: "quiero escribir una historia de fantasía divertida para niños sobre un dragón perdido que encuentra su hogar", en una historia animada completa. Cada paso se basa en el anterior, guiado por los nodos creativos del flujo de trabajo e impulsado por el modelo Granite.
1. Género y tono. El flujo de trabajo comienza interpretando la instrucción del usuario: quiero escribir una historia de fantasía divertida para niños sobre un dragón perdido que encuentra su hogar. Basándose en esta entrada, select_genre_node clasifica correctamente la narrativa como fantasía divertida e identifica el tono encantador y conmovedor apropiado. Este resultado es preciso y contextual, ya que el uso de frases como "divertida", "para niños" y "dragón perdido que encuentra su hogar" indica claramente un estilo narrativo mágico pero amable. El género y el tono actúan como parámetros fundacionales que dan forma a cada paso de generación posterior en el flujo de trabajo.
2. Esquema de la trama y descripciones de los personajes. En el próximo paso, se pide al modelo que cree un esquema argumental basado en el género identificado, el tono y la idea original del usuario. El output no solo incluye un resumen de la historia de 3 a 5 frases, sino que también incluye descripciones de caracteres adicionales, probablemente debido a la fuga de la instrucción o al formato de instrucciones retenido de iteraciones anteriores.
El argumento gira en torno a una niña llamada Lily que descubre a un dragón herido y le ayuda a regresar al bosque encantado con la ayuda de un viejo herborista. Esta historia refleja exactamente la intención del usuario: centrarse en un viaje mágico para niños con matices emocionales sobre la curación, la pertenencia y la amistad. Los bocetos de los personajes del dragón, Lily y el herborista añaden profundidad, y transforman una idea vaga en un concepto estructurado con roles, personalidades y responsabilidades narrativas definidos. Este paso garantiza que la historia pase de la intención abstracta a una estructura tangible adecuada para la adaptación cinematográfica.
3. Escena clave. Dado el esquema completo de la trama, el
El momento elegido es cuando Lily atiende al dragón herido en el bosque encantado, y establece una relación emocional y un entendimiento mutuo entre los personajes. Este momento es crítico, ya que marca un punto de inflexión en la historia hacia el regreso del dragón a casa. La escena es rica en imágenes y emociones, y se adhiere a las restricciones "caprichosas" y "conmovedoras", a la vez que es visualmente expresiva, perfectamente adecuada para un formato animado corto.
La capacidad del modelo para mantener la coherencia de tono y género en todas las etapas demuestra el valor del flujo de trabajo de paso de estado de LangGraph y las capacidades de razonamiento del modelo Granite.
4. Diálogo en formato de guión. Por último, el
Cada etapa del flujo de trabajo traduce la instrucción original ("una extravagante historia de fantasía para niños sobre un dragón perdido que encuentra su hogar") en un output estructurado, creativo y expresivo. Desde la selección del género hasta el formato de los diálogos, el sistema construye de forma incremental un arco narrativo coherente. El marco LangGraph garantiza que las transiciones entre tareas estén conectadas lógicamente, y el modelo IBM Granite permite la generación de texto sensible al contexto con un tono coherente. El resultado es una historia corta de animación compacta y lista para la pantalla que surge completamente de una entrada de usuario de una sola línea, lo que demuestra el poder práctico de los flujos de trabajo de agencia en aplicaciones creativas de IA.
Para que la experiencia de contar historias sea aún más atractiva, he aquí una sencilla visualización basada en HTML que formatea a la perfección los elementos generados de la historia: género, tono, trama, escena y diálogo. Además, con un solo clic, puede descargar todo el script como archivo de texto para usarlo o compartirlo en el futuro. ¡Demos vida a la historia en la pantalla!
Este tutorial utiliza el modelo Granite-4.0-Tiny-Preview para generar texto. Aunque es uno de los modelos más pequeños de la familia Granite, sigue necesitando un entorno con GPU para funcionar de manera eficiente, sobre todo cuando se ejecutan varios nodos en un flujo de trabajo LangGraph.
Configuración recomendada:
Notas de rendimiento:
Si está ejecutando este tutorial en un entorno notebook alojado (por ejemplo, IBM watsonx.ai o Google Colab Pro), asegúrese de que la GPU esté habilitada en la configuración de tiempo de ejecución.
Para entornos de bajos recursos, considere:
En este tutorial, hemos creado un flujo de trabajo modular y agentivo para la narración de historias utilizando LangGraph y el modelo lingüístico Granite-4.0-Tiny-Preview de IBM. Partiendo de una simple instrucción creativa, construimos un proceso paso a paso que clasifica el género y el tono, genera un esquema de la trama, escribe una escena clave y termina con un diálogo al estilo de un guion cinematográfico. En el camino, demostramos cómo:
Este marco de trabajo no solo es muy útil para escribir guiones, sino también para un montón de casos creativos o para organizar tareas. Con solo unos pocos nodos, puedes crear un asistente de escritura en miniatura capaz de convertir una idea descabellada en una historia lista para ser un guion.
Ya sea desarrollador, narrador o investigador, este tutorial le ofrece una base práctica para explorar la ingeniería de flujos de trabajo con LLM en ámbitos creativos.
¿Listo para crear sus propios agentes? Deje fluir la creatividad con los modelos IBM Granite e IBM ®watsonx Orchestrate.
Cree, implemente y gestione potentes asistentes y agentes de IA que automaticen flujos de trabajo y procesos con IA generativa.
Construya el futuro de su empresa con soluciones de IA en las que puede confiar.
Los servicios de IA de IBM Consulting ayudan a reinventar la forma de trabajar de las empresas usando IA para la transformación.
1 Lang Cao. 2024. GraphReason: Enhancing Reasoning Capabilities of Large Language Models through A Graph-Based Verification Approach. En Actas del 2.º taller sobre razonamiento en lenguaje natural y explicaciones estructuradas (@ACL 2024), páginas 1–12, Bangkok, Tailandia. Asociación de Lingüística Computacional.