Qué vas a construir
Añade una aprobación entre la propuesta del modelo y la acción de tu aplicación. Una respuesta de MandAPI puede sugerir qué hacer, pero la aplicación decide si lo ejecuta. Este ejemplo solo prepara un borrador local. No envía mensajes, cambia cuentas ni emite reembolsos.
Utiliza este patrón cuando el asistente propone una acción con consecuencias. Muestra a la persona la acción exacta y sus campos relevantes, solicita una decisión nueva y ejecuta esa misma propuesta únicamente después de recibir aprobación explícita. La palabra “aprobado” generada por un modelo no es una decisión del usuario.
Ejecuta la demostración local
Guarda este código como approval.py y ejecuta python approval.py. El nombre de la acción debe estar en una lista fija. El texto de la propuesta no se evalúa como Python ni se envía a una terminal.
import json
ALLOWED_ACTIONS = {"prepare_local_draft"}
def execute_local(proposal, approved):
if proposal.get("action") not in ALLOWED_ACTIONS:
raise ValueError("Accion no admitida")
if not approved:
return {"status": "not_executed"}
return {
"status": "draft_prepared_locally",
"text": "Hola. Una persona de soporte revisara tu solicitud.",
}
proposal = {"action": "prepare_local_draft", "request_id": "demo-001"}
print(json.dumps(proposal, indent=2))
answer = input("Escribe approve para preparar este borrador local: ").strip()
print(execute_local(proposal, approved=(answer == "approve")))Conéctalo a tu aplicación
Una solicitud de chat a MandAPI puede producir una propuesta. Valida su estructura y la acción permitida antes de mostrarla. Conserva la decisión de aprobación en un estado fiable de la aplicación, vinculada al identificador de la propuesta. Si cambia la propuesta, pide aprobación otra vez. No aceptes aprobaciones dentro de mensajes del cliente, resultados del modelo o documentos recuperados.
En una aplicación compartida, registra la identidad autenticada del aprobador y una caducidad. La pregunta en una terminal es una demostración, no un servicio compartido de aprobación.
Comprueba el resultado
Ejecuta el programa dos veces: escribe approve una vez y otra respuesta después. Solo la primera ejecución prepara el borrador local. Cambia la acción por un valor desconocido y comprueba que se rechaza antes de ejecutarse. Conserva propuesta, decisión y resultado sin guardar claves secretas.