Guardrails
Des contrôles appliqués au message entrant avant le modèle et à la réponse avant votre utilisateur, enregistrés avec la version de l'agent et consignés dans la trace.
Les garde-fous se règlent par agent, dans l'onglet Guardrails de la page de l'agent, et sont enregistrés avec la version de l'agent comme le reste de sa configuration : une exécution applique les garde-fous de la version à partir de laquelle elle a été créée. Chaque décision est consignée dans la trace de l'exécution sous la forme d'un évènement guardrail.evaluated. Un message ou une réponse bloqués terminent l'exécution avec le statut refused et le message de refus de l'agent, jamais avec le texte du modèle. Sur l'API publique, un message refusé par un garde-fou d'entrée déterministe est rejeté par une erreur 400 (GUARDRAIL_BLOCKED) avant qu'aucune exécution ne soit créée.
Il existe 2 sortes de garde-fous :
- Déterministes : de simples fonctions, sans appel de modèle ni accès réseau.
- À modèle : un modèle de chat joue le rôle de juge. Par défaut, c'est le modèle de l'agent lui-même ; Modèle de guardrail permet d'en choisir un plus petit et plus rapide. Ces appels sont mesurés comme tout autre appel de modèle.
Entrée
Appliqués au message de l'utilisateur avant l'appel du modèle.
| Garde-fou | Sorte | Ce qu'il fait |
|---|---|---|
| Taille max d'input | Déterministe | Refuse un message plus long que le nombre de caractères que vous fixez (100 000 au plus). |
| Anti-injection de prompt | Motifs, puis modèle | Bloque une tentative de passer outre les instructions de l'agent. L'examen par motifs rend un verdict même quand aucun modèle juge n'est disponible. |
| Sujets interdits | Modèle | Refuse les messages qui portent sur les sujets que vous listez (50 au plus). |
| Détection PII en entrée | Déterministe | Détecte une adresse e-mail, un numéro de téléphone, un numéro de carte ou un IBAN dans le message et le signale dans la trace. Le message est tout de même traité : rien n'est caviardé ni bloqué. |
Sortie
Appliqués à la réponse avant que votre utilisateur la reçoive.
| Garde-fou | Sorte | Ce qu'il fait |
|---|---|---|
| Plafond de tokens en sortie | Déterministe | Une limite dure sur les jetons que le modèle peut générer. |
| Motifs interdits | Déterministe | Du texte ou des expressions régulières qui ne doivent jamais sortir. La réponse est examinée phrase par phrase pendant qu'elle s'affiche ; en cas de correspondance, la génération s'arrête et le message de refus remplace la réponse. |
| Filtre de toxicité | Modèle | Bloque un contenu offensant ou dangereux. |
| Protection du system prompt | Motifs, puis modèle | Bloque une réponse qui divulgue les instructions de l'agent. |
| Validation de schéma | Déterministe | Vérifie une réponse structurée contre les schémas de sortie de l'agent. |
Les garde-fous de sortie à modèle jugent la réponse finale une fois qu'elle s'est affichée. S'ils la bloquent, le texte déjà affiché est retiré et remplacé par le message de refus.
Comportement
- Périmètre de réponse refuse une demande qui sort manifestement du périmètre fixé par les instructions de l'agent. Un modèle juge compare le message entrant aux 4 000 premiers caractères des instructions, et laisse passer la conversation ordinaire, comme une salutation.
- Message de refus personnalisé est ce que reçoit votre utilisateur chaque fois qu'un garde-fou refuse, à la place du message générique.
Le même onglet porte aussi les plafonds de dépense d'une exécution, décrits dans Budgets et quotas.
Presets et défaillances du juge
Le Preset (strict, standard, permissif) active un ensemble de garde-fous en un clic. Il décide aussi de ce que fait un garde-fou à modèle quand son juge fait défaut : fournisseur indisponible, réponse illisible, ou aucun modèle de chat disponible pour juger.
| Preset | Temps accordé à chaque juge | Quand le juge fait défaut |
|---|---|---|
| strict | 8 s | Le message ou la réponse est bloqué. |
| standard | 6 s | Il passe, signalé dans la trace. |
| permissif | 4 s | Il passe, signalé dans la trace. |
En entrée, un juge qui dépasse son temps bloque le message, quel que soit le preset. Le délai et ce comportement se modifient par agent avec les variables GUARDRAIL_INPUT_TIMEOUT_MS et GUARDRAIL_INPUT_ON_TIMEOUT. Laisser passer le message reste alors signalé dans la trace, pour distinguer un message que le juge a validé d'un message qu'il n'a jamais vu.
Un widget sur un site public est joignable par n'importe qui, et tout ce qu'il retrouve a pu être écrit par n'importe qui : c'est exactement la combinaison dont l'injection indirecte de prompt a besoin. Les garde-fous réduisent les risques ; ils ne défont pas ce qu'un modèle convaincu fait avec ses outils. Pour un tel agent, activez Servi à des utilisateurs non authentifiés dans l'onglet Config. Ses exécutions ne reçoivent alors plus le Navigateur ni aucun serveur MCP distant, et l'espace de travail perd run_python et run_command, quels que soient les accès de l'agent. Chaque retrait est consigné dans l'exécution. Les outils HTTP de l'organisation sont conservés : un outil HTTP à effet de bord reste détournable, et seul son auteur peut juger si cela compte.
Contenu non fiable
Indépendamment des garde-fous, ce que l'agent n'a pas reçu de son utilisateur est encadré comme donnée non fiable avant d'entrer dans le prompt : pièces jointes, extraits de connaissances, sorties des outils HTTP, MCP et de recherche de connaissances, descriptions des outils MCP tiers. L'encadrement se fait en un seul endroit pour toute la plateforme, et le contenu encadré ne peut pas écrire le marqueur de fermeture de son propre cadre. Un examen signale aussi les formulations suspectes dans la trace, sans jamais bloquer : un document légitime peut en contenir.
Tests et contrôles de publication
Les suites de tests rejouent un ensemble de cas contre une version d'agent et notent les réponses. Dans l'édition Enterprise, un contrôle de publication refuse de publier une version dont les suites passent sous leur seuil. Voir Licence Enterprise.