Integración · AutoGen
Human-in-the-Loop y seguridad para tus agentes de AutoGen
AutoGen (Microsoft) está pensado para conversaciones entre múltiples agentes que se coordinan solos — justo el escenario donde más falta hace un punto de control humano antes de que una acción real se ejecute, y una auditoría del código que orquesta esa conversación.
Cómo se conecta
Se integra registrando una función personalizada dentro de tu ConversableAgent, que llama a la API de DatotecAudit antes de ejecutar la acción real.
from autogen import ConversableAgent
import requests, time
DATOTEC_API_KEY = "dtk_live_xxxxx"
def transferir_pago_con_aprobacion(cantidad: float, destinatario: str) -> str:
r = requests.post(
"https://datotecaudit.com/api/agent-trace",
headers={"Authorization": f"Bearer {DATOTEC_API_KEY}"},
json={
"action": "transferir_pago",
"payload": {"cantidad": cantidad, "destinatario": destinatario},
"requires_approval": True
}
)
approval_id = r.json()["approval_id"]
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)
return "Pago ejecutado." if estado == "approved" else "Pago rechazado por un humano."
agente_financiero = ConversableAgent(
name="agente_financiero",
system_message="Gestionas pagos, pero cada transferencia necesita aprobación humana.",
llm_config={"config_list": [...]}
)
agente_financiero.register_for_llm(name="transferir_pago", description="Transfiere un pago con aprobación humana")(transferir_pago_con_aprobacion)
Por qué importa especialmente en AutoGen: cuando varios agentes conversan y se delegan tareas entre sí, es fácil perder de vista quién decidió ejecutar qué acción real. DatotecAudit registra cada acción con su propio ID de traza, así que puedes reconstruir exactamente qué agente pidió qué, y quién lo aprobó — imprescindible si varios agentes actúan de forma autónoma.
3 pasos para tenerlo funcionando
01
Conecta el repo de tu orquestación AutoGen
Para que se audite en busca de secretos y dependencias vulnerables, no solo se rastree en ejecución.
02
Envuelve las funciones que ejecutan acciones reales
Pagos, envíos, borrados — cualquier función que un agente pueda invocar sin supervisión directa tuya.
03
Aprueba desde el panel, en tiempo real
Ves la conversación multi-agente que llevó a esa petición, y decides.
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.