Passer au contenu principal
Chaque règle de guardrail répond à trois questions — quoi rechercher (un type), où chercher (une étape), et quoi en faire (une action). Cette page porte sur ce troisième choix. L’action d’une règle est le champ le plus conséquent qu’elle porte : elle décide si une correspondance arrête la requête, la réécrit discrètement, ou laisse juste une trace. Le constructeur de règles fait apparaître cinq actions en tout — block, mask, flag, annotate et spotlight. Cette page couvre les trois choix d’application auxquels vous recourez en premier : block, mask et flag. Choisissez-en une par règle (ou, pour une règle PII, routez différentes entités vers différentes actions ; voir §5). Les deux autres sont des actions de modelage du prompt, non bloquantes : annotate injecte une note de sécurité en amont (voir sécurité du code), et spotlight encadre l’entrée non fiable correspondante dans des délimiteurs afin que le modèle la traite comme des données, pas des instructions. Le roster complet vit dans la vue d’ensemble des guardrails. Pour le moteur plus large — types de règles, étapes, attacher une politique à une clé — commencez par la vue d’ensemble des guardrails ou la référence Guardrails complète.

1. La décision block mask flag en une ligne

block

Rejeter l’appel avec une HTTP 400 guardrail_blocked. Le modèle ne tourne jamais (étape input) ou sa réponse ne revient jamais (étape output).

mask

Redacter chaque correspondance — par exemple jane@acme.com[EMAIL] — et laisser passer le texte assaini. La requête continue.

flag

Ne rien changer au trafic. Enregistrer une correspondance dans le flux et continuer. Observation seule.
Ce sont les trois actions d’application. Quelle que soit celle que vous définissez, elle est honorée partout où la règle s’exécute — le constructeur de règles de la console, le sandbox Test, et le chemin de relais /v1/* réel lisent tous la même valeur block / mask / flag.

2. Un exemple concret — trois règles, trois actions

Voici un seul guardrail dont les trois règles choisissent chacune une action différente. Vous le rédigez dans la console (/console/guardrails) sur votre session — la clé de relais sk-orca-... ne sert qu’aux appels /v1/*, jamais à modifier la politique. Créer ou modifier un guardrail nécessite le rôle Developer+.
{
  "rules": [
    { "type": "keyword", "stage": "input",  "action": "block",
      "keywords": ["internal-only", "do-not-share"] },
    { "type": "pii",     "stage": "input",  "action": "mask",
      "entities": ["email", "phone"] },
    { "type": "regex",   "stage": "output", "action": "flag",
      "pattern": "(?i)acme\\s+confidential" }
  ]
}
Ce que fait chaque règle sur une requête :
  • La règle block rejette tout prompt contenant l’un de ces termes littéraux — HTTP 400, le modèle ne tourne jamais.
  • La règle mask réécrit les emails et numéros de téléphone en [EMAIL] / [PHONE] dans le prompt avant que le modèle ne le voie.
  • La règle flag surveille la sortie du modèle à la recherche d’un marqueur confidentiel et enregistre une correspondance sans altérer la réponse — afin que vous puissiez mesurer à quelle fréquence il apparaît avant de décider de l’appliquer.
Le moteur exécute chaque règle applicable et fond les résultats en un seul verdict. Si une règle bloque, la requête est bloquée.

3. block — rejeter avec une HTTP 400

Une action block rejette tout l’appel. L’appelant obtient une HTTP 400 avec le code d’erreur guardrail_blocked et un message nommant le guardrail et la règle qui s’est déclenchée.
Un block à l’étape input se déclenche avant la mesure, donc rien n’est consommé. Un block à l’étape output rembourse le quota pré-consommé après le rejet de la réponse. Dans les deux cas, l’appelant ne paie rien pour un appel bloqué.
Un résultat guardrail_blocked est skip-retry — ré-exécuter le même prompt contre un autre canal ne ferait que bloquer à nouveau, donc la passerelle ne gaspillera pas un retry. Voir l’erreur guardrail_blocked.
Sur une réponse non-streaming, la réponse est filtrée avant son retour. Sur une réponse streaming, un scanner coupe le flux en plein vol et émet un message de remplacement avant que tout contenu bloqué n’atteigne le client. Voir couverture du streaming.
Recourez à block quand une correspondance signifie que la requête ne doit pas continuer — secrets dans un prompt, tentative de jailbreak, une ligne de conformité dure.

4. mask — redacter et continuer

Une action mask redacte chaque correspondance et laisse passer la requête avec le texte assaini. Le modèle en amont ne voit jamais l’original. Sur une règle PII, chaque correspondance est remplacée par une balise typée dérivée de l’entité — un email devient [EMAIL], un SSN devient [SSN], une carte de crédit [CREDIT_CARD], et ainsi de suite. (Vous pouvez surcharger la chaîne de remplacement par entité personnalisée ; voir formats de masquage.)
Le masquage à l’étape input est actif sur chaque flux. Il réécrit la requête avant que le modèle ne tourne, streaming ou non. Le masquage à l’étape output s’applique aux réponses non-streaming uniquement — le texte masqué est transmis après que la réponse complète a été filtrée. Sur une réponse streaming, la passerelle calcule le masque mais ne transmet pas encore le texte redacté, donc une règle mask ne redacte pas une réponse streaming aujourd’hui ; le masquage de sortie in-stream est sur la feuille de route. (Un block de sortie coupe toujours un flux en plein vol — voir §3.) Prouvez votre combinaison exacte étape/flux dans le sandbox d’abord. Voir couverture du streaming.
Recourez à mask quand le contenu est correct mais qu’une sous-chaîne ne devrait pas atteindre le modèle — la redaction de PII est le cas canonique. Le point de départ clé en main est le preset PII Shield ; voir PII Shield.

5. flag — journaliser seulement, ne rien changer

Une action flag est observation seule : la requête est identique octet pour octet à une requête sans aucune règle, sauf qu’une correspondance est enregistrée dans le flux des correspondances. Rien n’est bloqué, rien n’est redacté.
flag est la façon dont vous mesurez une règle avant de l’appliquer. Livrez un nouveau keyword ou regex en flag, surveillez le flux Matches quelques jours pour voir son taux vrai-vs-faux-positif sur le trafic réel, puis promouvez-le en mask ou block une fois que vous lui faites confiance. Ajuster un motif bruyant avec flag activé vaut mieux que découvrir les faux positifs en production avec block activé. Voir ajuster les faux positifs.
Une correspondance signalée enregistre le type de règle, l’action, l’étape et une chaîne de détail — et la sous-chaîne correspondante uniquement si Log raw content est activé pour ce guardrail (désactivé par défaut, la posture conservatrice en matière de confidentialité). Voir journalisation & confidentialité.

6. Overrides d’action par entité

Une seule règle PII peut router différentes entités vers différentes actions via entity_actions, au lieu d’empiler des règles qui se chevauchent. Chaque valeur d’override doit être l’une de block / mask / flag / annotate, et doit référencer une entité que la règle déclare déjà — le validateur rejette tout le reste.
{
  "type": "pii",
  "stage": "input",
  "action": "mask",
  "entities": ["email", "phone", "ip", "credit_card", "ssn"],
  "entity_actions": {
    "credit_card": "block",
    "ssn": "block"
  }
}
Cette seule règle masque les emails, téléphones et IPs mais bloque carrément la requête sur un numéro de carte ou un SSN. Voir entités PII personnalisées pour superposer vos propres détecteurs sous le même modèle d’override.

7. Choisir la bonne action

Si vous voulez…UtilisezEffet
Arrêter entièrement la requêteblockHTTP 400, aucun quota, skip-retry
Retirer une sous-chaîne, garder l’appelmaskTexte redacté transmis
Observer sans toucher au traficflagCorrespondance enregistrée seulement
Les actions se composent avec les étapes. La même action se comporte légèrement différemment sur input vs output — un block input économise le quota d’emblée ; un block output le rembourse ; le masquage de sortie s’applique aux réponses non-streaming uniquement, tandis qu’un block de sortie coupe les réponses streaming et non-streaming de la même manière. Lisez étape input et étape output en parallèle de cette page.

8. Où aller ensuite

L'erreur guardrail_blocked

À quoi ressemble une 400, pourquoi elle ne coûte aucun quota, et comment fonctionne skip-retry.

Formats de masquage

Balises typées, chaînes de remplacement personnalisées, et à quoi ressemble un prompt masqué pour le modèle.

Couverture du streaming

Exactement quelles combinaisons action × étape × flux sont appliquées aujourd’hui.

Modes d'application

Comment block / mask / flag se mappent sur le modèle d’application plus large de la passerelle, y compris le verdict audit du firewall.
Le firewall a son propre vocabulaire de verdicts (allow, audit, deny, sanitize, et plus) pour la politique d’outils — distinct de ces actions de contenu. Voir guardrails vs. firewall.