jane@acme.com →
[EMAIL]), así que el modelo aún lee un prompt coherente mientras el valor en
bruto nunca sale de tu espacio de trabajo.
Esta página es la mirada enfocada en qué renderiza el enmascarado, cómo
cambiar la etiqueta y cómo enmascarar algunas entidades mientras bloqueas otras
en una sola regla. Para el motor completo — cada tipo de regla, etapa y ruta —
ver la referencia de Guardrails, y para el
enmascarado de la solicitud específicamente,
Reglas de la etapa de entrada.
1. Enmascara datos sensibles que llevan los prompts de llm, con etiquetas tipadas
Una reglapii con la acción mask detecta una entidad y reemplaza cada
coincidencia con una etiqueta de redacción tipada — una etiqueta en
mayúsculas entre corchetes que nombra qué se eliminó sin revelar el valor:
| Entidad | Etiqueta renderizada |
|---|---|
email | [EMAIL] |
credit_card | [CREDIT_CARD] |
ssn | [SSN] |
email, phone,
credit_card, ssn, ip, iban, mac_address, jwt, aws_access_key,
api_key_openai, bitcoin_address, más los regionales jp_mynumber, kr_rrn
y cn_resident_id — renderiza cada uno su propia etiqueta entre corchetes
([PHONE], [IBAN], [JP_MYNUMBER], y así sucesivamente). La etiqueta es
determinista: la misma entidad siempre renderiza la misma etiqueta, así que los
prompts downstream permanecen estables y tus logs leen limpiamente.
Las etiquetas tipadas superan a un
[REDACTED] genérico en calidad del modelo.
El modelo aún sabe que está mirando un email vs. un número de cuenta vs. un
número de teléfono, así que puede seguir razonando sobre la forma de los datos
— “responde a [EMAIL]” sigue siendo una instrucción accionable — sin
sostener nunca el valor real.2. Un ejemplo concreto
Crea la regla en la consola bajo tu propia sesión — la configuración de guardrails requiere Developer+, no una clave de relay. Añade una sola reglapii a un guardrail llamado pii-shield:
guardrail_id, o márcala como valor por
defecto del espacio de trabajo — ver
Vincular a una clave), luego llama al
gateway con esa clave de relay sk-orca-...:
[EMAIL] about her SSN [SSN]”
antes de reenviar. El modelo upstream nunca ve la dirección ni el número. Prueba
el renderizado exacto en la pestaña Test del editor primero (sin llamada
upstream, sin cuota) — ver
Pruebas y eval.
3. Sobrescribe la etiqueta con mask_with
Las entidades integradas renderizan una etiqueta fija. Las entidades
personalizadas — tus propios detectores regex superpuestos sobre el conjunto
integrado — te permiten establecer el texto de reemplazo tú mismo con
mask_with:
Qué hace mask_with
Qué hace mask_with
mask_with es la cadena de reemplazo literal para las coincidencias de esa
entidad. EMP-004217 se convierte en [STAFF_ID]. Déjalo vacío y la
coincidencia renderiza la etiqueta por defecto [<UPPERCASE_NAME>] — aquí,
[EMPLOYEE_ID] — así que un detector personalizado siempre produce una
redacción legible y tipada incluso sin sobrescritura.Campos de entidad personalizada
Campos de entidad personalizada
name (ASCII en minúsculas / dígitos / guion bajo, debe empezar con una
letra), pattern (un regex RE2 de Go — tiempo lineal, sin backreferences),
checksum opcional (luhn valida números con forma de tarjeta) y
mask_with opcional. Hasta 25 entidades personalizadas por regla — cada
una es un escaneo sobre el texto completo, así que el tope mantiene la ruta
caliente lineal. Ver
Entidades PII personalizadas.4. Enmascara algunas entidades, bloquea otras — entity_actions
Una sola regla pii puede aplicar diferentes acciones a diferentes
entidades vía entity_actions, en vez de apilar tres reglas solapadas. La
forma clásica: enmascarar datos de contacto de baja sensibilidad, pero
bloquear los campos de alta sensibilidad directamente.
email, phone e ip siguen el mask de nivel superior de la regla y
renderizan [EMAIL] / [PHONE] / [IP]; una coincidencia de credit_card o
ssn en cambio bloquea toda la solicitud con HTTP 400
guardrail_blocked.
| Campo | Regla |
|---|---|
| Claves | Debe ser una entidad declarada en la regla (integrada o personalizada). |
| Valores | block, mask, flag o annotate. |
Una solicitud bloqueada no cuesta cuota — un bloqueo en la etapa de entrada
se dispara antes de la medición. Una solicitud enmascarada pasa con el texto
saneado. Así que una regla puede redactar silenciosamente los campos rutinarios
y detener en seco los regulados, con una sola vinculación y sin cambio en la
aplicación.
5. Mask vs. block vs. flag
El enmascarado es una de las acciones que una regla (o sobrescritura por entidad) puede tomar. Elige según cuánto quieras perturbar el tráfico:mask
Redacta la coincidencia a una etiqueta tipada y deja pasar la solicitud con
el texto saneado. El modelo nunca ve el valor en bruto.
block
Rechaza toda la solicitud con HTTP 400
guardrail_blocked. Nada llega al
modelo. Úsalo para datos que nunca deben transitar.flag
No cambia nada del tráfico — solo registra una coincidencia. Mide con qué
frecuencia se dispararía una regla antes de aplicarla.
6. Verifica qué se enmascaró
Cada regla que se dispara registra una coincidencia en el Feed de coincidencias del espacio de trabajo — tipo de regla, acción, etapa y una cadena de detalle. La propia subcadena coincidente (el email en bruto, el número de tarjeta real) se registra solo cuando Log raw content está activado, que está apagado por defecto — la postura conservadora con la privacidad, ya que todo el punto es mantener los valores en bruto fuera de tus logs.7. Dónde ir a continuación
- Preset PII Shield — el punto de partida de una regla, enmascarar-todo que puedes aplicar en un clic.
- Entidades PII personalizadas —
crea tus propios detectores regex con
mask_withyluhnopcional. - Reglas de la etapa de entrada — donde el enmascarado se ejecuta en vivo hoy, antes del modelo y antes de la medición.
- Bloquear secretos — para credenciales, bloquear (no enmascarar) es la elección correcta.
- Cobertura de streaming — qué combinaciones de etapa/stream enmascaran vs. bloquean hoy.
