sk-… déposée dans un
champ command, un numéro de sécurité sociale client collé dans un body,
un token interne dans un en-tête de requête. Le verdict sanitize du
firewall attrape ce matériel dans les arguments de l’appel d’outil, le
remplace par un token de redaction typé, et transmet l’appel nettoyé — de
sorte que l’action s’exécute quand même, mais le secret ne quitte jamais la
passerelle.
C’est un verdict dans le langage de correspondance du firewall. Pour
l’ensemble complet voir Verdicts et la
référence des règles ; cette page est le guide
ciblé sur la rédaction et le raisonnement autour de sanitize.
1. Ce que fait sanitize — et ce qu’il ne touche jamais
Une règle avecverdict: sanitize exécute un moteur de redaction sur les
arguments de l’appel d’outil avant que l’appel ne soit dispatché. Chaque
correspondance est remplacée par un token canonique et l’appel se poursuit
avec les arguments nettoyés — l’outil s’exécute quand même, juste sans le
secret brut dedans.
Redacte
Les arguments JSON d’un
tool_call émis par le modèle ou d’un
tools/call MCP — command, body, headers, tout champ de chaîne où
un secret ou de la PII a atterri.Ne redacte jamais
Le contenu qu’un outil renvoie, le prompt, le texte de réponse du
modèle. Sanitize est un redacteur d’arguments uniquement. Le filtrage de
texte est une affaire de
Guardrail.
[redacted:<preset>] (par ex.
[redacted:openai_key]), et une correspondance de motif custom devient
[redacted:custom]. La forme de l’argument est préservée — seule la
sous-chaîne sensible change — de sorte qu’un outil qui attend du JSON valide
reçoit quand même du JSON valide.
2. Les presets de détecteurs intégrés
Une règle sanitize nomme un ou plusieurs presets (formes de secret/PII bien connues) et/ou des motifs custom de regex. Les presets intégrés :| Preset | Attrape |
|---|---|
aws_access_key | Id de clé d’accès AWS (AKIA… / ASIA… + 16 caractères) |
aws_secret_key | Un secret AWS de 40 caractères (sensible aux limites) |
openai_key | sk- + ≥32 caractères |
anthropic_key | sk-ant- + ≥40 caractères |
bearer_token | Bearer + un token de ≥16 caractères (mot-clé conservé) |
email | Une adresse e-mail |
ssn_us | Un SSN américain sous la forme 3-2-4 |
credit_card | Une suite de 13 à 19 chiffres qui passe une vérification de Luhn |
Une règle sanitize doit déclarer au moins un preset ou motif custom — un
assainisseur vide est rejeté quand vous enregistrez la règle. Une
correspondance
credit_card est de plus vérifiée par Luhn, de sorte qu’un
nombre de même longueur qui n’est pas une carte valide est laissé intact
plutôt que sur-redacté.3. Un exemple concret
Rédigez ceci dans l’éditeur de règles de la console. L’exemple redacte une clé OpenAI et tout e-mail des arguments de tout appel d’outilhttp.* que
votre agent émet, puis transmet l’appel nettoyé :
key=[redacted:openai_key] user=[redacted:email] — la requête s’exécute
quand même, le secret et l’adresse ne quittent jamais la passerelle.
4. Sur la surface inbound, sanitize escalade en deny
La surfaceinbound évalue les outils qu’un
agent annonce sur une requête — des définitions d’outils, qui ne portent
pas encore d’arguments au moment de l’appel. Il n’y a rien à redacter là,
donc un verdict sanitize sur la surface inbound escalade en un deny
(fail-closed) : la requête est bloquée avec firewall_blocked plutôt que
transmise non redactée.
5. Sanitize vs. les autres façons de gérer un secret
Trois couches peuvent agir sur un secret qu’un agent est sur le point de fuiter — choisissez selon quoi et où :Sanitize (firewall) — redacter les arguments de l'appel d'outil
Sanitize (firewall) — redacter les arguments de l'appel d'outil
Retire le secret des arguments d’un appel d’outil et exécute quand
même l’appel. Utilisez-le quand l’action est légitime mais que l’agent a
mis quelque chose de sensible dans un champ. Couche des arguments
uniquement.
Deny (firewall) — bloquer tout l'appel
Deny (firewall) — bloquer tout l'appel
Arrête l’appel entièrement. Utilisez-le quand l’action elle-même est
dangereuse, pas seulement un argument. C’est aussi ce que sanitize devient
sur la surface inbound. Voir
bloquer des outils.
Guardrails — filtrer le texte des prompts / réponses
Guardrails — filtrer le texte des prompts / réponses
Les guardrails Secrets Blocker et PII
filtrent le texte d’une requête ou d’une réponse (y compris, sur le
stage de sortie, le contenu généré par le modèle). C’est la couche pour
« ce qu’un outil ou un modèle renvoie » — la chose que sanitize ne fait
pas.
6. Où sanitize apparaît dans votre trace
Comme chaque verdict, une évaluation sanitize est enregistrée comme un événement firewall — filtrable par verdict, surface, outil et exécution dans le journal d’événements et agrégé dans analytics. En mode shadow, un verdict sanitize (comme chaque verdict appliquant) est rétrogradé enaudit et la raison est
préfixée [shadow] would …, de sorte que vous pouvez mesurer l’impact avant
qu’aucun argument ne soit réellement réécrit.
Où aller ensuite
Tous les verdicts
allow, audit, deny, sanitize, pending_approval, cap_cost.
Valider les arguments
Faire correspondre un appel par ce qui est dans ses arguments — la
grammaire des clauses JSONPath.
Bloquer des outils
Quand l’action elle-même est le problème, refusez tout l’appel.
Firewall + Guardrails
Filtrer le texte qu’un outil ou un modèle renvoie — la couche que
sanitize ne couvre pas.
