Saltar al contenido
AI•4 min de lectura

Guardrails: permisos, sandbox y clasificadores (patrón System One)

Un chatbot que se equivoca te da una respuesta mala. Un agente que se equivoca hace algo: borra un archivo, hace push a main, manda un correo, gasta 200 dólares en una API. Por eso los guardrails no son una feature de seguridad que agregas al final: son parte del diseño.

Esta pieza cubre las tres capas que uso para dormir tranquilo, y un patrón nuevo (System One) que cambió cómo pienso los permisos de un agente.

Las 3 capas de defensa

1. Permisos por tool. Cada tool tiene un nivel: se ejecuta sin preguntar, se pide confirmación, o está prohibida. Es la capa más simple y la más efectiva. Si una tool es peligrosa, no la expongas; si es necesaria, exige confirmación.

2. Sandbox. El agente ejecuta en un entorno aislado, con límites de sistema de archivos, red y tiempo. Un error dentro del sandbox es un error que no toca tu máquina ni tu producción.

3. Clasificadores (juicio antes de ejecutar). Un modelo pequeño evalúa la acción propuesta y decide si es riesgosa, antes de que ocurra. Es la capa nueva, y la más interesante.

El patrón System One, con números reales

Los "System One models" son modelos que no generan texto: evalúan un estado y devuelven decisiones estructuradas con probabilidad. El ejemplo publicado es Jev, de TypeSafe AI, que según la compañía es hasta 200x más rápido y 400x más barato que LLMs comparables en tareas de clasificación. - Source: Introducing System One models and Jev - TypeSafe AI

Los tres tipos de pregunta que responde:

  • Choice: elegir entre opciones, con probabilidad por opción.
  • Score: calificar un input en niveles ordenados (bajo, medio, alto).
  • Noul: pregunta de sí/no, con la probabilidad de que sea verdadera.

Con eso, el guardrail deja de ser "por favor no hagas cosas peligrosas" en el prompt y pasa a ser código: se pregunta "¿esta llamada a bash es riesgosa?" y se bloquea antes de ejecutar. El ejemplo que publica LangChain es de seis líneas:

# Patrón: el clasificador decide ANTES de ejecutar la tool
risk = classify(tool_call, criterion="puede causar dano irreversible?")
if risk.is_high:
    block(tool_call)
else:
    execute(tool_call)

El clasificador revisa cada llamada a una tool y bloquea las peligrosas antes de que se ejecuten. El mismo mecanismo sirve para enrutar: decide si la petición va al modelo barato o al caro. - Source: Introducing System One models and Jev - TypeSafe AI

Lo importante no es la librería: es la idea de separar decidir de generar. Generar es caro y lento; decidir puede ser rápido y barato.

Lo que ya traen los SDKs

La tendencia es clara: los permisos son parte del harness, no un parche externo.

Lo que NO es un guardrail

  • Validar el formato del output. Eso es higiene, no seguridad.
  • Pedirle al modelo que no haga algo. Es una sugerencia, no una barrera; un input malicioso puede convencerlo.
  • Revisar después. Si la acción ya se ejecutó, tu guardrail es un log.
  • Confiar en el prompt del sistema como única defensa. Los agentes reciben instrucciones de fuentes que no controlas (páginas, documentos, correos).

La regla: el guardrail vive en el código que decide si la acción se ejecuta, no en el texto que la pide. Y toda acción irreversible (borrar, publicar, pagar) pasa por confirmación humana o por sandbox, sin excepciones.

Cómo montarlo esta semana

  1. Clasifica tus tools en tres niveles: libre, confirmación, prohibida. Empieza por las que tocan archivos, dinero o producción.
  2. Metas en sandbox las que ejecutan código o comandos.
  3. Añade un clasificador para las acciones grises: las que a veces son seguras y a veces no.
  4. Registra cada decisión del guardrail (qué se bloqueó, por qué, con qué confianza). Eso es también observabilidad. → Observabilidad y trazas
  5. Mide el guardrail como cualquier otra pieza: falsos positivos y falsos negativos. Un guardrail que bloquea trabajo legítimo se desactiva solo.

Si quieres el marco completo, esta es la pieza 7 de las 9 del harness: el desglose está en Harness Engineering y en la guía Agentes: de cero a producción.

¿Tus agentes tienen permisos por tool o todavía confían en que "el prompt lo cubre"? Cuéntame en los comentarios qué guardrail te falta.

Referencias

> Más posts