Los sistemas modernos de IA están evolucionando más allá de las simples interacciones de instrucción-respuesta. Los agentes de IA de hoy en día pueden realizar un razonamiento estructurado de varios pasos, la toma de 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 tales flujos de trabajo de agentes de IA mediante dos herramientas clave: LangGraph, un marco para construir rutas de razonamiento basadas en gráficos y modelos IBM® Granite, un modelo robusto que complementa esta estructura. Cada paso del flujo de trabajo, llamado "nodo", es manejado por un agente, generalmente impulsado por modelos de lenguaje de gran tamaño. Estos agentes se mueven entre estados en función de los resultados del modelo o la lógica condicional, formando un gráfico dinámico basado en decisiones.
Para dar vida a estos flujos de trabajo de agentes, analizaremos más de cerca dos componentes esenciales: LangGraph y el modelo Granite.
LangGraph es una infraestructura potente diseñada 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 modulares escalables 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 (IA gen), suelen estructurar la ejecución de tareas como flujos de trabajo secuenciales o condicionales. Ya sea que esté trabajando con LangChain, modelos IBM Granite, modelos GPT de OpenAI u otras herramientas de inteligencia artificial, LangGraph ayuda a optimizar su flujo de trabajo para una mejor escalabilidad y rendimiento.
LangGraph introduce un enfoque moderno para orquestar tecnologías de IA mediante el desglose de 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 impulsan esta infraestructura:
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 de lenguaje natural (PLN). Si bien es más pequeño que los 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 se destaca en:
En este tutorial, el modelo Granite desempeña un papel clave en varias etapas del flujo de trabajo agentivo, apoyando tanto la resolución de problemas como la generación de contenido. Su diseño liviano lo hace adecuado para aplicaciones del mundo real donde la intervención humana puede ser limitada y donde 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 agente que actúa 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 estado 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 agregando 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 en watsonx.ai .
Si bien puede elegir entre varias herramientas, este tutorial lo guiará a través de cómo configurar una cuenta de IBM para usar un Jupyter Notebook.
Este paso abre un entorno de notebook donde puede copiar el código de este tutorial. También puede descargar este Notebook 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:
Hay
Nota: Si está ejecutando este tutorial en un entorno virtual y no tiene langgrapg preinstalado, use pip install langgraph para instalarlo en su entorno local.
Esta celda importa todas las bibliotecas principales necesarias para crear y ejecutar el flujo de trabajo de los agentes:
En conjunto, estas importaciones preparan el entorno para la interacción del modelo, la estructuración del flujo de trabajo y la presentación de resultados.
Esta celda carga IBM
Hay
Este paso inicializa eficazmente el modelo Granite como el "motor de razonamiento" detrás de nuestro flujo de trabajo de agentes.
Esta función,
Detalles clave:
Esta función se reutilizará en todo el flujo de trabajo agentivo 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 pasa al
Análisis de salida: 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 de estado: la información extraída
Este nodo actúa como clasificador creativo, lo que permite que los nodos posteriores generen esquemas, estructuras y escenas alineados contextualmente mediante el uso del género y el tono como parámetros fundacionales.
Hay
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 agrega al estado bajo la clave
Este nodo traduce la intención creativa abstracta en un esbozo narrativo, proporcionando un andamio para la estructura detallada de tres actos que sigue. Garantiza que los nodos descendentes funcionen desde una línea de base coherente e imaginativa.
Hay
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 de estado: la escena generada se agrega al diccionario de estado bajo el
Introduce la inmersión narrativa y la narración visual en el flujo de trabajo. En lugar de simplemente resumir la historia, este nodo le da vida con detalles sensoriales y emocionales, esenciales para escribir guiones de cortos animados.
Hay
Entrada: el nodo espera el estado
Construcción de instrucción: el modelo se guía para:
Pautas para el diálogo:
Generación: La
Actualización de estado: el cuadro de diálogo se guarda en el estado bajo el
Esta función auxiliar
Propósito de la función: envolver un nodo (por ejemplo, generar_nodo_escena) con un decorador que registre:
Parámetros:
Envoltura interna:
Devoluciones: una versión modificada de la función que agrega mensajes de progreso pero que, por lo demás, se comporta de manera 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 sobrecarga de memoria. Este contenedor de progreso garantiza la transparencia y es útil para la depuración y el diagnóstico del tiempo de ejecución.
Esta celda define la lógica del flujo de trabajo para generar una historia corta animada mediante LangGraph, un marco de programación basado en gráficos compositivos diseñado para flujos de trabajo LLM. Cada paso del gráfico representa una tarea creativa y se ejecutan en una secuencia específica para producir el guión final.
Componentes del flujo de trabajo:
Registro de nodos con seguimiento de 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 progreso cuando se ejecute.
Perímetros del flujo de trabajo (secuenciación de nodos): la secuencia del pipeline creativo está claramente definida:
Esta estructura permite un flujo de trabajoLLM modular, legible y depurable. Cada etapa de su proceso creativo está aislada, se puede perfilar por separado y luego se puede intercambiar o ampliar (por ejemplo, agregando 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 un pipeline creativo de extremo a extremo que es interactivo, interpretable y personalizable.
Nota: El código tardará aproximadamente entre 15 y 17 minutos en ejecutarse si utiliza GPU o TPU. Se tardará entre 65 y 70 minutos en un entorno virtual local para ejecutar y generar el resultado basado en la infraestructura utilizada para ejecutar el cede.
Comprendamos cómo el sistema transforma la instrucción del usuario: "Quiero escribir una historia de fantasía caprichosa 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 original del usuario: Quiero escribir una historia de fantasía caprichosa para niños sobre un dragón perdido que encuentra su hogar. Con base en esta entrada, select_genre_node clasifica correctamente la narrativa como fantasía caprichosa e identifica el tono encantador y conmovedor apropiado. Este resultado es preciso y está alineado con el contexto, ya que el uso de frases como “caprichoso”, “para niños” y “dragón perdido encontrando 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 siguiente paso, se le pide al modelo que cree un esquema de trama basado en el género identificado, el tono y la idea original del usuario. El resultado no solo incluye un resumen de la historia de 3 a 5 oraciones, sino que también incluye descripciones de personajes adicionales, probablemente debido a la fuga de instrucciones o al formato de instrucciones retenido de iteraciones anteriores.
El esquema de la trama se centra en una niña llamada Lily que descubre un dragón herido y lo ayuda a regresar al bosque encantado con la guía de un viejo herbolario. Esta historia refleja exactamente la intención del usuario: centrarse en un viaje mágico apto para niños con matices emocionales sobre la curación, la pertenencia y la amistad. Los bocetos de personajes del dragón, Lily y el herbolario agregan profundidad, transformando una idea vaga en un concepto estructurado con roles definidos, personalidades y responsabilidades narrativas. 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, estableciendo una relación emocional y un entendimiento mutuo entre los personajes. Este momento es crítico, ya que gira la historia hacia el regreso a casa del dragón. 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 consistencia del tono y el 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. Finalmente, el
Cada etapa del flujo de trabajo traduce la instrucción original — "una historia de fantasía caprichosa para niños sobre un dragón perdido que encuentra su hogar" — en un resultado estructurado, creativo y expresivo. Desde la selección del género hasta el formato de los diálogos, el sistema crea 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 sola línea de entrada de usuario, lo que demuestra el poder práctico de los flujos de trabajo en aplicaciones creativas de IA.
Para que la experiencia de contar historias sea aún más atractiva, aquí hay una visualización simple basada en HTML que da un formato hermoso a los elementos de la historia generados: género, tono, trama, escena y diálogo. Además, con un solo clic, puede descargar el script completo como archivo de texto para usarlo o compartirlo en el futuro. ¡Demos vida a la historia en la pantalla!
Este tutorial utiliza Granite-4.0-Tiny-Preview modelo para la generación de texto. Si bien es uno de los modelos más pequeños de la familia Granite, aún requiere un entorno habilitado para GPU para funcionar de manera eficiente, especialmente cuando se ejecutan múltiples nodos en un flujo de trabajo de LangGraph.
Configuración recomendada:
Notas de rendimiento:
Si está ejecutando este tutorial en un entorno de 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, creamos un flujo de trabajo de narración modular y agentivo mediante LangGraph y Granite-4.0-Tiny-Preview de IBM modelo de lenguaje. A partir de una simple instrucción creativa, construimos un pipeline 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 guión. En el camino, demostramos cómo:
Este marco no solo es potente para la escritura de pantallas, sino que puede extenderse a una amplia gama de casos de uso creativos o de enrutamiento de tareas. Con solo unos pocos nodos, ha creado un asistente de escritura en miniatura capaz de convertir una idea caprichosa en una historia lista para el guión.
Ya sea desarrollador, narrador o investigador, este tutorial le brinda una base práctica para explorar la ingeniería de flujo de trabajo basada en LLM en dominios creativos.
¿Listo para crear sus propios agentes? Deje que la creatividad fluya con los modelos IBM Granite e IBM watsonx Orchestrate.
Cree, implemente y gestione poderosos 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 pueda confiar.
Los servicios de IA de IBM Consulting ayudan a reinventar la forma en que las empresas trabajan con IA para la transformación.
1 Lang Cao. 2024. GraphReason: Mejora de las capacidades de razonamiento de los modelos lingüísticos de gran tamaño mediante un Approach de verificación basado en grafos. En Proceedings of the 2nd Workshop on Natural Language Reasoning and Structured Explanations (@ACL 2024), páginas 1–12, Bangkok, Tailandia. Association for Computational Linguistics.