tokyntraildocs

Regeln & json-logic-Referenz

Auswertungsreihenfolge: Regeln laufen pro Connection nach aufsteigender priority; die erste passende aktive Regel gewinnt. Ohne Treffer gilt die Default-Policy: Enforce = halten (fail-closed), Monitor = durchlassen + Flag. Tools im Zustand neu/geändert sind immer freigabepflichtig, außer eine Regel sagt explizit Deny.

Auswertungskontext#

Jede Bedingung wird gegen dieses Objekt geprüft:

{
  "tool":  { "name": "...", "readOnlyHint": true, "destructiveHint": false },
  "args":  { ... },                     // die Argumente des Calls
  "agent": { "id": "...", "label": "..." },
  "meta":  { "hour_utc": 14, "weekday": 3,        // UTC
             "hour_local": 16, "weekday_local": 3, // Zeitzone der Organisation
             "calls_last_hour": 12, "same_tool_calls_last_5m": 3 }
}

Beispiele#

// Zahlungen über 500 halten
{ ">": [{ "var": "args.amount" }, 500] }

// außerhalb der Geschäftszeiten (08–18 Ortszeit) ablehnen
{ "or": [{ "<": [{ "var": "meta.hour_local" }, 8] },
         { ">=": [{ "var": "meta.hour_local" }, 18] }] }

// Bursts halten: mehr als 20 Calls pro Stunde
{ ">": [{ "var": "meta.calls_last_hour" }, 20] }

// nur bestimmte Empfänger erlauben
{ "in": [{ "var": "args.to" }, ["ACME Supplies", "ACME Logistics"]] }

// immer (Tool-Policies nutzen das)
true

Unterstützte Operatoren#

Bedingungen sind Standard-json-logic — die Engine unterstützt den vollen Operator-Satz von jsonlogic.com. Die in der Praxis wichtigsten:

KategorieOperatoren
Zugriffvar (Pfad wie args.amount), missing, missing_some
Vergleich== === != !== > >= < <=
Logikand or ! !! if
Listen & Stringsin cat substr merge
Arithmetik+ - * / % min max
Arraysmap filter reduce all some none

Eine Bedingung, die zur Laufzeit einen Fehler wirft, wertet als kein Treffer — die nächste Regel greift, im Zweifel die fail-closed-Default-Policy. Ein Tippfehler in einer Regel kann also nie versehentlich etwas durchlassen.

Freigaberegeln#

Effekte: allow · require_approval · deny. Freigaberegeln tragen eine Approver-Konfiguration: Rolle oder konkrete Nutzer, Frist (timeout_minutes, Default 240, Minimum 1), Begründungspflicht, optional Eskalationskette (on_timeout: escalate) und Vier-Augen (min_approvals: 2 — zwei unabhängige Freigaben, derselbe Nutzer zählt nicht doppelt).

Im Rule Builder müssen Sie kein json-logic schreiben — der Bedingungs-Builder erzeugt es aus dem Input-Schema Ihrer Tools und zeigt eine Klartext-Vorschau.