Skip to content
Zurück zur Startseite

§ DOCUMENTATION

Richtlinien-Ausdrücke (CEL)

Verfassen Sie Durchsetzungsregeln in CEL – der Common Expression Language, die von Kubernetes Admission, GCP IAM, Envoy und Istio verwendet wird. Deterministisch, isoliert, kein I/O, kein Zugriff auf globale Host-Variablen.

§ 01

Wann eignet sich eine Ausdrucks-Richtlinie?

Ausdrucks-Richtlinien bilden die Mitte zwischen einem integrierten Richtlinientyp (der mit Execlave ausgeliefert wird) und einem benutzerdefinierten Validator (der Ihren eigenen Dienst aufruft). Verwenden Sie sie, wenn die Regel reine Geschäftslogik über den Anforderungskontext ist und keinen Zustand benötigt, den Execlave noch nicht enthält.

  • Ausgabenlimits, die von Umgebung oder Agent abhängen.
  • Werkzeug-Bereichsregeln, die von der Identität des Aufrufers abhängen.
  • Metadatengesteuerte Zulassung / Ablehnung, bei der das SDK strukturierte Felder anhängt.

Für alles, das einen Datenbankzugriff oder einen externen API-Aufruf erfordert, verwenden Sie stattdessen einen benutzerdefinierten Validator.

§ 02

Kontextvariablen

Jeder Ausdruck wird gegen denselben strukturierten Kontext ausgewertet. Ausdrücke müssen letztlich einen booleschen Wert zurückgeben.
// Kontextvariablen, die jedem Ausdruck zur Verfügung stehen{  input:       string,       // Benutzer- / vorgelagerter Prompt  output:      string,       // Modellantwort (nur bei phase="post")  agentId:     string,  agentName:   string,  environment: string,       // z. B. "production", "staging"  tools:       list<string>, // in der Anfrage deklarierte Werkzeuge  metadata:    map,          // freie Metadaten aus dem SDK  cost:        double,       // geschätzte / tatsächliche Kosten in USD  orgId:       string,  now:         int,          // Unix-Epochensekunden (Serverzeit)  phase:       string        // "pre" (Vor-Ausführung) | "post"}
§ 03

Beispiele

# Jeden Produktions-Agenten mit geschätzten Kosten > 1,00 $ blockierencost > 1.0 && environment == "production" # Eskalieren, wenn ein sensibles Werkzeug angefordert wirdtools.exists(t, t == "payments.transfer") # Nur dem finance-assistant erlauben, Rückerstattungen auszustellenagentName == "finance-assistant" || !tools.exists(t, t == "refunds.issue") # Metadatengesteuertes Gate (SDK hängt userId an metadata an)metadata.userId == "u_banned"
§ 04

Garantien

  • Deterministisch und rein — kein Zugriff auf Uhr, Netzwerk, Dateisystem oder Umgebungsvariablen über den deklarierten Kontext hinaus.
  • Beim Schreiben validiert — Ausdrücke werden während POST /policies und PATCH /policies/:id geparst. Ungültige Syntax gibt HTTP 400 mit der Parser-Meldung unter fields["ruleDefinition.expression"] zurück.
  • Größenbegrenzt — Ausdrücke über 4 KB werden abgelehnt.
  • Einmal kompiliert, gecacht — ein Parse-Cache für bis zu 500 kompilierte Ausdrücke wird pro Prozess vorgehalten.
  • Durch Fehlermodus gesteuert — ein nicht-boolesches Ergebnis oder eine beim Schreiben erkannte Fehlkonfiguration wird übersprungen und protokolliert. Ein echter Laufzeitfehler bei der Auswertung delegiert an den failure_mode der Richtlinie: fail_open (Standard) enthält sich, sodass andere Richtlinien der Anfrage unberührt bleiben, während fail_closed den Fehler als Verletzung behandelt und durchsetzt. Eine fehlkonfigurierte Richtlinie kann den Anfragepfad im Standardmodus dennoch nicht zum Absturz bringen.
§ 05

Ergebnisse

Ausdruck gibt zurückWirkung
trueVerletzung — die Richtlinienaktion (block / warn / require_approval) wird angewendet.
falseKeine Verletzung — die Durchsetzung fährt mit den verbleibenden Richtlinien fort.
nicht-boolescher Wert / Parse-FehlerRichtlinie wird übersprungen und protokolliert. Andere Richtlinien sind nicht betroffen.
Laufzeitfehler bei der AuswertungDelegiert an failure_mode — fail_open enthält sich (Standard), fail_closed setzt durch.
§ 06

Eine Ausdrucks-Richtlinie erstellen

curl -X POST https://api.execlave.com/api/v1/policies \  -H "Authorization: Bearer $EXECLAVE_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "cost-guardrail",    "policyType": "expression",    "severity": "high",    "action": "block",    "ruleDefinition": {      "expression": "cost > 1.0 && environment == \"production\"",      "message": "Estimated cost exceeds $1.00 in production"    }  }'
Richtlinien-Ausdrücke (CEL) — Execlave Docs