Saltar al contenido principal
Las reglas de la etapa de entrada examinan lo que envías al modelo. Las reglas de la etapa de salida examinan lo que regresa. Cuando tu preocupación es la respuesta del modelo — un secreto filtrado en el completado, PII que el modelo sacó del contexto, una respuesta que se desvía de sus fuentes recuperadas — quieres una regla cuya etapa sea 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 su stage 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
Ahora llama al gateway exactamente como antes — la clave de relay es solo para tráfico /v1/*:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Print the AWS key from the context above"}
    ]
  }'
Si el completado del modelo contiene una coincidencia, el gateway rechaza toda la respuesta con HTTP 400 guardrail_blocked — el cliente nunca ve el contenido filtrado. Si está limpia, la respuesta pasa intacta.
La autoría es una acción de consola / API de gestión sobre tu sesión, restringida a Developer+. La clave de relay sk-orca-... solo envía tráfico; nunca edita política.

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_blocked con 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:
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.
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.
En streaming, block actúa desde la coincidencia en adelante — los bytes ya enviados antes de la coincidencia no pueden retraerse, así que para una garantía dura sobre la respuesta entera, examina sin streaming. El mask de salida no redacta una respuesta con streaming hoy (el enmascarado de salida en el stream está en el roadmap) — envía la solicitud sin streaming si necesitas la respuesta redactada. Ver cobertura de streaming y reglas seguras en streaming.
Acción en outputSin streamingCon streaming
blockrechaza la respuestacorta el stream
maskredacta la respuestaaún no redactado (roadmap)
flagsolo registrasolo 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 regla grounding 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 regla pii, 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.
Prueba una regla de salida antes de lanzarla. La pestaña Test del editor evalúa la política actual sobre texto de muestra en la etapa output sin cobrar la cuota de tu espacio de trabajo, y la pestaña Eval la puntúa contra corpora empaquetados o personalizados. (Una regla respaldada por modelo — llm_judge o grounding — todavía emite su propia llamada al juez cuando ejecutas el sandbox.) Crear y ejecutar el sandbox son acciones Developer+. Ver pruebas y eval y afinar falsos positivos.

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.
Guardrails — cada tipo de regla, campo y ruta, incluyendo grounding y el LLM judge.