Bienvenido a este tutorial sobre el uso de interrupciones y comandos en LangGraph para crear flujos de trabajo interactivos con participación humana. Si prefieres una guía visual busca el video acompañante antes de empezar. En este artículo explicamos cómo construir un flujo sencillo que pausa la ejecución para aprobación humana y enrutamiento dinámico según esa decisión, ideal para escenarios como aprobar despliegues o revisar decisiones generadas por IA.
Conceptos clave: las interrupciones permiten pausar la ejecución del grafo y esperar la entrada humana. Los comandos permiten controlar dinámicamente el flujo sin depender de bordes predefinidos. El checkpointing persiste el estado durante las pausas y es esencial para reanudar la ejecución sin perder contexto.
LangGraph facilita agentes con participación humana mediante su capa de persistencia. Con interrupciones se puede aprobar o rechazar pasos como decisiones de LLM o llamadas a herramientas y dirigir el grafo según el resultado. Con comandos se puede enrutar dinámicamente, realizar handoffs entre agentes y actualizar el estado para dictar rutas de ejecución.
Visión general del flujo: el ejemplo presenta una tarea que requiere aprobación, pausa para la decisión del usuario y enrutamiento a completado o cancelado. Ejemplo de tarea: Deploy new feature to production. Se interrumpe para aprobación y según la respuesta approve o reject se continúa o se cancela.
Instalación requerida ejecutar pip install langgraph para instalar LangGraph. También se pueden usar utilidades de tipo y IPython para visualización, aunque el núcleo funciona en Python puro.
Definición del estado. En LangGraph el estado es un diccionario compartido que todas las funciones nodales pueden leer y modificar. Un ejemplo de estructura de estado en Python puede definirse usando TypedDict como sigue sin literales de cadena en esta guía de alto nivel:
from typing_extensions import TypedDict class WorkflowState(TypedDict): task: str user_decision: str status: str
Nodos y funciones. Los nodos son funciones que actúan sobre el estado y retornan cambios parciales. En el ejemplo usamos cuatro nodos: uno para solicitar aprobación mediante interrupt, uno router que devuelve un Command para enrutar dinámicamente y dos nodos terminales para completar o cancelar la tarea. La idea central es que interrupt pausa la ejecución y al reanudar devuelve la decisión humana, mientras que Command(goto=nombre_nodo) indica al grafo qué nodo ejecutar a continuación sin caminos estáticos.
Esquema conceptual de los nodos sin literales concretos: def get_approval(state: WorkflowState): usar interrupt para pausar y esperar decision humana return dict con user_decision def router(state: WorkflowState) -> Command: leer state user_decision y devolver Command con goto complete_task o goto cancel_task def complete_task(state: WorkflowState): actualizar status a done def cancel_task(state: WorkflowState): actualizar status a canceled
Construcción y visualización del grafo. Se usa StateGraph para construir nodos y aristas, y se habilita un checkpointer en memoria para permitir interrupciones. El router no requiere bordes condicionales porque Command decide la ruta en tiempo de ejecución. Con IPython se puede renderizar un diagrama mermaid para inspección visual del flujo.
Ejemplo de pasos: inicializar InMemorySaver como checkpointer crear builder StateGraph agregar nodos get_approval router complete_task cancel_task definir aristas START a get_approval y get_approval a router y terminar con aristas desde los terminales a END compilar el grafo con checkpointer memory
Ejecución del flujo. Cada ejecución utiliza un thread_id configurable para rastrear el estado de esa corrida. Se transmite eventos para observar progreso, el grafo se pausa en la interrupción y se reanuda enviando un Command con resume y la decisión approve o reject. Con approve el grafo ejecuta complete_task y actualiza status a done. Con reject se ejecuta cancel_task y status cambia a canceled.
Ejemplo conceptual de uso: iniciar grafocon initial_task con thread configurable run-1 leer eventos hasta pausa luego enviar Command resume con approve y observar eventos hasta finalizacián repetir con run-2 y enviar resume con reject para ver la ruta de cancelacián
Conclusión. Con LangGraph se construyen fácilmente flujos human in the loop. Interrupts permiten pausas controladas, Commands facilitan enrutamiento dinámico y el checkpointing mantiene la consistencia del estado entre pausas. Se recomienda experimentar añadiendo más nodos o condiciones y consultar la documentacián de LangGraph para usos avanzados.
Sobre Q2BSTUDIO. En Q2BSTUDIO somos especialistas en desarrollo de software y aplicaciones a medida, con experiencia en inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos soluciones personalizadas que combinan software a medida y agentes IA para optimizar procesos y aportar valor en proyectos de automatización. Si buscas desarrollar una aplicacián empresarial robusta visita nuestra página de aplicaciones a medida y descubre cómo podemos ayudarte.
Nuestros servicios incluyen consultoría y despliegue en servicios cloud aws y azure, seguridad y pentesting para proteger tus activos, y proyectos de inteligencia de negocio y Power BI para transformar datos en decisiones. Para soluciones de inteligencia artificial y ia para empresas consulta nuestra sección dedicada a inteligencia artificial. También trabajamos con automatizacián de procesos, agentes IA y arquitecturas escalables para producción.
Palabras clave para posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi. Contacta con Q2BSTUDIO para diseñar flujos de trabajo humanos con IA integrados en soluciones seguras y escalables.
Si este material te ha sido útil comparte tus comentarios y adapta los ejemplos a tus necesidades productivas. Experimenta con diferentes puntos de intervención humana y rutas de comando para crear procesos de revisión y control ajustados a tus requisitos de negocio.