1. La politique de sécurité par clé : deux champs sur une clé
Un guardrail filtre le texte qui circule à travers un modèle (PII, secrets, jailbreaks). Une politique firewall gouverne les appels d’outils qu’un agent émet (quels outils, quels serveurs MCP, quels hôtes). Les deux sont des politiques nommées, à portée d’espace de travail — rédigées une fois, partagées dans l’espace de travail — et une clé opte pour une politique spécifique via deux champs :| Champ | Lie | Défini en console |
|---|---|---|
guardrail_id | Le guardrail qui filtre les prompts et réponses de cette clé. | Developer+ |
firewall_policy_id | La politique firewall qui évalue les appels d’outils de cette clé. | Developer+ |
/console/token. Définir l’un ou
l’autre est une action Developer+ — les politiques elles-mêmes sont aussi
rédigées en Developer+ (voir
Portée & clés).
Ces deux champs sont indépendants. Une clé peut attacher un guardrail et pas
une politique firewall, l’inverse, les deux, ou aucun — chaque plan se résout
indépendamment. Laisser un champ non défini (
0) n’est pas la même chose que
couper l’application ; voir §3.2. Un exemple concret
Disons que le guardrail par défaut de votre espace de travail signale la PII mais la laisse passer, et que la politique firewall par défaut audite chaque appel d’outil. C’est bien pour la plupart des agents — mais votre agent financier manipule des SSN de clients et ne devrait jamais appeler un outil shell. Rédigez unfinance-guardrail plus strict (bloque la PII d’emblée) et un
finance-firewall (n’autorise que les trois outils dont il a besoin), puis liez
les deux à la clé de cet agent :
12
et ses appels d’outils sont évalués par la politique 8 — tandis que chaque
autre clé de l’espace de travail continue d’exécuter les défauts de l’espace de
travail. Le propre code de l’agent ne change jamais ; il continue d’appeler
https://api.orcarouter.ai/v1/... avec sa clé sk-orca-… exactement comme
avant.
3. Résolution : la règle qui prend les gens au dépourvu
Pour chaque requête, la passerelle résout le guardrail actif et la politique firewall active indépendamment. L’ordre semble le même pour les deux — attachement d’abord, défaut de l’espace de travail ensuite — mais ils divergent sur un cas.Résolution du guardrail
Attaché et activé → l'utiliser
Attaché et activé → l'utiliser
Le
guardrail_id de la clé pointe vers un guardrail qui existe et est
activé. Ce guardrail filtre la requête.Attaché mais DÉSACTIVÉ ou supprimé → aucun guardrail
Attaché mais DÉSACTIVÉ ou supprimé → aucun guardrail
Désactiver le guardrail attaché est un interrupteur d’arrêt. La clé ne
reçoit aucun filtrage de contenu — elle ne retombe pas sur le défaut
de l’espace de travail. C’est délibéré : attacher un guardrail et le
désactiver est la façon de couper le filtrage pour cette clé.
Non défini (0) → défaut de l'espace de travail
Non défini (0) → défaut de l'espace de travail
Aucun
guardrail_id sur la clé. Le guardrail par défaut activé de l’espace
de travail s’applique, s’il en existe un.Ni l'un ni l'autre → aucune application
Ni l'un ni l'autre → aucune application
Aucun attachement et aucun défaut d’espace de travail → la requête passe
sans filtrage de contenu.
Résolution du firewall
Attaché et activé → l'utiliser
Attaché et activé → l'utiliser
Le
firewall_policy_id de la clé pointe vers une politique qui existe et est
activée. Cette politique évalue les appels d’outils de la clé.Attaché mais DÉSACTIVÉ → défaut de l'espace de travail
Attaché mais DÉSACTIVÉ → défaut de l'espace de travail
Voici la différence. Un attachement firewall désactivé retombe sur la
politique firewall par défaut de l’espace de travail — il ne coupe pas
l’application. Désactiver un attachement firewall ramène la clé au défaut de
l’espace de travail ; il ne laisse pas la clé sans protection.
Non défini (0) → défaut de l'espace de travail
Non défini (0) → défaut de l'espace de travail
Aucun
firewall_policy_id sur la clé → la politique firewall par défaut
activée de l’espace de travail s’applique.4. À quoi ressemble un block
Lorsqu’une politique liée refuse une requête, l’appelant voit une erreur structurée — l’agent peut réagir au lieu de planter :| Plan | Code d’erreur | HTTP | Coût |
|---|---|---|---|
| Guardrail | guardrail_blocked | 400 | Aucun — un block d’entrée se déclenche avant le métrage ; un block de sortie rembourse. Marqué skip-retry. |
| Firewall (inbound) | firewall_blocked | 400 | Un block inbound se déclenche avant l’appel au modèle, donc aucun token de modèle. Skip-retry. |
| Firewall (held) | firewall_approval_pending | 400 | Mis en attente d’approbation humaine ; l’agent interroge et re-soumet une fois approuvé. |
5. Où aller ensuite
Portée & clés
Le modèle complet à trois niveaux — espace de travail, politique, clé — et
chaque champ qu’une clé porte.
L'objet token
Chaque champ d’une clé :
model_limits, allow_ips, credit_limit_usd,
expired_time, et les deux attachements de politique.Guardrails
Rédigez la politique de contenu que vous liez via
guardrail_id — règles,
entités PII, actions et presets.Firewall
Rédigez la politique d’appels d’outils que vous liez via
firewall_policy_id — verdicts, surfaces et niveaux d’autonomie.Vous voulez définir toute la posture de votre espace de travail en un seul geste
plutôt que de lier les clés une à une ? Un niveau d’autonomie écrit les deux
plans — guardrails et firewall — d’un coup. Puis attachez des politiques plus
strictes sur les quelques clés qui doivent aller plus loin que le défaut de
l’espace de travail. Voir
Guardrails vs Firewall.
