¡Hola! En esta lección vamos a explorar una funcionalidad llamada «Human in the Loop» (Humano en el Bucle), que nos da un control mucho más preciso sobre cómo avanzan nuestros flujos de trabajo, permitiéndonos supervisar y aprobar pasos críticos.
¿Qué es «Human in the Loop» (HITL)?
En pocas palabras, es una forma de pausar nuestro flujo de trabajo y pedirle a un humano que dé su visto bueno (o lo rechace) antes de continuar. Es fundamental para:
- Tener control sobre acciones costosas (en dinero o recursos).
- Añadir una capa de seguridad antes de ejecutar tareas delicadas.
- Supervisar las decisiones de un agente.
En Flowise, podemos implementar la intervención humana de dos formas principales, y veremos un ejemplo para cada una.
Método 1: Confirmación en el Uso de una Herramienta
Este método nos permite controlar si un agente puede usar o no una herramienta específica.
Cuándo usarlo: Ideal para cuando quieres controlar el acceso a herramientas concretas, como una búsqueda en internet, el acceso a una base de datos o una herramienta personalizada que realiza una acción importante.
Proyecto de Ejemplo: El Escritor de Blogs Supervisado
- La Configuración:Imagina que tenemos un agente «Escritor de Blogs». Dentro de su configuración, le hemos añadido dos herramientas: Current Date & Time y Google Custom Search.
- Activando la Intervención:Al lado de la herramienta Google Custom Search, verás un interruptor o una opción llamada «Require Human Input» (Requerir Intervención Humana). Lo activamos. Esto significa que, cada vez que el agente intente usar la búsqueda de Google, el flujo se detendrá y nos pedirá permiso.
- La Puesta en Marcha:
- Iniciamos el chat y le pedimos: «Escribe un artículo sobre el último modelo de Anthropic».
- El agente, para cumplir la tarea, intentará usar la búsqueda de Google. En ese momento, la ejecución se pausa y aparece una ventana de confirmación.
- Esta ventana nos dice: «Intentando usar la herramienta Google Custom Search con la siguiente entrada: [último modelo de Anthropic]».
- Tenemos dos botones: Proceed (Proceder) o Reject (Rechazar).
Método 2: El Nodo «Human in the Loop»
Este método utiliza un nodo específico que podemos colocar en cualquier punto de nuestro flujo para crear un punto de control.
Cuándo usarlo: Perfecto para puntos de decisión críticos en el flujo, después de que un agente ha tomado una decisión y antes de ejecutar el siguiente gran paso.
Proyecto de Ejemplo: Sistema de Recepción de Hotel Inteligente
Este proyecto es más complejo y usa un nuevo tipo de agente.
- Introducción al Agente Condicional:Este flujo empieza con un Agente Condicional (Conditional Agent). Este agente es como un «router» o un «clasificador». Analiza la petición del usuario y, basándose en escenarios que nosotros definimos, redirige el flujo por diferentes caminos.
- Configuración: Le damos dos escenarios:
El usuario está pidiendo una tarea de recepción.
El usuario está pidiendo una tarea de conserjería.
- Configuración: Le damos dos escenarios:
- Añadir el Nodo de Intervención Humana:
- Si el agente clasifica la tarea como «conserjería» (ej: pedir un taxi), en lugar de ir directo a otro agente, lo conectamos a un nodo Human Input.
- Este nodo es nuestro punto de control.
- Configuración del Nodo
Human Input
:- Descripción Dinámica: Una de sus características más potentes es que su descripción (el mensaje que ve el usuario) puede ser generada dinámicamente por un LLM. Le damos un prompt como:
"Resume la conversación entre el usuario y el asistente. Reitera el último mensaje del asistente y pregunta si al usuario le gustaría proceder o si tiene algún comentario."
Así, el mensaje de confirmación es inteligente y contextual. - Salidas: El nodo tiene dos salidas: una si el usuario hace clic en «Proceed» y otra si hace clic en «Reject».
- Descripción Dinámica: Una de sus características más potentes es que su descripción (el mensaje que ve el usuario) puede ser generada dinámicamente por un LLM. Le damos un prompt como:
- La Puesta en Marcha:
- Iniciamos el chat: «Resérvame un taxi, por favor».
- El Agente Condicional lo clasifica como «conserjería» y el flujo llega al nodo
Human Input
. - Aparece la ventana de confirmación con el resumen: «El asistente está a punto de reservar un taxi para usted. ¿Desea proceder?».
- Si elegimos «Proceed», el flujo continúa hacia el «Agente de Conserjería», que se encargaría de la reserva.
- Si elegimos «Reject», el flujo va por la otra ruta, que podría ser un nodo final con un mensaje como: «De acuerdo, la petición ha sido cancelada.»
Conclusión: ¿Qué Método Usar?
Ambos métodos son increíblemente útiles, y la elección depende de lo que necesites controlar:
- Confirmación en Herramienta: Úsalo para un micro-control a nivel de una acción específica de un agente (ej: ¿puede buscar en la web?).
- Nodo «Human in the Loop»: Úsalo para un macro-control en puntos de decisión del flujo, después de que una tarea ya ha sido procesada y antes de empezar la siguiente (ej: ¿confirmas que quieres ejecutar este plan de acción?).
Dominar estas herramientas te dará un control total sobre la seguridad y el comportamiento de tus agentes. ¡Nos vemos en la siguiente lección!