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.
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
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.
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.
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.
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.