Skip to main content
Glama

CSL-Core

PyPI version PyPI Downloads Python License Z3 Verified TLA+ Verified

❤️ Unsere Mitwirkenden!

Contributors

CSL-Core (Chimera Specification Language) ist eine deterministische Sicherheitsschicht für KI-Agenten. Schreiben Sie Regeln in .csl-Dateien, verifizieren Sie diese mathematisch mit Z3 und erzwingen Sie sie zur Laufzeit – außerhalb des Modells. Das LLM sieht die Regeln niemals. Es kann sie schlichtweg nicht verletzen.

pip install csl-core

Ursprünglich für Project Chimera entwickelt, jetzt Open-Source für jedes KI-System.


Warum?

prompt = """You are a helpful assistant. IMPORTANT RULES:
- Never transfer more than $1000 for junior users
- Never send PII to external emails
- Never query the secrets table"""

Das funktioniert nicht. LLMs können durch Prompt-Injection manipuliert werden, Regeln sind probabilistisch (99% ≠ 100%) und es gibt keinen Audit-Trail, wenn etwas schiefgeht.

CSL-Core ändert das: Regeln existieren außerhalb des Modells in kompilierten, Z3-verifizierten Policy-Dateien. Die Durchsetzung ist deterministisch – kein bloßer Vorschlag.


Schnellstart (60 Sekunden)

1. Eine Policy schreiben

Erstellen Sie my_policy.csl:

CONFIG {
  ENFORCEMENT_MODE: BLOCK
  CHECK_LOGICAL_CONSISTENCY: TRUE
}

DOMAIN MyGuard {
  VARIABLES {
    action: {"READ", "WRITE", "DELETE"}
    user_level: 0..5
  }

  STATE_CONSTRAINT strict_delete {
    WHEN action == "DELETE"
    THEN user_level >= 4
  }
}

2. Verifizieren & Testen (CLI)

# Compile + Z3 formal verification
cslcore verify my_policy.csl

# Test a scenario
cslcore simulate my_policy.csl --input '{"action": "DELETE", "user_level": 2}'
# → BLOCKED: Constraint 'strict_delete' violated.

# Interactive REPL
cslcore repl my_policy.csl

3. Verwendung in Python

from chimera_core import load_guard

guard = load_guard("my_policy.csl")

result = guard.verify({"action": "READ", "user_level": 1})
print(result.allowed)  # True

result = guard.verify({"action": "DELETE", "user_level": 2})
print(result.allowed)  # False

Benchmark: Widerstand gegen Adversarial Attacks

Wir haben prompt-basierte Sicherheitsregeln gegen die CSL-Core-Durchsetzung bei 4 führenden LLMs mit 22 Adversarial Attacks und 15 legitimen Operationen getestet:

Ansatz

Blockierte Angriffe

Bypass-Rate

Legit. Ops bestanden

Latenz

GPT-4.1 (Prompt-Regeln)

10/22 (45%)

55%

15/15 (100%)

~850ms

GPT-4o (Prompt-Regeln)

15/22 (68%)

32%

15/15 (100%)

~620ms

Claude Sonnet 4 (Prompt-Regeln)

19/22 (86%)

14%

15/15 (100%)

~480ms

Gemini 2.0 Flash (Prompt-Regeln)

11/22 (50%)

50%

15/15 (100%)

~410ms

CSL-Core (deterministisch)

22/22 (100%)

0%

15/15 (100%)

~0.84ms

Warum 100%? Die Durchsetzung erfolgt außerhalb des Modells. Prompt-Injection ist irrelevant, da es nichts gibt, gegen das man injizieren könnte. Angriffskategorien: direkte Anweisungsüberschreibung, Rollenspiel-Jailbreaks, Kodierungstricks, Multi-Turn-Eskalation, Tool-Name-Spoofing und mehr.

Vollständige Methodik: benchmarks/


LangChain-Integration

Schützen Sie jeden LangChain-Agenten mit 3 Zeilen – keine Prompt-Änderungen, kein Fine-Tuning:

from chimera_core import load_guard
from chimera_core.plugins.langchain import guard_tools
from langchain_classic.agents import AgentExecutor, create_tool_calling_agent

guard = load_guard("agent_policy.csl")

# Wrap tools — enforcement is automatic
safe_tools = guard_tools(
    tools=[search_tool, transfer_tool, delete_tool],
    guard=guard,
    inject={"user_role": "JUNIOR", "environment": "prod"},  # LLM can't override these
    tool_field="tool"  # Auto-inject tool name
)

agent = create_tool_calling_agent(llm, safe_tools, prompt)
executor = AgentExecutor(agent=agent, tools=safe_tools)

Jeder Tool-Aufruf wird vor der Ausführung abgefangen. Wenn die Policy "Nein" sagt, wird das Tool nicht ausgeführt. Punkt.

Kontext-Injection

Übergeben Sie Laufzeitkontext, den das LLM nicht überschreiben kann – Benutzerrollen, Umgebung, Ratenbegrenzungen:

safe_tools = guard_tools(
    tools=tools,
    guard=guard,
    inject={
        "user_role": current_user.role,         # From your auth system
        "environment": os.getenv("ENV"),        # prod/dev/staging
        "rate_limit_remaining": quota.remaining # Dynamic limits
    }
)

LCEL-Chain-Schutz

from chimera_core.plugins.langchain import gate

chain = (
    {"query": RunnablePassthrough()}
    | gate(guard, inject={"user_role": "USER"})  # Policy checkpoint
    | prompt | llm | StrOutputParser()
)

CLI-Tools

Die CLI ist eine vollständige Entwicklungsumgebung für Policies – testen, debuggen und bereitstellen, ohne Python zu schreiben.

verify — Kompilieren + Z3-Beweis

cslcore verify my_policy.csl

# ⚙️  Compiling Domain: MyGuard
#    • Validating Syntax... ✅ OK
#    ├── Verifying Logic Model (Z3 Engine)... ✅ Mathematically Consistent
#    • Generating IR... ✅ OK

simulate — Testszenarien

# Single input
cslcore simulate policy.csl --input '{"action": "DELETE", "user_level": 2}'

# Batch testing from file
cslcore simulate policy.csl --input-file test_cases.json --dashboard

# CI/CD: JSON output
cslcore simulate policy.csl --input-file tests.json --json --quiet

repl — Interaktive Entwicklung

cslcore repl my_policy.csl --dashboard

cslcore> {"action": "DELETE", "user_level": 2}
🛡️ BLOCKED: Constraint 'strict_delete' violated.

cslcore> {"action": "DELETE", "user_level": 5}
✅ ALLOWED

formal — TLA⁺ Model Checking

cslcore formal my_policy.csl

Führt den offiziellen TLC-Model-Checker (java -jar tla2tools.jar) gegen Ihre Policy aus. TLC untersucht erschöpfend jeden erreichbaren Zustand im abstrakten Zustandsraum und beweist, dass jede temporale Eigenschaft gilt – oder liefert einen konkreten Gegenbeispiel-Trace mit dem exakten Zustand, der Ihre Invariante bricht.

╔══════════════════════════════════════════════════════════════════════════════╗
║                       TLA⁺ FORMAL VERIFICATION ENGINE                        ║
║          Chimera Specification Language · Temporal Logic of Actions          ║
║                                                                              ║
║    ⚡  REAL TLC  ·  java -jar tla2tools.jar  ·  Exhaustive Model Checking    ║
║       TLC2 Version 2026.03.31.154134 (rev: becec35)  ·  pid 48146  ·  1      ║
║                                  worker(s)                                   ║
╚══════════════════════════════════════════════════════════════════════════════╝

  Variable      Domain                         Cardinality
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  agent_tier    {"STANDARD", "PREMIUM"}                |2|
  task_type     {"READ", "WRITE", "ANALYZE"}           |3|
  risk_score    0..5                                   |6|

  ├─ □(no_destructive_ops)      ✅  HOLDS  [288 states  349ms]
  ├─ □(no_production_access)    ✅  HOLDS  [288 states  349ms]
  ├─ □(bounded_risk)            ✅  HOLDS  [288 states  349ms]

  └─ Proof hash: 17dd1564897d242fc045a3a884a52bbb… ✅

╔══════════════ TLA⁺ VERIFICATION COMPLETE — ALL PROPERTIES HOLD ══════════════╗
║  ✅  Domain: AIAgentSafetyDemo  ·  ⬡ 144 states  ·  ⏱ 1047ms               ║
╚══════════════════════════════════════════════════════════════════════════════╝

Aktivieren Sie dies in jeder Policy durch Hinzufügen einer Zeile zu CONFIG:

CONFIG {
  ENFORCEMENT_MODE: BLOCK
  ENABLE_FORMAL_VERIFICATION: TRUE   // ← triggers cslcore formal automatically
}

Oder führen Sie es eigenständig aus:

cslcore formal policy.csl              # real TLC (Java required, JAR auto-downloaded)
cslcore formal policy.csl --mock       # Python BFS fallback (no Java needed)
cslcore formal policy.csl --timeout 120
cslcore formal policy.csl --export-tla ./specs/   # save .tla + .cfg for TLA+ Toolbox

Kein Java? CSL-Core greift automatisch auf einen Python-BFS-Model-Checker zurück. Das Banner zeigt deutlich an, welche Engine ausgeführt wurde. Die JAR wird bei der ersten Verwendung automatisch heruntergeladen (~4MB vom offiziellen TLA+ GitHub-Release).

CI/CD-Pipeline

# GitHub Actions
- name: Verify policies
  run: |
    for policy in policies/*.csl; do
      cslcore verify "$policy" || exit 1
    done

MCP-Server (Claude Desktop / Cursor / VS Code)

Schreiben, verifizieren und erzwingen Sie Sicherheitsrichtlinien direkt von Ihrem KI-Assistenten aus – kein Code erforderlich.

pip install "csl-core[mcp]"

Zur Claude Desktop-Konfiguration hinzufügen (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "csl-core": {
      "command": "uv",
      "args": ["run", "--with", "csl-core[mcp]", "csl-core-mcp"]
    }
  }
}

Tool

Was es tut

verify_policy

Z3-Formalverifikation – erkennt Widersprüche zur Kompilierzeit

simulate_policy

Testet Policies gegen JSON-Eingaben – ERLAUBT/BLOCKIERT

explain_policy

Menschlich lesbare Zusammenfassung jeder CSL-Policy

scaffold_policy

Generiert ein CSL-Template aus einer Beschreibung in einfachem Englisch

Sie: "Schreibe mir eine Sicherheitsrichtlinie, die Überweisungen über 5000 $ ohne Admin-Genehmigung verhindert"

Claude: scaffold_policy → Sie bearbeiten → verify_policy erkennt einen Widerspruch → Sie korrigieren → simulate_policy bestätigt, dass es funktioniert


Architektur

┌──────────────────────────────────────────────────────────┐
│  1. COMPILER    .csl → AST → IR → Compiled Artifact      │
│     Syntax validation, semantic checks, functor gen       │
├──────────────────────────────────────────────────────────┤
│  2. Z3 VERIFIER    Theorem Prover — Static Analysis       │
│     Contradiction detection, reachability, rule shadowing │
│     ⚠️ If verification fails → policy will NOT compile    │
├──────────────────────────────────────────────────────────┤
│  3. TLA⁺ VERIFIER  Model Checker — Temporal Safety        │
│     Exhaustive state-space exploration via TLC            │
│     Predicate abstraction for large numeric domains       │
│     Counterexample traces + automated fix suggestions     │
│     (opt-in: ENABLE_FORMAL_VERIFICATION: TRUE)            │
├──────────────────────────────────────────────────────────┤
│  4. RUNTIME     Deterministic Policy Enforcement          │
│     Fail-closed, zero dependencies, <1ms latency          │
└──────────────────────────────────────────────────────────┘

Schwere Berechnungen finden einmalig zur Kompilierzeit statt. Die Laufzeit ist reine Auswertung.


Im Produktionseinsatz

Nutzen Sie CSL-Core? Lassen Sie es uns wissen und wir fügen Sie hier hinzu.


Beispiel-Policies

Beispiel

Domäne

Hauptmerkmale

agent_tool_guard.csl

KI-Sicherheit

RBAC, PII-Schutz, Tool-Berechtigungen

chimera_banking_case_study.csl

Finanzen

Risikobewertung, VIP-Stufen, Sanktionen

dao_treasury_guard.csl

Web3

Multi-Sig, Timelocks, Notfall-Bypass

tla_demo.csl

Formale Methoden

TLA⁺ Model Checking – alle Eigenschaften gelten

tla_demo_violation.csl

Formale Methoden

TLA⁺ Gegenbeispiel-Trace + Korrekturvorschläge

python examples/run_examples.py          # Run all with test suites
python examples/run_examples.py banking  # Run specific example

API-Referenz

from chimera_core import load_guard, RuntimeConfig

# Load + compile + verify
guard = load_guard("policy.csl")

# With custom config
guard = load_guard("policy.csl", config=RuntimeConfig(
    raise_on_block=False,          # Return result instead of raising
    collect_all_violations=True,   # Report all violations, not just first
    missing_key_behavior="block"   # "block", "warn", or "ignore"
))

# Verify
result = guard.verify({"action": "DELETE", "user_level": 2})
print(result.allowed)     # False
print(result.violations)  # ['strict_delete']

Vollständige Dokumentation: Erste Schritte · Syntax-Spezifikation · CLI-Referenz · Philosophie


Roadmap

✅ Erledigt: Kernsprache & Parser · Z3-Verifikation · Fail-Closed-Laufzeit · LangChain-Integration · CLI (verify, simulate, repl, formal) · MCP-Server · TLA⁺ Model Checking mit echtem TLC · Prädikatenabstraktion · Gegenbeispiel-Analyse · Produktionseinsatz in Chimera v1.7.0

🚧 In Arbeit: Policy-Versionierung · LangGraph-Integration

🔮 Geplant: LlamaIndex & AutoGen · Multi-Policy-Komposition · Hot-Reload · Policy-Marktplatz · Cloud-Templates

🔒 Enterprise (Forschung): Kausale Inferenz · Multi-Tenancy


Mitwirken

Wir freuen uns über Beiträge! Beginnen Sie mit good first issue oder prüfen Sie CONTRIBUTING.md.

Bereiche mit hoher Wirkung: Praxisnahe Beispiel-Policies · Framework-Integrationen · Webbasierter Policy-Editor · Testabdeckung


Lizenz

Apache 2.0 (Open-Core-Modell). Die vollständige Sprache, der Compiler, der Z3-Verifizierer, die Laufzeit, die CLI, der MCP-Server und alle Beispiele sind Open-Source. Siehe LICENSE.


Mit ❤️ gebaut von Chimera Protocol · Issues · Discussions · E-Mail

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Chimera-Protocol/csl-core'

If you have feedback or need assistance with the MCP directory API, please join our Discord server