Yeda AI Tips · #049

English

Los guardrails son dos puntos de control, no uno

Alguien escribe una solicitud en tu función de IA y el modelo simplemente responde: sin fricción, sin verificación, sin nada que se interponga entre "el usuario preguntó" y "el modelo lo hizo". Así se ve funcionar con cero guardrails. La solución no es un filtro atornillado en algún lado. Son dos.

El problema: un solo filtro cubre la mitad del riesgo

La mayoría de los equipos que agregan "un guardrail" agregan exactamente una verificación, normalmente justo antes de que el modelo responda, y dan por hecho el trabajo. Pero un único punto de control solo atrapa fallas en un lado del intercambio. Se pierde por completo las fallas que ocurren del otro lado.

Los guardrails se dividen naturalmente en dos categorías, según cuándo se ejecutan respecto a la llamada al modelo:

No son redundantes. Una verificación de entrada no puede ver lo que el modelo está a punto de decir: solo sabe lo que preguntó el usuario. Una verificación de salida no puede deshacer el hecho de que el modelo ya procesó un prompt malicioso: solo puede atrapar lo que se filtra por el otro extremo.

Por qué funciona: cada lado tiene una tarea distinta

Los guardrails de entrada son tu primera línea de defensa. Los patrones comunes incluyen:

Los guardrails de salida atrapan lo que se coló, o lo que el modelo produjo por su cuenta incluso a partir de una entrada limpia:

La razón por la que ambos importan: un guardrail de entrada puede estar limpio y el modelo aun así puede producir una respuesta insegura. Y un guardrail de salida por sí solo significa que ya gastaste una llamada al modelo, y potencialmente expusiste al modelo a un prompt malicioso, antes de atrapar nada.

Cómo construirlo

No necesitas un framework pesado para empezar. Cada guardrail es apenas una pequeña función, una lista de patrones o una rúbrica evaluada por un clasificador ligero (o una llamada a un LLM más barato). La forma es simple:

request → [input check] → model → [output check] → response

  1. Escribe primero la verificación de entrada. Empieza por las detecciones de mayor valor: un filtro fuera de tema, un detector de PII, una verificación de patrones de jailbreak.
  2. Escribe la verificación de salida después. Como mínimo, ejecuta un clasificador de seguridad de contenido sobre la respuesta generada antes de devolverla. Agrega una pasada de detección de fugas específica para tu esquema si tu función puede exponer datos estructurados.
  3. Conecta ambas al camino de la solicitud, no como algo añadido después: la verificación de salida debe bloquear que la respuesta llegue al usuario, no solo registrar una advertencia.
  4. Registra cada bloqueo, en ambos lados. Cada entrada bloqueada adelanta el próximo patrón de ataque; cada salida bloqueada muestra dónde están realmente los modos de falla de tu modelo.

Un patrón de demostración concreto: una solicitud que el guardrail de tema debe rechazar devuelve algo como "Blocked. Topic not allowed"; una solicitud que dispara el filtro de toxicidad devuelve "Unsafe content detected"; una solicitud que carga datos sensibles devuelve "Sensitive information detected". Los tres viven en el lado de entrada y nunca tocan el modelo. El lado de salida ejecuta su propia verificación de contenido, separada, sobre lo que el modelo realmente produjo.

Errores comunes

Trucos de poder

Recursos

¿Estás lanzando una función de IA? Yeda AI diseña, audita y lanza sistemas LLM en producción.

Hablemos · Lee el blog