Saltar al contenido
Revisión pendiente desde 29 jul 20263 fuentes primarias

Detén un agente antes de que entre en loop o agote el presupuesto

Un límite escrito en el prompt es una preferencia. Un límite comprobado por código antes de cada efecto es una guarda. En esta lección construirás siete fallos reproducibles y aprenderás a cortar cada uno sin llamar a un proveedor real.

Qué vas a conseguir ahora

Una decisión o prueba aplicada a «Detén un agente antes de que entre en loop o agote el presupuesto».

  1. 1Entiende el criterio
  2. 2Haz una práctica pequeña
  3. 3Guarda una evidencia
Evidencia

Una nota breve con qué hiciste, qué salió bien, qué falló y qué revisarías después.

Objetivos de aprendizaje
  • Distinguir coste reservado antes de una llamada y coste real después.
  • Detectar repeticiones por intención, herramienta y argumentos normalizados.
  • Limitar pasos, tiempo, llamadas por herramienta y falta de progreso.
  • Guardar una traza que explique por qué se ejecutó o bloqueó una acción.
  • Probar las guardas con fallos deterministas antes de conectar un modelo.
En cristiano: guarda. Es una comprobación determinista colocada entre la propuesta del modelo y el efecto real. Puede permitir o bloquear una acción aunque el modelo insista en continuar.

El problema no es solo un loop infinito

Un agente puede consumir demasiado sin repetir exactamente la misma acción: cambia una palabra, consulta veinte fuentes distintas o sigue produciendo texto sin acercarse al objetivo. OWASP denomina unbounded consumption al riesgo de permitir inferencia o consumo de recursos sin límites adecuados; sus consecuencias incluyen denegación de servicio y pérdidas económicas.

Por eso no basta con max_iterations. Necesitas varias barreras independientes y una política clara para decidir cuál informa del corte.

GuardaQué mideCuándo bloquea
PasosAcciones ya ejecutadasAntes de superar el máximo por tarea
TiempoDuración total monotónicaAntes de ejecutar fuera de la ventana
PresupuestoCoste actual + reserva propuestaAntes de contraer el gasto
Cuota de toolLlamadas por herramientaAntes de exceder su cuota individual
FingerprintIntención, tool y argumentosAntes de la repetición sospechosa
ProgresoCambio de un marcador verificableTras varios pasos sin cambio
Idea clave. La guarda vive fuera del prompt. Si el modelo propone una acción prohibida, el orquestador la bloquea; no le pide amablemente que lo intente menos veces.

Reserva primero, reconcilia después

Antes de llamar a un modelo no conoces los tokens reales de salida. Sí conoces una estimación de entrada y el máximo de salida permitido. Reserva ese peor caso antes de la llamada:

Terminal
reserva =
  tokens_entrada_estimados × tarifa_entrada
  + tokens_salida_maximos × tarifa_salida

si coste_acumulado + reserva > presupuesto:
  bloquear antes de llamar

si la llamada termina:
  sustituir reserva por uso_real
  guardar tokens, coste, latencia y resultado
Cuidado. Los precios, modalidades y tokens facturables cambian. El laboratorio usa tarifas deliberadamente ficticias: nunca las copies para presupuestar un proveedor real. Consulta su página oficial y registra modelo, región, modalidad y fecha.

Laboratorio: siete formas de detenerse

El ejemplo MIT no instala paquetes, no usa la red y no contiene claves. Simula una ejecución sana y seis cortes: repetición, presupuesto, cuota de herramienta, pasos, tiempo y falta de progreso. Todos los importes se guardan como microdólares enteros para evitar errores de coma flotante.

Abrir el laboratorio de guardas de coste y loops

Terminal
git clone https://github.com/aulafy/taller.git
cd taller/cursos/agentes-automatizacion/laboratorios/guardas-coste-y-loops
npm run verificar
Comprueba que funciona. Debes obtener 8 pruebas correctas, 7 escenarios coincidentes y una auditoría que confirme tarifas ficticias, cero secretos, cero red y cero dependencias. El escenario sano completa cuatro pasos por 4.200 microdólares ficticios.

Qué debe ocurrir en cada escenario

EscenarioResultado esperadoAcción que no se ejecuta
sanoCompleta 4 pasosNinguna
loop-fingerprintCorta tras 2 llamadasTercera consulta idéntica
presupuestoConserva el coste en 1.200Reserva propuesta de 7.000
cuota-toolPermite 2 búsquedasTercera búsqueda
max-pasosCompleta 8 pasosPaso número 9
timeoutCompleta 1 pasoAcción fuera de 5 minutos
sin-progresoCompleta 2 pasosTercera acción sin cambio

Fingerprint: repetición semántica acotada

El laboratorio normaliza la intención, ordena recursivamente los argumentos y calcula un hash deintención + tool + args. Así, cambiar el orden de las claves JSON no evade el límite. No compara texto libre completo: una coma distinta no debería crear una acción nueva.

Terminal
fingerprint = sha256({
  intencion: normalizar("reintentar consulta"),
  tool: "consultar_crm",
  args: ordenar_claves({ cliente_id: "CLI-DEMO-99" })
})

si apariciones(fingerprint) >= 3:
  bloquear
  guardar "fingerprint_repetido"

No confundas repetición y falta de progreso

Tres búsquedas distintas producen fingerprints distintos, pero pueden aportar cero evidencia nueva. Define un marcador de progreso que el código pueda comprobar: registros pendientes, fuentes válidas encontradas, campos completados o estado de una máquina. «El agente cree que avanza» no es un marcador.

Orden seguro de una acción

  1. Recibe una propuesta estructurada del modelo.
  2. Valida esquema, tipos, permisos y destino.
  3. Calcula fingerprint, cuota, tiempo, pasos y progreso.
  4. Reserva el coste máximo de la acción.
  5. Bloquea con un motivo trazable o ejecuta con idempotencia.
  6. Registra uso real, latencia, error y efecto.
  7. Reconcilia la reserva y persiste el nuevo estado.

OpenTelemetry dispone de convenciones semánticas para observar llamadas a modelos y herramientas, incluidos los conteos de tokens. Úsalas para evitar nombres incompatibles entre proveedores, pero no registres prompts, respuestas o datos personales por defecto.

Modo degradado y revisión humana

Cortar no significa fallar en silencio. Devuelve un estado explícito: límite alcanzado, trabajo completado, evidencia reunida, acción pendiente y forma segura de continuar. Una operación sensible debe quedar pendiente de aprobación; no reinicies automáticamente el contador.

Terminal
{
  "estado": "detenido",
  "motivo": "presupuesto_reservado",
  "pasos_ejecutados": 1,
  "coste_microusd": 1200,
  "reserva_bloqueada_microusd": 7000,
  "siguiente_accion": "revisar alcance o aprobar nuevo presupuesto"
}
Cuidado. En producción, una variable en memoria no coordina varios procesos. Reserva presupuesto de forma atómica, usa claves de idempotencia, separa límites por organización, usuario y tarea, y combina estas guardas con los topes y alertas financieras del proveedor.

Qué no demuestra este laboratorio

  • No calcula el precio real de ningún modelo ni proveedor.
  • No decide el presupuesto aceptable para una empresa.
  • No mide calidad, veracidad o utilidad de la respuesta.
  • No sustituye permisos, sandboxing, idempotencia ni revisión humana.
  • No prueba concurrencia entre procesos ni facturación agregada diaria.

Fuentes primarias

Probado el 27 de julio de 2026. Node.js 20.11+, sin red ni dependencias externas.

Guardar y reabrir el proyecto.
Un agente responsable reserva antes de gastar, demuestra progreso y sabe detenerse con evidencia.

Si has guardado la evidencia de esta lección, continúa con «Governance MCP». Si no, repite la comprobación antes de avanzar.

Mapa completo de AulafyConsulta cómo encaja esta lección sin salir de tu ruta.

Mapa completo de Aulafy

Cómo se relacionan todos los cursos

No es una lista que debas completar. Empieza por la base, elige un resultado y profundiza solo cuando tu proyecto necesite más control.

  1. 1Comprender
  2. 2Aplicar o construir
  3. 3Operar con confianza
01

Empieza aquí

Crea una base común: qué puede hacer la IA, cómo pedir resultados y cómo comprobarlos antes de especializarte.

Desde esta base puedes aplicar la IA a una tarea o aprender a construir con código.

02

Elige una aplicación

Convierte la base en un resultado visible: una web, una mejora de negocio, contenido o una experiencia interactiva.

Si necesitas mantener código, datos o infraestructura, continúa por la rama técnica.

03

Construye con código

Prepara el entorno, trabaja con agentes de programación y aprende a ejecutar modelos con control sobre tus proyectos.

Esta rama prepara los conocimientos necesarios para diseñar y operar sistemas de IA fiables.

04

Lleva sistemas a producción

Combina recuperación, agentes, evaluación, seguridad, despliegue y adaptación de modelos cuando el problema lo exija.

No es obligatorio completarlo todo: elige solo la pieza que tu sistema necesita y vuelve al mapa cuando crezca.

Ver catálogo completo