ai-hub
[es]en
[concepto][cambiante]

Human-in-the-Loop (HITL): Integrando la supervisión humana en agentes

HITL es un patrón donde un humano revisa, aprueba o corrige las decisiones del agente antes de ejecutar acciones críticas, combinando autonomía con control.

// 6 min de lectura · updated 2026-06

Human-in-the-Loop (HITL) es un patrón de diseño donde un humano interviene en el flujo del agente para revisar, aprobar o corregir acciones antes de que se ejecuten. El agente opera de forma autónoma hasta que encuentra una decisión que supera cierto umbral de riesgo o incertidumbre — ahí pide ayuda humana. Esto combina la velocidad y escala de la IA con el juicio, la ética y el contexto que solo un humano puede aportar.

Tip Pro: HITL no es un fallo del agente. Es una característica de diseño. Los mejores sistemas autónomos no son los que nunca piden ayuda, sino los que saben exactamente cuándo pedirla.

¿Qué es?

El patrón HITL se apoya en tres modos de intervención humana, ordenados de mayor a menor autonomía del agente:

  1. Human-in-the-loop (supervisión en tiempo real): el agente ejecuta, pero un humano puede detener o corregir sobre la marcha. Típico en asistentes de código o chatbots con moderación.
  2. Human-on-the-loop (revisión): el agente propone una acción, el humano la revisa y la aprueba antes de ejecutar. Típico en envío de emails, creación de tickets o pagos.
  3. Human-in-command (control total): el humano inicia cada acción manualmente. El agente solo sugiere, nunca ejecuta.

La clave del patrón es definir cuándo y cómo se activa la intervención humana. Algunos criterios comunes:

  • Incertidumbre del modelo: si el modelo reporta baja certeza (auto-reporte o proxies como logprobs), pide revisión. Los LLM no exponen un score de confianza calibrado, así que esto se aproxima, no se mide directamente.
  • Acciones irreversibles: enviar un email, hacer un pago, borrar datos.
  • Contenido sensible: datos personales, temas legales o médicos.
  • Primera vez: si el agente nunca ha ejecutado esa acción antes, requiere aprobación humana inicial.

Nota: HITL no es lo mismo que tener un humano operando el sistema manualmente. Es un diseño híbrido donde el humano interviene solo en los puntos críticos, no en cada paso.

Modelo mental

Piensa en un piloto automático de avión. El 99% del vuelo lo maneja el piloto automático (el agente). Pero en despegue, aterrizaje y emergencias, el piloto humano toma el control. El sistema sabe cuándo delegar al humano y el humano sabe cuándo retomar el control.

Usuario → Agente → ¿Acción crítica? → No → Ejecutar
                           ↓ Sí
                    Pausa → Humano revisa → Aprueba → Ejecutar
                                          → Rechaza → No ejecuta / Corrige

El agente hace el trabajo pesado; el humano hace el juicio fino.

¿Cómo se usa?

HITL básico: aprobación antes de ejecutar

El caso más común: el agente prepara una acción sensible y espera confirmación humana.

import json
 
acciones_criticas = ["send_email", "delete_record", "process_payment"]
 
def ejecutar_con_aprobacion(agente_respuesta):
    # El agente decide qué acción ejecutar
    decision = json.loads(agente_respuesta)
 
    if decision["action"] in acciones_criticas:
        print(f"\n⚠️  Acción crítica detectada: {decision['action']}")
        print(f"   Argumentos: {decision['arguments']}")
        print(f"   Justificación: {decision.get('reasoning', 'N/A')}")
 
        aprobacion = input("   ¿Aprobar? (s/n): ").lower()
 
        if aprobacion != "s":
            print("   ❌ Acción rechazada por el supervisor.")
            return None
 
        print("   ✅ Acción aprobada.")
        # Aquí se ejecuta realmente
        return ejecutar_accion(decision)
 
    # Acciones no críticas se ejecutan sin supervisión
    return ejecutar_accion(decision)

HITL con umbral de confianza

El agente solo pide ayuda cuando no está seguro:

def generar_con_hitl(pregunta):
    # Primero intenta responder con alta confianza
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": pregunta +
                   "\n\nSi no estás 100% seguro de la respuesta, "
                   "responde con 'INSEGURO: [tu mejor estimación]'"}]
    )
    respuesta = response.choices[0].message.content
 
    if respuesta.startswith("INSEGURO"):
        print(f"\n⚠️ El agente no está seguro sobre: {pregunta}")
        print(f"   Su estimación: {respuesta.replace('INSEGURO: ', '')}")
        correccion = input("   Ingresa la respuesta correcta (o presiona Enter para usar la estimación): ")
 
        if correccion.strip():
            return correccion
 
    return respuesta

HITL con cola de revisión para múltiples agentes

En sistemas multi-agente, puedes centralizar la revisión humana:

cola_revision = []
 
def solicitar_revision_humana(agente_id, accion, contexto):
    cola_revision.append({
        "agente_id": agente_id,
        "accion": accion,
        "contexto": contexto,
        "estado": "pendiente"
    })
 
def procesar_cola_revision():
    for item in cola_revision:
        if item["estado"] != "pendiente":
            continue
 
        print(f"\n{'='*50}")
        print(f"Agente: {item['agente_id']}")
        print(f"Acción: {item['accion']}")
        print(f"Contexto: {item['contexto']}")
 
        decision = input("¿Aprobar, rechazar o modificar? (a/r/m): ").lower()
 
        if decision == "a":
            item["estado"] = "aprobado"
        elif decision == "r":
            item["estado"] = "rechazado"
        elif decision == "m":
            modificacion = input("Ingresa la modificación: ")
            item["contexto"] = modificacion
            item["estado"] = "modificado"
 
# El sistema principal itera la cola
procesar_cola_revision()

Advertencia: Una cola de revisión sin límite puede convertirse en un cuello de botella. Define un SLA (acuerdo de nivel de servicio) para la revisión humana: si el humano no responde en X segundos, el sistema ejecuta un fallback (rechazar, reintentar o escalar).

HITL con logging y auditoría

Cada intervención humana debe quedar registrada:

def registrar_intervencion(agente, accion, decision, humano, timestamp):
    registro = {
        "agente": agente,
        "accion": accion,
        "decision_del_agente": decision["original"],
        "decision_final": decision["final"],
        "revisado_por": humano,
        "timestamp": timestamp,
        "tipo_intervencion": "aprobacion" if decision["final"] else "rechazo"
    }
    # Guardar en base de datos para auditoría
    db.insert("auditoria_hitl", registro)

¿Cuándo usarlo / cuándo no?

✅ Úsalo cuando❌ NO lo uses cuando
Las acciones del agente pueden tener consecuencias realesEl agente solo genera texto sin ejecutar acciones
Necesitas cumplir regulaciones que requieren supervisión humanaLa velocidad es más importante que la precisión
El agente opera en un dominio donde el error es costosoEl humano no tiene contexto para tomar mejores decisiones que el agente
Estás en fases tempranas y quieres validar el comportamiento del agenteEl sistema debe escalar a millones de operaciones sin intervención
Las decisiones requieren juicio ético o contextualTienes un solo humano para revisar cientos de decisiones por minuto

Tip Pro: No pongas a un humano a revisar cada paso. Diseña el agente para que sea autónomo el 90% del tiempo. Si el humano está aprobando más del 20% de las decisiones, tu agente necesita mejores criterios, no más supervisión.

Historia y evolución

Ver historia

El concepto de Human-in-the-Loop viene de mucho antes de los LLMs. Se usa en sistemas de control, vehículos autónomos y machine learning tradicional (active learning). En el contexto de agentes de IA, el término ganó relevancia con el auge de los asistentes autónomos (2023-2024) que podían ejecutar acciones en nombre del usuario.

Empresas como Adept, Cognition (Devin) y OpenAI (con sus asistentes GPTs) popularizaron el patrón: el agente sugiere, el usuario aprueba. A medida que los agentes se vuelven más autónomos, el equilibrio entre autonomía y control humano es uno de los problemas de diseño más activos en la comunidad de ingeniería de IA.

En 2025, el patrón HITL maduró hacia sistemas que aprenden de las intervenciones humanas para reducir la frecuencia con que necesitan pedir ayuda — esencialmente, el agente se vuelve más autónomo con cada corrección que recibe.

// relacionados