Integración · LangChain

Human-in-the-Loop y seguridad para tus agentes de LangChain

LangChain ya tiene sus propias herramientas de trazabilidad (LangSmith). DatotecAudit añade la pieza que le falta a cualquier stack de LangChain: bloquear una acción hasta que un humano la apruebe, y auditar el código fuente del agente en busca de secretos y vulnerabilidades.

Nota honesta: si tu prioridad es depurar cadenas y grafos de LangChain con máximo detalle, LangSmith está más integrado en ese terreno concreto — tienes la comparativa completa en DatotecAudit vs LangSmith. Esta guía es para añadir la capa de aprobación humana y seguridad que LangSmith no cubre, sea cual sea tu herramienta de tracing.

Cómo se conecta

DatotecAudit no requiere un SDK ni un paquete de LangChain específico — se conecta con una llamada HTTP normal desde el punto de tu cadena o tu agente donde quieras registrar una acción o pedir aprobación. Lo más habitual es envolverlo en una Tool personalizada o en un callback.

from langchain.tools import tool
import requests

DATOTEC_API_KEY = "dtk_live_xxxxx"  # generada en tu panel de DatotecAudit

@tool
def enviar_email_con_aprobacion(destinatario: str, asunto: str, cuerpo: str) -> str:
    """Envía un email, pero antes pide aprobación humana."""
    r = requests.post(
        "https://datotecaudit.com/api/agent-trace",
        headers={"Authorization": f"Bearer {DATOTEC_API_KEY}"},
        json={
            "action": "enviar_email",
            "payload": {"destinatario": destinatario, "asunto": asunto},
            "requires_approval": True
        }
    )
    approval_id = r.json()["approval_id"]

    # El agente espera aquí hasta que apruebes/rechaces desde tu panel
    import time
    while True:
        estado = requests.get(
            f"https://datotecaudit.com/api/agent-approval-status?approval_id={approval_id}",
            headers={"Authorization": f"Bearer {DATOTEC_API_KEY}"}
        ).json()["status"]
        if estado != "pending":
            break
        time.sleep(3)

    if estado == "approved":
        # aquí va tu lógica real de envío de email
        return "Email enviado."
    return "Acción rechazada por un humano."

3 pasos para tenerlo funcionando

01

Conecta tu repo de LangChain

Desde tu panel de DatotecAudit, conecta el repositorio de GitHub donde vive tu agente — así puede auditarlo en busca de secretos, dependencias vulnerables y patrones inseguros, no solo trazas en tiempo real.

02

Envuelve las acciones sensibles

Cualquier Tool que toque dinero, borre datos o mande comunicación externa, márcala con requires_approval: true como en el ejemplo de arriba.

03

Aprueba desde el panel

Cada vez que el agente pida aprobación, la ves en tu dashboard en tiempo real y decides en un clic si sigue adelante o no.

Nota de producción: el bucle while True con time.sleep(3) del ejemplo es didáctico — bloquea el hilo mientras espera. En un agente real de producción, usa una tarea asíncrona, una cola de trabajo, o un webhook, en vez de esperar de forma bloqueante.

Pruébalo con tu propio agente de LangChain

3 días gratis, sin tarjeta.

Empezar gratis →