Aller au contenu principal

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-fouSorteCe qu'il fait
Taille max d'inputDéterministeRefuse un message plus long que le nombre de caractères que vous fixez (100 000 au plus).
Anti-injection de promptMotifs, puis modèleBloque 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 interditsModèleRefuse les messages qui portent sur les sujets que vous listez (50 au plus).
Détection PII en entréeDéterministeDé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-fouSorteCe qu'il fait
Plafond de tokens en sortieDéterministeUne limite dure sur les jetons que le modèle peut générer.
Motifs interditsDéterministeDu 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èleBloque un contenu offensant ou dangereux.
Protection du system promptMotifs, puis modèleBloque une réponse qui divulgue les instructions de l'agent.
Validation de schémaDéterministeVé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.

PresetTemps accordé à chaque jugeQuand le juge fait défaut
strict8 sLe message ou la réponse est bloqué.
standard6 sIl passe, signalé dans la trace.
permissif4 sIl 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 agent servi au public demande plus que des garde-fous

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.