Créer une politique personnalisée
- Tableau de bord
- CLI
- Accédez à Admin → éditeur de politiques, sélectionnez Nouvelle politique et décrivez la défaillance que vous souhaitez prévenir.
- Ajoutez le code source de la politique, puis testez les correspondances attendues et les non-correspondances sûres dans l’éditeur. Résolvez toutes les erreurs de validation.
- Enregistrez le brouillon et sélectionnez Publier la version pour créer une version immuable.
-
Accédez à Admin → application, déployez la version sur une machine de test en mode observe, puis vérifiez ses décisions sous Observe → politique avant de l’appliquer.

Commencer par une règle ciblée
Cette politique bloque les commandes Kubernetes destructrices uniquement lorsque la commande cible la production. Tout ce qui se trouve en dehors de ce schéma de défaillance précis retourneallow().
allow() dès que la règle ne s’applique pas.
Choisir une décision
Rédigez la raison à l’intention de l’agent qui doit se rétablir. Expliquez ce qui a été détecté et ce qu’il devrait faire à la place.
Objet politique
Filtrez les outils à l’intérieur de
fn. match.toolNames ne fait pas partie du type public de politique personnalisée.
Contexte de la politique
Chaque politique reçoit unPolicyContext.
Traitez chaque valeur optionnelle comme réellement optionnelle. Les versions d’agents et les types d’événements ne fournissent pas tous les mêmes champs.
Entrées d’outils courantes
Failproof AI normalise les outils courants à travers les harnais pris en charge, de sorte qu’une politique peut généralement utiliser une seule forme d’entrée.
Utilisez une coercition défensive car les valeurs d’entrée des outils sont typées comme
unknown :
Choisir l’événement
La disponibilité des événements et le comportement de blocage dépendent du harnais d’agent. Consultez Harnais d’agents avant de vous appuyer sur un événement dans une flotte mixte.
Tous les noms d'événements de politique
Tous les noms d'événements de politique
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatch et Setup.Créer des schémas de politiques courants
Bloquer les écritures vers des chemins protégés
Fournir des instructions non bloquantes
Contrôler l’achèvement de session
Charger des fichiers de politiques
Fichiers de convention
Les fichiers de convention se chargent automatiquement :- Les répertoires de politiques du projet et de l’utilisateur sont tous deux chargés.
- Les fichiers se chargent par ordre alphabétique dans chaque répertoire.
- Un fichier doit se terminer par
policies.js,policies.mjsoupolicies.ts. - Plusieurs appels
customPolicies.add()dans un seul fichier sont pris en charge. - Les imports relatifs depuis des modules locaux sont pris en charge.
- Les politiques de projet peuvent être committées afin que les mêmes règles suivent le dépôt.
Fichiers explicites
Utilisez des chemins explicites lorsque la validation ou la configuration doit nommer directement le fichier d’entrée :Valider et tester
La validation exécute le module via le chargeur de production et confirme qu’il enregistre au moins une politique.- Une action qui doit correspondre et produire la raison de politique prévue.
- Une action proche mais sûre qui doit retourner
allow(). - Des champs d’outil manquants ou malformés.
- Une syntaxe de commande alternative, des chemins, des guillemets, des casses et des espaces blancs.
- Un sous-processus ou une dépendance réseau non disponible.
Comportement à l’exécution
- Les politiques intégrées sont évaluées avant les politiques personnalisées.
- Le premier
denyarrête l’évaluation des politiques suivantes. - Plusieurs résultats
instructpeuvent être combinés lorsqu’aucune politique ne refuse l’événement. - Une fonction de politique dispose d’un délai d’exécution de 10 secondes.
- Une exception levée ou un délai d’expiration est journalisé et traité comme
allow(). - Un fichier de convention qui échoue au chargement est ignoré ; les autres fichiers personnalisés et les politiques intégrées continuent.
- Le chargement de module de niveau supérieur dispose également d’un délai de 10 secondes.
- Le mode observe cloud exécute la politique mais enregistre une décision non-allow sans l’appliquer.
fn, gérez les échecs de dépendances, et choisissez délibérément si cet échec doit autoriser ou refuser l’opération.
Exports API
TypeScript exporte
PolicyContext, PolicyResult, CustomHook, PolicyDecision et PolicyFunction.
Déployer des politiques personnalisées
Publiez une version, déployez-la en mode observe, vérifiez les décisions et passez à l’application.

