output. El gateway la
ejecuta después de que el modelo upstream responde y antes de que un solo byte
llegue a tu cliente.
Esta página cubre la etapa de salida específicamente: cómo se examina un
completado, qué cuesta un bloqueo, y cómo se comportan block y mask cada uno
en respuestas con streaming. Para el motor completo — cada tipo de regla, campo
y ruta — ver Guardrails.
1. Por qué los equipos recurren a los guardrails de salida llm
El modelo es la parte no confiable del ciclo. Puede repetir un secreto del prompt, sacar el email de un cliente del contexto RAG o alucinar una afirmación que tus fuentes nunca hicieron. Nada de eso es visible en la etapa de entrada, porque nada de eso existe hasta que el modelo ha respondido. Un guardrail de la etapa de salida es el examen del propio completado. Una regla se ejecuta en la etapa de salida cuando sustage es output (o
both). El gateway evalúa el texto de la respuesta del modelo contra la
política, registra cualquier coincidencia, y luego o la deja pasar, la redacta o
la rechaza — exactamente las mismas acciones block / mask / flag que usas
en la entrada, solo aplicadas a la respuesta.
Las reglas de salida son una preocupación de superconjunto, no un
reemplazo. La mayoría de las políticas examinan
input para mantener datos
fuera del prompt y output para capturar lo que el modelo devuelve. La etapa
both adjunta una regla a ambos extremos.2. Un ejemplo concreto — bloquear un secreto en la respuesta
Crea un guardrail en la consola (/console/guardrails), añade una regla y
vincúlala a una clave:
- Tipo: Secrets / detector regex
- Etapa:
output - Acción:
block
/v1/*:
guardrail_blocked — el cliente nunca ve el
contenido filtrado. Si está limpia, la respuesta pasa intacta.
3. Qué cuesta un bloqueo de salida
A diferencia de un bloqueo de entrada — que se dispara antes de que la solicitud se mida — un bloqueo de salida ocurre después de que el modelo upstream ya se ejecutó. El gateway maneja la contabilidad por ti:- Un completado bloqueado todavía devuelve HTTP 400
guardrail_blockedcon un mensaje que nombra el guardrail y la regla que se disparó. - No se cobra cuota. El bloqueo de salida reembolsa la cuota preconsumida después de que la respuesta es rechazada, así que la llamada fallida es gratis para ti aunque el modelo produjo tokens.
- La solicitud se marca como skip-retry — reejecutar el mismo prompt simplemente volvería a bloquear, así que el gateway no quemará un reintento en otro canal.
Esta es la diferencia clave respecto a la etapa de entrada. Un bloqueo de
entrada es gratis porque la medición no ha empezado; un bloqueo de
salida es gratis porque la cuota preconsumida se reembolsa una vez que
la respuesta es rechazada. En cualquier caso el llamador no paga nada. Ver
el error guardrail_blocked.
4. Streaming — block vs. mask
Block se aplica en respuestas con streaming; el mask de salida aún no. Así se comporta cada uno:block — aplicado con streaming Y sin streaming
block — aplicado con streaming Y sin streaming
En una respuesta sin streaming, el completado se examina por completo
antes de regresar. En una respuesta con streaming, un escáner observa
los deltas a medida que fluyen; cuando una regla de bloqueo se dispara en
pleno stream corta el stream — el escáner se sella, emite un breve aviso
de reemplazo en lugar del resto, y el canal SSE se cierra antes de que
cualquier contenido bloqueado llegue al cliente.Los bytes ya enviados no pueden retraerse, así que un bloqueo es de mejor
esfuerzo sobre lo que ya se transmitió pero detiene de forma fiable todo
después de la coincidencia. Para una garantía dura de que ningún byte
ofensivo se envíe jamás, usa una solicitud sin streaming.
mask — solo sin streaming (enmascarado en el stream en el roadmap)
mask — solo sin streaming (enmascarado en el stream en el roadmap)
En una respuesta sin streaming, una regla mask reescribe el completado
— p. ej. un email en la respuesta se convierte en
[EMAIL] — y el texto
saneado es lo que tu cliente recibe.En una respuesta con streaming, una regla mask de salida no redacta
la respuesta hoy. El escáner aún evalúa cada delta y actuará sobre una
decisión block, pero el texto enmascarado que computa no se reenvía —
los deltas en bruto fluyen sin cambios. La reescritura de salida en banda en
el stream está en el roadmap. Hasta que se lance, envía la solicitud
sin streaming si necesitas que un mask de salida realmente redacte la
respuesta.Acción en output | Sin streaming | Con streaming |
|---|---|---|
block | rechaza la respuesta | corta el stream |
mask | redacta la respuesta | aún no redactado (roadmap) |
flag | solo registra | solo registra |
5. Grounding — una verificación de fidelidad de la etapa de salida
Una regla avanzada tiene forma de salida por naturaleza: contextual grounding. Una reglagrounding puntúa la respuesta del modelo contra las
fuentes recuperadas en la solicitud (tu contexto RAG) y se dispara cuando la
fidelidad cae por debajo de un umbral (por defecto 0.7). Emparéjala con
block para rechazar respuestas no fieles, o flag para medir el desvío antes
de aplicar. Factura como una sub-línea de juez, como cualquier regla respaldada
por un modelo. Los campos completos viven en
Guardrails.
6. PII Shield en la etapa de salida
El preset PII Shield es una sola reglapii, acción mask, etapa both.
En la etapa de entrada está totalmente activo — reescribe la solicitud
antes del modelo, con y sin streaming. En la etapa de salida enmascara
completados sin streaming, como en
§4; en una respuesta con streaming el mask de
salida no redacta la respuesta hoy (el enmascarado de salida en el stream está
en el roadmap).
Así que en la etapa de salida, llama sin streaming si necesitas que PII
Shield realmente redacte la respuesta. Ver
PII Shield y
formatos de enmascarado.
7. Ver qué se disparó
Cada regla de salida que se dispara registra una coincidencia — su tipo de regla, acción, etapa (output) y una cadena de detalle — en el feed
Matches del espacio de trabajo (GET /api/guardrail/match, abierto a
cualquier Member).
La subcadena coincidente se registra solo cuando el toggle Log raw
content del guardrail está activado; está apagado por defecto (la postura
conservadora con la privacidad), así que por defecto ves que una regla de
salida se disparó, no el texto sensible que capturó. Un falso positivo se marca
con POST /api/guardrail/match/:id/mark-fp (Admin) — trátalo como una señal
de ajuste, no como una razón para deshabilitar la regla.
8. Dónde ir a continuación
Etapa de entrada
La imagen en espejo — examina la solicitud antes de que el modelo la vea. El
enmascarado de entrada está totalmente activo, incluido el streaming.
Acciones
block, mask y flag en profundidad — cuándo cada una es la elección
correcta.
Cobertura de streaming
La matriz completa de qué se aplica con streaming vs. sin streaming.
error guardrail_blocked
El HTTP 400, el reembolso de cuota y el comportamiento skip-retry.
Conceptos relacionados
Conceptos relacionados
Amenazas que esto aborda
Amenazas que esto aborda
Referencia completa del motor
Referencia completa del motor
Guardrails — cada tipo de regla, campo y ruta,
incluyendo grounding y el LLM judge.
