Eine benutzerdefinierte Richtlinie erstellen
- Dashboard
- CLI
- Gehen Sie zu Admin → policy editor, wählen Sie New policy aus und beschreiben Sie den Fehler, den Sie verhindern möchten.
- Fügen Sie den Richtlinienquellcode hinzu und testen Sie erwartete Treffer sowie unbedenkliche Nicht-Treffer im Editor. Beheben Sie alle Validierungsfehler.
- Speichern Sie den Entwurf und wählen Sie Publish version, um eine unveränderliche Version zu erstellen.
-
Gehen Sie zu Admin → enforcement, deployen Sie die Version auf einem Testrechner im observe-Modus und überprüfen Sie die Entscheidungen unter Observe → policy, bevor Sie die Richtlinie durchsetzen.

Mit einer engen Regel beginnen
Diese Richtlinie blockiert destruktive Kubernetes-Befehle nur dann, wenn der Befehl auf die Produktionsumgebung abzielt. Alles außerhalb dieses genauen Fehlermusters gibtallow() zurück.
allow() zurück, sobald die Regel nicht zutrifft.
Eine Entscheidung wählen
Schreiben Sie den Grund für den Agenten, der sich erholen muss. Erläutern Sie, was erkannt wurde und was stattdessen getan werden soll.
Das Policy-Objekt
Filtern Sie Tools innerhalb von
fn. match.toolNames ist kein Teil des öffentlichen Typs für benutzerdefinierte Richtlinien.
Policy-Kontext
Jede Richtlinie erhält einenPolicyContext.
Behandeln Sie jeden optionalen Wert als tatsächlich optional. Nicht alle Agent-Versionen und Ereignistypen stellen dieselben Felder bereit.
Häufige Tool-Eingaben
Failproof AI normalisiert gängige Tools über unterstützte Harnesses hinweg, sodass eine Richtlinie in der Regel eine einheitliche Eingabeform verwenden kann.
Verwenden Sie defensive Typumwandlung, da Tool-Eingabewerte als
unknown typisiert sind:
Das Ereignis wählen
Die Verfügbarkeit von Ereignissen und das Blockierverhalten hängen vom Agent-Harness ab. Lesen Sie Agent harnesses, bevor Sie sich bei einem gemischten Fleet auf ein Ereignis verlassen.
Alle Policy-Ereignisnamen
Alle Policy-Ereignisnamen
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 und Setup.Häufige Richtlinienmuster erstellen
Schreibzugriffe auf geschützte Pfade blockieren
Nicht-blockierende Hinweise geben
Sitzungsabschluss absichern
Richtliniendateien laden
Konventionsdateien
Konventionsdateien werden automatisch geladen:- Projekt- und Benutzer-Richtlinienverzeichnisse werden beide geladen.
- Dateien werden innerhalb jedes Verzeichnisses alphabetisch geladen.
- Eine Datei muss auf
policies.js,policies.mjsoderpolicies.tsenden. - Mehrere
customPolicies.add()-Aufrufe in einer Datei werden unterstützt. - Relative Importe aus lokalen Modulen werden unterstützt.
- Projektrichtlinien können eingecheckt werden, sodass dieselben Regeln dem Repository folgen.
Explizite Dateien
Verwenden Sie explizite Pfade, wenn die Validierung oder Konfiguration die Eingabedatei direkt benennen soll:Validieren und testen
Die Validierung führt das Modul über den Produktions-Loader aus und bestätigt, dass mindestens eine Richtlinie registriert wird.- Eine Aktion, die treffen muss und den beabsichtigten Richtliniengrund erzeugen soll.
- Eine ähnliche, aber unbedenkliche Aktion, die
allow()zurückgeben muss. - Fehlende oder fehlerhafte Tool-Felder.
- Abweichende Befehlssyntax, Pfade, Anführungszeichen, Groß-/Kleinschreibung und Leerzeichen.
- Ein nicht verfügbarer Subprocess oder eine nicht verfügbare Netzwerkabhängigkeit.
Laufzeitverhalten
- Integrierte Richtlinien werden vor benutzerdefinierten Richtlinien ausgewertet.
- Das erste
denystoppt die weitere Richtlinienauswertung. - Mehrere
instruct-Ergebnisse können kombiniert werden, wenn keine Richtlinie das Ereignis ablehnt. - Eine Richtlinienfunktion hat eine Ausführungsfrist von 10 Sekunden.
- Eine ausgelöste Ausnahme oder ein Timeout wird protokolliert und als
allow()behandelt. - Eine Konventionsdatei, die nicht geladen werden kann, wird übersprungen; andere benutzerdefinierte Dateien und integrierte Richtlinien werden weiterhin ausgeführt.
- Das Laden von Modulen auf oberster Ebene hat ebenfalls eine Frist von 10 Sekunden.
- Im Cloud-Observe-Modus wird die Richtlinie ausgeführt, aber eine Nicht-allow-Entscheidung wird aufgezeichnet, ohne sie durchzusetzen.
fn, fangen Sie Abhängigkeitsfehler ab und entscheiden Sie bewusst, ob ein solcher Fehler die Operation erlauben oder ablehnen soll.
API-Exporte
TypeScript exportiert
PolicyContext, PolicyResult, CustomHook, PolicyDecision und PolicyFunction.
Benutzerdefinierte Richtlinien deployen
Veröffentlichen Sie eine Version, deployen Sie sie im Observe-Modus, überprüfen Sie Entscheidungen und wechseln Sie zur Durchsetzung.

