Un agente que desbloquea cuentas
Un agente de IA es un programa en el que un modelo elige acciones, paso a paso. El equipo de informática de una cadena de clínicas dentales quiere uno que lea una incidencia, encuentre al usuario y desbloquee su cuenta.
Un agente actúa, así que un error hace daño de verdad. Podría desbloquear a la persona equivocada o dar vueltas durante una hora. En este proyecto final planificas sus límites y revisas una ejecución grabada.
Al final de esta lección
Nota
Puedo planificar un agente con una lista de permitidos, un presupuesto y una aprobación humana.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Agente | un programa en el que un modelo elige acciones por pasos | |
| Herramienta | una acción que el agente puede pedir | unlock_account |
| Lista de permitidos | las únicas herramientas que el agente puede usar | |
| Presupuesto | un límite de pasos o de coste | |
| Aprobación humana | una persona aprueba antes una acción de riesgo | |
| Registro de ejecución | la lista de todos los pasos que dio un agente |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Para profundizar
Nota
Este proyecto planifica límites y revisa una ejecución. Las lecciones de IA de la página Recursos enseñan el resto. Construir agentes. Evaluar agentes. Proteger agentes. Seguridad de agentes a fondo.
La lista de permitidos dice qué herramientas existen
El modelo puede pedir cualquier acción. Tu código decide lo que de verdad se ejecuta.
La lista de permitidos es la lista corta de herramientas que el agente puede usar. Tu programa compara cada petición con ella antes de ejecutar nada. Lo que no está en la lista se bloquea, por razonable que suene. El programa de abajo revisa una muestra grabada de peticiones.
Pruébalo: bloquea lo no permitido
// El agente solo puede usar estas herramientas.
const allowed = ["read_ticket", "look_up_user", "unlock_account", "reply"];
// Una muestra grabada: las herramientas que pidió el modelo, en orden.
const asked = ["read_ticket", "look_up_user", "delete_user", "unlock_account", "reply"];
for (const tool of asked) {
if (allowed.includes(tool)) {
console.log("ejecuta ", tool);
} else {
console.log("BLOQUEA ", tool);
}
}
// Añade "reset_password" a la lista asked y pulsa Ejecutar.
// ¿Se ejecuta o se bloquea? ¿Debería estar en la lista de permitidos?
Un presupuesto y una persona ponen límites
Un presupuesto detiene al agente que da vueltas. Cinco pasos sobran para desbloquear una cuenta. Si se pasa, el agente para y deja la incidencia a una persona.
La aprobación humana es para acciones difíciles de deshacer. Desbloquear una cuenta cambia quién puede entrar, así que antes lo aprueba una persona. Leer una incidencia no tiene riesgo, así que se ejecuta enseguida.
Revisa una ejecución por su registro
Cada paso va al registro de ejecución: la herramienta, su entrada y su resultado. Después de una ejecución de prueba, lees el registro línea a línea.
Busca tres cosas. Una herramienta que no debería estar. Pasos fuera de presupuesto. Un paso de riesgo sin aprobación. El programa muestra una ejecución grabada con notas junto a cada paso.
Pruébalo: revisa una ejecución grabada
# Una ejecución grabada del agente de soporte. Presupuesto: 5 pasos.
run = ["read_ticket", "look_up_user", "unlock_account",
"look_up_user", "unlock_account", "reply"]
BUDGET = 5
RISKY = ["unlock_account"]
step = 1
for tool in run:
note = ""
if tool in RISKY:
note = "necesita que una persona lo apruebe"
if step > BUDGET:
note = "fuera de presupuesto"
print(step, tool, note)
step = step + 1
# Cambia BUDGET a 6 y vuelve a ejecutar.
Un error frecuente
Advertencia
Mucha gente cree que una frase clara en el prompt, como "nunca borres cuentas", mantiene seguro al agente. Un prompt es una petición, y un modelo puede ignorarla. Pon cada límite en el código, donde se comprueba antes de ejecutar cada herramienta.