Skip to content
BotServBotServ
Aprobación humanaHuman-in-the-LoopAgente IASeguridadConfirmaciónAutonomía

Aprobaciones Humanas: Human-in-the-Loop en Agentes IA

Por qué los agentes IA necesitan aprobaciones humanas: Human-in-the-Loop, mecanismos de confirmación y medidas de seguridad explicados.

S

schutzgeist

16 min read
Aprobaciones Humanas: Human-in-the-Loop en Agentes IA

Aprobaciones humanas: Human-in-the-Loop en agentes de IA

Qué cubre este artículo

  • Qué son las aprobaciones humanas (Human-in-the-Loop) y por qué son imprescindibles en agentes de IA
  • Tipos de aprobaciones, desde Pre-Execution hasta Batch-Approval, y cuándo utilizar cada una
  • Cómo implementar aprobaciones en frameworks como LangGraph, CrewAI y AutoGen
  • Grados de autonomía disponibles y cómo elegir el correcto para tu caso de uso
  • Trampas comunes, costos y consideraciones de seguridad en aprobaciones

Introducción: aprobaciones humanas explicadas

Los agentes de IA son potentes. Buscan información, escriben archivos, envían correos electrónicos y acceden a bases de datos. Pero ese poder también conlleva riesgo. Un agente que actúa de forma autónoma puede cometer errores que una persona jamás cometería. Por eso la mayoría de los agentes necesitan un mecanismo que detenga las acciones críticas antes de ejecutarlas y pida confirmación a un humano. Eso se llama Human-in-the-Loop, o aprobación humana.

Este artículo está dirigido a principiantes que quieren entender cómo funcionan las aprobaciones humanas, cuándo son útiles y cómo implementarlas en la práctica. Después de leerlo, conocerás los términos clave, los diferentes tipos de aprobación, las trampas típicas y los grados de autonomía que puedes configurar. No necesitas conocimientos previos, solo una idea básica de qué es un agente de IA.

¿Por qué necesito aprobaciones humanas?

Imagina que tienes un agente autónomo que gestiona tu comunicación con clientes. Lee correos entrantes, los clasifica y redacta respuestas. Un día interpreta mal una queja y envía a todos tus clientes un correo con el asunto “Cerramos el negocio”. Sin aprobación, ese correo ya está fuera antes de que lo veas. El resultado: pánico entre tus clientes, contratos cancelados, un daño que no puedes deshacer.

Otro escenario: un agente debe limpiar archivos de registro antiguos. Interpreta “antiguo” demasiado generosamente y borra no solo logs, sino también la base de datos de producción, creyendo que los registros están obsoletos. Sin aprobación, la base de datos desapareció. Los backups ayudan, pero el tiempo de inactividad cuesta dinero.

Estos ejemplos no son bromas teóricas. Los agentes alucina, malinterpretan instrucciones y llaman a herramientas con parámetros incorrectos. Cuanta más autonomía tiene un agente, mayor es el daño que puede causar. Las aprobaciones humanas actúan como amortiguador, evitando que un pequeño error se convierte en catástrofe. Te devuelven el control sin que los agentes se vuelvan completamente inútiles.

Aprobaciones humanas resumidas

Una aprobación humana es un paso de revisión en el que el agente se detiene y pide confirmación a un humano antes de ejecutar una acción. El humano ve qué pretende hacer el agente y decide: aprobar, rechazar o modificar. Solo entonces continúa la acción.

Un ejemplo del mundo real: imagina un nuevo empleado que acaba de incorporarse. Puede escribir correos electrónicos y editar archivos de forma independiente, pero para compras superiores a 500 EUR necesita la firma de su supervisor. Prepara la orden, la coloca en el escritorio del supervisor y espera. El supervisor revisa, firma o rechaza. Solo después se ejecuta la compra. Exactamente así funciona el Human-in-the-Loop en agentes de IA. El agente prepara la acción, el humano la aprueba, solo entonces se ejecuta.

La diferencia entre un agente con y sin aprobaciones no es lo que puede hacer, sino cuándo puede hacerlo. Sin aprobación actúa inmediatamente. Con aprobación se detiene y espera tu confirmación.

¿Para quién son útiles las aprobaciones humanas?

Las aprobaciones humanas son valiosas para cualquiera que implemente agentes de IA en entornos reales, no solo en laboratorios. Concretamente:

  • Principiantes que construyen sus primeros agentes y quieren asegurar que nada falle antes de conceder autonomía total
  • Equipos que operan agentes en entornos de producción y necesitan minimizar riesgos de responsabilidad civil
  • Tomadores de decisiones que quieren entender qué salvaguardas de seguridad son necesarias en agentes antes de autorizar su introducción
  • Desarrolladores que construyen agentes para clientes y deben implementar pasos de revisión demostrables

Si solo experimentas y el agente se ejecuta en un sandbox aislado, puedes prescindir de aprobaciones. Pero cuando el agente accede a datos reales, sistemas reales o personas reales, las aprobaciones dejan de ser un lujo para convertirse en una necesidad.

Términos clave en aprobaciones humanas

TérminoSignificado
Human-in-the-LoopUn humano participa en el flujo del agente y debe confirmar ciertas acciones antes de que se ejecuten
AprobaciónConsentimiento de una persona para una acción planeada del agente, por ejemplo “enviar correo al cliente X”
ConfirmaciónLo mismo que aprobación, la persona confirma que la acción está autorizada para ejecutarse
Grado de autonomíaEl nivel en que el agente actúa sin intervención humana, desde “confirmar todo” hasta “completamente autónomo”
ApprovalTérmino en inglés para aprobación, utilizado en muchos frameworks y documentaciones
VetoRechazo de una acción por parte del humano, el agente no puede ejecutarla
EscalationCuando el agente no puede resolver una situación por sí solo y la transfiere a un humano, por ejemplo ante datos ambiguos
TimeoutPlazo dentro del cual el humano debe aprobar, después el agente se cancela o actúa según regla de fallback
Auto-ApproveRegla que aprueba automáticamente ciertas acciones sin intervención humana, por ejemplo búsquedas web inofensivas
GuardrailsReglas de seguridad que limitan al agente, por ejemplo “nunca eliminar archivos fuera de la carpeta X”

Tipos de aprobaciones

No todas las aprobaciones son iguales. Hay diferentes formas de involucrar a un humano en el flujo. Las más importantes:

Pre-Execution (aprobación antes de la acción)

El agente planifica una acción, se detiene y pregunta al humano: “¿Puedo hacerlo?” Solo después de la confirmación se ejecuta. Esta es la forma más común y apropiada para acciones que no se pueden deshacer, como envío de correos, eliminación de archivos o pagos.

Ejemplo: el agente quiere enviar un correo a todos los clientes. Te muestra el borrador y la lista de destinatarios. Haces clic en “Aprobar” y solo entonces se envía el correo.

Post-Execution (revisión después de la acción)

El agente ejecuta la acción, la registra y el humano la revisa después. Esto es útil para acciones que se pueden deshacer fácilmente o que ocurren tan frecuentemente que pedir aprobación previa bloquearía el flujo.

Ejemplo: el agente clasifica correos entrantes en carpetas. Por la noche revisas si todo se clasificó correctamente. Si no, corriges. Es más rápido que aprobar cada correo de antemano.

Conditional (aprobación solo en caso de riesgo)

El agente actúa de forma autónoma, pero se detiene y solicita confirmación bajo ciertas condiciones que defines tú. Por ejemplo: “aprobación para compras superiores a 500 EUR” o “aprobación para correos dirigidos a más de 10 destinatarios”.

Ejemplo: el agente puede disparar pedidos de forma autónoma hasta 500 EUR. A partir de ese monto se detiene y te pregunta. Esto equilibra velocidad y seguridad.

Batch (aprobación de múltiples acciones a la vez)

El agente recopila varias acciones y solicita al usuario una única aprobación para todas. Resulta útil cuando el agente ejecuta muchas acciones similares y aprobar cada una individualmente sería tedioso.

Ejemplo: el agente ha redactado 50 borradores de correo. En lugar de aprobar 50 veces, visualizas todos de una vez y los autorizas en lote. Puedes descartar algunos si es necesario.

¿Cuándo necesitas cada tipo de aprobación?

La elección del tipo de aprobación depende del riesgo de la acción y su frecuencia. Aquí está la matriz de decisión:

AcciónRiesgoFrecuenciaAprobación recomendada
Búsqueda webbajoaltaAuto-Approve, sin aprobación
Lectura de archivobajomediaAuto-Approve, sin aprobación
Escritura de archivomediomediaPost-Execution o Conditional
Eliminación de archivoaltobajaPre-Execution
Correo a una personamedioaltaPre-Execution o Conditional
Correo a todos los clientesmuy altobajaPre-Execution, obligatorio
Consulta de base de datos (lectura)bajoaltaAuto-Approve
Escritura en base de datosaltobajaPre-Execution
Desencadenar un pagomuy altobajaPre-Execution, obligatorio
Llamada API a servicio externomediomediaConditional, según el servicio

La regla de oro: cuanto mayor el riesgo y menor la frecuencia de la acción, más necesitas Pre-Execution. Cuanto menor el riesgo y mayor la frecuencia, con Auto-Approve o Post-Execution es suficiente.

Implementación en frameworks

La mayoría de frameworks establecidos admiten Human-in-the-Loop. Aquí está un resumen de cómo lo implementan LangGraph, CrewAI y AutoGen. Encontrarás una descripción completa de todos los frameworks en el artículo Frameworks.

LangGraph

LangGraph, parte del ecosistema de LangChain, ofrece “Interrupts”. El agente se detiene en un nodo específico y espera una entrada. Funciona a través de un checkpointer que preserva el estado hasta que el usuario responde.

from langgraph.graph import StateGraph
from langgraph.checkpoint.memory import MemorySaver

def send_email(state):
    # Agent redacta el correo
    draft = state["draft"]
    # Interrupt: aquí se detiene el agente
    return {"draft": draft, "awaiting_approval": True}

def human_approval(state):
    # Aquí se solicita la aprobación
    approval = input("Freigabe für E-Mail-Versand? (y/n): ")
    if approval == "y":
        return {"approved": True}
    return {"approved": False}

graph = StateGraph()
graph.add_node("draft", send_email)
graph.add_node("approve", human_approval)
graph.add_edge("draft", "approve")

# Mit Checkpointer puede el agente pausar y continuar
app = graph.compile(checkpointer=MemorySaver())

El checkpointer es importante. Guarda el estado del agente mientras espera la aprobación. De este modo, puedes obtener la aprobación de forma asincrónica, por ejemplo a través de una interfaz web, sin que el agente continúe ejecutándose.

CrewAI

CrewAI funciona con “roles” y “tareas”. Puedes especificar que una tarea requiere aprobación humana antes de que se ejecute el siguiente paso. Esto se configura mediante el parámetro human_input.

from crewai import Agent, Task, Crew

email_agent = Agent(
    role="E-Mail-Agent",
    goal="Entwürfe für Kunden-E-Mails erstellen",
    backstory="Ein zuverlässiger Assistent für Kundenkommunikation.",
)

email_task = Task(
    description="Entwirf eine E-Mail an den Kunden Müller GmbH.",
    expected_output="Ein E-Mail-Entwurf mit Betreff und Text.",
    agent=email_agent,
    human_input=True,  # Solicita aprobación humana antes de completar
)

crew = Crew(agents=[email_agent], tasks=[email_task])
result = crew.kickoff()

Con human_input=True, CrewAI se detiene y solicita retroalimentación o aprobación del usuario. Es más simple que LangGraph, pero menos flexible porque no puedes controlar finamente la lógica de aprobación.

AutoGen

AutoGen de Microsoft usa “Conversable Agents”. Puedes definir tu propio agente “UserProxy” que representa al usuario y solicita confirmación para acciones específicas.

from autogen import ConversableAgent, UserProxyAgent

user_proxy = UserProxyAgent(
    name="Mensch",
    human_input_mode="ALWAYS",  # Siempre solicita aprobación
)

assistant = ConversableAgent(
    name="Agent",
    system_message="Du bist ein E-Mail-Agent.",
)

# Inicia la conversación, el UserProxy solicita aprobación en cada acción
user_proxy.initiate_chat(assistant, message="Schreibe eine E-Mail an Müller GmbH.")

El human_input_mode controla la frecuencia de consultas. ALWAYS solicita siempre, TERMINATE solo al final, NEVER nunca. Para acciones sensibles usas ALWAYS, para acciones inofensivas NEVER o TERMINATE.

Ejemplo: Un agente con aprobaciones

Aquí está un ejemplo paso a paso de un agente de correo que redacta borradores pero necesita aprobación antes de enviar.

Paso 1: Recibir la tarea. Le dices al agente: “Redacta un correo al cliente Müller GmbH con la propuesta del Proyecto X.” El agente entiende el objetivo y planifica los pasos.

Paso 2: Obtener datos del cliente. El agente lee los datos del cliente de la base de datos, como nombre, contacto principal y comunicación anterior. Ocurre sin aprobación porque es solo lectura.

Paso 3: Crear el borrador. El modelo de lenguaje genera un borrador con asunto, saludo, cuerpo y firma. El borrador se almacena en la memoria del agente.

Paso 4: Solicitar aprobación (Pre-Execution). El agente se detiene y te muestra el borrador. Ves el asunto, el texto y el destinatario. Verificas: ¿es correcto el texto? ¿es correcto el destinatario? ¿es apropiado el tono? Haces clic en “Aprobar” o “Rechazar”.

Paso 5: Enviar el correo. Solo si has aprobado, el agente envía el correo mediante la herramienta de correo. Si lo rechazas, el correo permanece en borrador y puedes solicitar al agente que ajuste el texto.

Paso 6: Registro. El agente documenta el proceso: borrador creado, aprobación otorgada o denegada, correo enviado o no. De este modo puedes rastrear qué sucedió.

Este flujo combina autonomía y control. El agente realiza el trabajo, tú tienes la última palabra en la acción crítica. Más información sobre planificación y reflexión de agentes está disponible en el artículo Planung und Reflexion.

Grados de autonomía

No todos los agentes necesitan la misma cantidad de aprobaciones. Existen cinco grados de autonomía que puedes configurar:

Full Auto (autonomía total)

El agente actúa completamente de forma autónoma, sin aprobación ni registro. Es rápido pero riesgoso. Solo tiene sentido para tareas inofensivas en entornos aislados, como un agente que analiza datos en una sandbox.

Auto con Registro (autonom mit Protokollierung)

El agente actúa por su cuenta, pero cada paso queda registrado. Posteriormente puedes revisar qué sucedió. Resulta útil para acciones frecuentes y de bajo riesgo, como organizar correos electrónicos.

Aprobación Condicional (Freigabe bei Risiko)

El agente actúa de forma autónoma, pero se detiene y solicita confirmación cuando se cumplen ciertas condiciones. Este es el nivel más común en la práctica porque equilibra velocidad y seguridad. Ejemplo: “Solicitar aprobación cuando se envíen correos a más de 10 destinatarios.”

Aprobación Completa (volle Freigabe)

Cada acción requiere aprobación. El agente prepara todo y tú autorizas cada paso. Es seguro, pero lento. Resulta apropiado para tareas muy críticas o al principio, cuando aún no confías en un agente nuevo.

Solo Manual (nur manuell)

El agente planifica y diseña, pero no ejecuta nada. Tú asumes la ejecución. Realmente no es un agente, sino un asistente que te hace sugerencias. Útil cuando necesitas control total pero quieres aprovechar la capacidad de planificación del agente.

El nivel que elijas depende del caso de uso, del riesgo y de la confianza. Lo mejor es comenzar con Aprobación Completa o Aprobación Condicional e incrementar gradualmente la autonomía conforme el agente demuestre su fiabilidad.

Obstáculos típicos en las aprobaciones humanas

Las aprobaciones suenan simples, pero en la práctica hay varias trampas. Aquí están las más comunes:

1. Demasiadas aprobaciones ralentizan el flujo. Si cada búsqueda web y cada acceso a archivo requiere aprobación, el agente se vuelve inútil porque debes confirmar constantemente. Solución: utiliza Aprobación Automática para acciones inofensivas y Aprobación Condicional para las riesgosas.

2. Pocas aprobaciones arriesgan errores. Si no hay ninguna aprobación, el agente puede causar daños sin control. Solución: identifica las acciones críticas, como envío de correos, eliminación de archivos y pagos, y exige aprobaciones obligatorias allí.

3. Criterios de aprobación confusos. Si no está definido qué debe aprobarse y qué no, los desarrolladores deciden sobre la marcha, lo que es inconsistente y propenso a errores. Solución: documenta por escrito qué acciones requieren qué tipo de aprobación, preferiblemente en una tabla.

4. Falta gestión de timeouts. Si la persona no aprueba a tiempo, el agente espera indefinidamente. Solución: define un timeout tras el cual el agente se detiene o actúa según una regla de reserva, por ejemplo, “si no hay aprobación después de 24 horas, abortar”.

5. Responsable de aprobación poco claro. En equipos frecuentemente no está definido quién es responsable de cada aprobación. Solución: establece roles, por ejemplo, “aprobaciones financieras por contabilidad, aprobaciones de correo por el jefe de soporte”.

6. Interfaz pobre para aprobaciones. Si las aprobaciones se hacen por línea de comandos o en logs ilegibles, la gente comete errores o las ignora. Solución: utiliza una interfaz clara que muestre el diseño, los parámetros y el impacto de forma comprensible.

7. Las aprobaciones se vuelven rutina. Si la gente debe aprobar constantemente, eventualmente hace clic en “Sí” sin verificar. Esto hace que las aprobaciones sean inútiles. Solución: reduce las aprobaciones a las acciones realmente críticas, para que cada aprobación tenga peso.

Hardware, costos y seguridad en las aprobaciones humanas

Hardware

Las aprobaciones en sí requieren poco hardware. El agente se detiene y espera, lo que no consume poder de cómputo. Lo que sí necesita hardware es la interfaz a través de la cual se obtienen las aprobaciones. Si construyes una aplicación web donde las personas otorgan aprobaciones, se ejecuta en un servidor. Para agentes locales, puedes obtener aprobaciones mediante una aplicación de escritorio simple o incluso la línea de comandos. Más sobre hardware local en el artículo ¿Qué es la IA local?.

Costos

Las aprobaciones no cuestan dinero directamente, pero sí tiempo. Cada aprobación requiere que una persona revise el diseño. Con muchas aprobaciones, se suma. Los agentes basados en la nube que se ejecutan mientras esperan pueden generar costos si el agente no pausa correctamente. Asegúrate de que el agente no realice llamadas a API durante la fase de espera.

Seguridad

Las aprobaciones son en sí una medida de seguridad, pero deben estar protegidas. ¿Quién puede aprobar? ¿Cómo se verifica la identidad? ¿Cómo se registra quién aprobó qué? Estas preguntas son especialmente importantes si las aprobaciones ocurren a través de una interfaz web. Utiliza autenticación, registro y roles para que no cualquier usuario pueda otorgar aprobaciones. Más sobre seguridad en el artículo Seguridad de agentes y específicamente sobre aprobaciones en Aprobación humana en seguridad.

Enlaces e información adicional sobre aprobaciones humanas

FAQ: Aprobaciones humanas - Preguntas comunes

¿Qué es exactamente Human-in-the-Loop?

Human-in-the-Loop significa que una persona está integrada en el flujo del agente y debe confirmar ciertas acciones antes de que se ejecuten. El agente prepara la acción, la persona la aprueba y luego se ejecuta. Esto evita errores en pasos críticos.

¿Necesita cada agente aprobaciones humanas?

No. Para tareas inofensivas en entornos aislados, como análisis de datos en una sandbox, no necesitas aprobaciones. Pero en cuanto el agente accede a datos reales, sistemas o personas, las aprobaciones para acciones críticas son recomendables.

¿Cuál es la diferencia entre Pre-Execution y Post-Execution?

En Pre-Execution, el agente solicita aprobación antes de la acción, que solo se ejecuta tras el consentimiento. En Post-Execution, el agente ejecuta la acción y la persona la revisa después. Pre-Execution es más seguro, Post-Execution es más rápido.

¿Cómo evito que las aprobaciones se vuelvan rutina?

Reduce las aprobaciones a las acciones realmente críticas. Si la gente debe confirmar constantemente, hace clic ciegamente en “Sí”. Utiliza Aprobación Condicional para que solo las acciones riesgosas requieran aprobación y las inofensivas se ejecuten automáticamente.

¿Qué pasa si nadie aprueba?

Sin gestión de timeout, el agente espera indefinidamente. Define un timeout después del cual el agente se detiene o actúa según una regla de reserva, por ejemplo, “si no hay aprobación después de 24 horas, abortar la acción y notificar al responsable”.

¿Qué framework es mejor para aprobaciones?

LangGraph es el más flexible porque controlas finamente los interrupts y checkpoints. CrewAI es más simple pero ofrece menos control. AutoGen es bueno para aprobaciones basadas en diálogo. La elección depende de cuánto control necesites.

¿Puedo obtener aprobaciones de forma asincrónica?

Sí. Con un checkpoint, como en LangGraph, el agente guarda su estado y espera. Puedes obtener la aprobación a través de una interfaz web horas o días después, y el agente continúa una vez que la aprobación está lista.

¿Qué es Auto-Approve?

Auto-Approve es una regla que aprueba automáticamente ciertas acciones sin intervención humana. Resulta útil para acciones inofensivas y frecuentes como búsquedas web o acceso de lectura a archivos. Así no te quedas atrapado en cada detalle.

¿Cómo defino quién puede aprobar?

Define roles y responsabilidades. Por ejemplo: “aprobaciones financieras por contabilidad, aprobaciones de correo por el jefe de soporte.” En la interfaz verificas la identidad del aprobador y registras quién aprobó qué.

¿Son las aprobaciones lo mismo que Guardrails?

No. Los guardrails son reglas de seguridad automáticas que restringen al agente, por ejemplo, “nunca eliminar archivos fuera de la carpeta X”. Las aprobaciones son pasos de revisión humana. Ambas se complementan: los guardrails previenen errores graves automáticamente, las aprobaciones atrapan casos que las reglas no cubren.

¿Pueden las aprobaciones detener completamente el agente?

Sí, si se presenta un veto. La persona rechaza la acción, el agente no la ejecuta. Dependiendo de la arquitectura, el agente aborta la tarea o intenta otra ruta. Esto es útil cuando la acción planeada es incorrecta o riesgosa.

Fuentes y lecturas complementarias

  • LangGraph Documentación: Human-in-the-Loop
  • CrewAI Documentación: Human Input
  • AutoGen Documentación: UserProxy y Conversable Agents
  • Anthropic: Building Effective Agents
  • Microsoft: AutoGen y aprobaciones humanas
Volver al blog
Share:

Entradas relacionadas