Benutzerdefinierte Richtlinie erstellen
- Dashboard
- CLI
- Gehen Sie zu Admin → Richtlinieneditor, wählen Sie Neue Richtlinie und beschreiben Sie den Fehler, den Sie verhindern möchten.
- Fügen Sie den Richtliniencode hinzu und testen Sie erwartete Übereinstimmungen sowie sichere Nicht-Übereinstimmungen im Editor. Beheben Sie alle Validierungsfehler.
- Speichern Sie den Entwurf und wählen Sie Version veröffentlichen, um eine unveränderliche Version zu erstellen.
-
Gehen Sie zu Admin → Durchsetzung, stellen Sie die Version auf einem Testgerät im Beobachtungs-Modus bereit und überprüfen Sie die Entscheidungen unter Beobachten → Richtlinie, bevor Sie sie 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.
Entscheidung wählen
Formulieren Sie den Grund für den Agenten, der sich erholen muss. Erklären Sie, was erkannt wurde und was stattdessen getan werden soll.
Richtlinienobjekt
Filtern Sie Tools innerhalb von
fn. match.toolNames ist kein Bestandteil des öffentlichen Typs für benutzerdefinierte Richtlinien.
Richtlinienkontext
Jede Richtlinie erhält einenPolicyContext.
Behandeln Sie jeden optionalen Wert als tatsächlich optional. Nicht alle Agent-Versionen und Ereignistypen liefern dieselben Felder.
Häufige Tool-Eingaben
Failproof AI normalisiert gängige Tools über unterstützte Umgebungen hinweg, sodass eine Richtlinie in der Regel eine einheitliche Eingabeform verwenden kann.
Verwenden Sie defensive Typumwandlung, da Tool-Eingabewerte als
unknown typisiert sind:
Ereignis wählen
Ereignisverfügbarkeit und Blockierungsverhalten hängen von der Agent-Umgebung ab. Lesen Sie Agent-Umgebungen, bevor Sie sich auf ein Ereignis über eine gemischte Flotte hinweg verlassen.
Alle Richtlinienereignisnamen
Alle Richtlinienereignisnamen
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
Schreibvorgänge auf geschützte Pfade blockieren
Nicht-blockierende Anleitung geben
Sitzungsabschluss kontrollieren
Richtliniendateien laden
Konventionsdateien
Konventionsdateien werden automatisch geladen:- Projekt- und Benutzerrichtlinienverzeichnisse werden beide geladen.
- Dateien werden alphabetisch innerhalb jedes Verzeichnisses 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 Validierung oder Konfiguration die Einstiegsdatei direkt benennen sollen:Validieren und testen
Die Validierung führt das Modul über den Produktions-Loader aus und bestätigt, dass es mindestens eine Richtlinie registriert.- Eine Aktion, die übereinstimmen und den beabsichtigten Richtliniengrund erzeugen muss.
- Eine ähnliche, aber sichere Aktion, die
allow()zurückgeben muss. - Fehlende oder fehlerhafte Tool-Felder.
- Alternative Befehlssyntax, Pfade, Anführungszeichen, Groß-/Kleinschreibung und Leerzeichen.
- Ein nicht verfügbarer Subprozess oder eine 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 weiter ausgeführt.
- Das Laden von Modulen auf oberster Ebene hat ebenfalls eine Frist von 10 Sekunden.
- Der Cloud-Beobachtungsmodus führt die Richtlinie aus, zeichnet jedoch eine Nicht-allow-Entscheidung auf, ohne sie durchzusetzen.
fn, fangen Sie Abhängigkeitsfehler ab und entscheiden Sie bewusst, ob dieser Fehler die Operation erlauben oder verweigern soll.
API-Exporte
TypeScript exportiert
PolicyContext, PolicyResult, CustomHook, PolicyDecision und PolicyFunction.
Benutzerdefinierte Richtlinien bereitstellen
Eine Version veröffentlichen, im Beobachtungsmodus bereitstellen, Entscheidungen überprüfen und zur Durchsetzung übergehen.

