Skip to main content
Glama

CSL-Core

PyPI version PyPI Downloads Python License Z3 Verified TLA+ Verified

❤️ ¡Nuestros colaboradores!

Contributors

CSL-Core (Chimera Specification Language) es una capa de seguridad determinista para agentes de IA. Escriba reglas en archivos .csl, verifíquelas matemáticamente con Z3 y aplíquelas en tiempo de ejecución, fuera del modelo. El LLM nunca ve las reglas. Simplemente no puede violarlas.

pip install csl-core

Creado originalmente para Project Chimera, ahora es de código abierto para cualquier sistema de IA.


¿Por qué?

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"""

Esto no funciona. Los LLM pueden ser objeto de inyección de prompts, las reglas son probabilísticas (99% ≠ 100%) y no hay un registro de auditoría cuando algo sale mal.

CSL-Core cambia esto: las reglas residen fuera del modelo en archivos de política compilados y verificados por Z3. La aplicación es determinista, no una sugerencia.


Inicio rápido (60 segundos)

1. Escriba una política

Cree 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. Verifique y pruebe (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. Úselo en 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: Resistencia a ataques adversarios

Probamos reglas de seguridad basadas en prompts frente a la aplicación de CSL-Core en 4 LLM de frontera con 22 ataques adversarios y 15 operaciones legítimas:

Enfoque

Ataques bloqueados

Tasa de omisión

Ops legítimas pasadas

Latencia

GPT-4.1 (reglas de prompt)

10/22 (45%)

55%

15/15 (100%)

~850ms

GPT-4o (reglas de prompt)

15/22 (68%)

32%

15/15 (100%)

~620ms

Claude Sonnet 4 (reglas de prompt)

19/22 (86%)

14%

15/15 (100%)

~480ms

Gemini 2.0 Flash (reglas de prompt)

11/22 (50%)

50%

15/15 (100%)

~410ms

CSL-Core (determinista)

22/22 (100%)

0%

15/15 (100%)

~0.84ms

¿Por qué 100%? La aplicación ocurre fuera del modelo. La inyección de prompts es irrelevante porque no hay nada contra lo que inyectar. Categorías de ataque: anulación directa de instrucciones, jailbreaks de juego de roles, trucos de codificación, escalada de múltiples turnos, suplantación de nombres de herramientas y más.

Metodología completa: benchmarks/


Integración con LangChain

Proteja cualquier agente de LangChain con 3 líneas: sin cambios en los prompts, sin ajuste fino:

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)

Cada llamada a herramienta es interceptada antes de la ejecución. Si la política dice que no, la herramienta no se ejecuta. Punto.

Inyección de contexto

Pase contexto de tiempo de ejecución que el LLM no puede anular: roles de usuario, entorno, límites de tasa:

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
    }
)

Protección de cadena LCEL

from chimera_core.plugins.langchain import gate

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

Herramientas CLI

La CLI es un entorno de desarrollo completo para políticas: pruebe, depure y despliegue sin escribir Python.

verify — Compilación + Prueba Z3

cslcore verify my_policy.csl

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

simulate — Escenarios de prueba

# 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 — Desarrollo interactivo

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 — Verificación de modelos TLA⁺

cslcore formal my_policy.csl

Ejecuta el verificador de modelos oficial TLC (java -jar tla2tools.jar) contra su política. TLC explora exhaustivamente cada estado alcanzable en el espacio de estados abstractos y demuestra que cada propiedad temporal se cumple, o devuelve un rastro de contraejemplo concreto con el estado exacto que rompe su invariante.

╔══════════════════════════════════════════════════════════════════════════════╗
║                       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               ║
╚══════════════════════════════════════════════════════════════════════════════╝

Habilítelo en cualquier política añadiendo una línea a CONFIG:

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

O ejecútelo de forma independiente:

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

¿No tiene Java? CSL-Core recurre automáticamente a un verificador de modelos BFS de Python. El banner indica claramente qué motor se ejecutó. El JAR se descarga automáticamente en el primer uso (~4MB desde el lanzamiento oficial de TLA+ en GitHub).

Pipeline CI/CD

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

Servidor MCP (Claude Desktop / Cursor / VS Code)

Escriba, verifique y aplique políticas de seguridad directamente desde su asistente de IA, sin necesidad de código.

pip install "csl-core[mcp]"

Añada a la configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

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

Herramienta

Qué hace

verify_policy

Verificación formal Z3: detecta contradicciones en tiempo de compilación

simulate_policy

Prueba políticas contra entradas JSON: PERMITIDO/BLOQUEADO

explain_policy

Resumen legible por humanos de cualquier política CSL

scaffold_policy

Genera una plantilla CSL a partir de una descripción en lenguaje sencillo

Usted: "Escríbeme una política de seguridad que impida transferencias superiores a $5000 sin aprobación del administrador"

Claude: scaffold_policy → usted edita → verify_policy detecta una contradicción → usted corrige → simulate_policy confirma que funciona


Arquitectura

┌──────────────────────────────────────────────────────────┐
│  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          │
└──────────────────────────────────────────────────────────┘

El cálculo pesado ocurre una vez en tiempo de compilación. El tiempo de ejecución es pura evaluación.


Utilizado en producción

¿Utiliza CSL-Core? Avísenos y le añadiremos aquí.


Políticas de ejemplo

Ejemplo

Dominio

Características clave

agent_tool_guard.csl

Seguridad de IA

RBAC, protección PII, permisos de herramientas

chimera_banking_case_study.csl

Finanzas

Puntuación de riesgo, niveles VIP, sanciones

dao_treasury_guard.csl

Web3

Multi-firma, bloqueos temporales, omisión de emergencia

tla_demo.csl

Métodos formales

Verificación de modelos TLA⁺: todas las propiedades se cumplen

tla_demo_violation.csl

Métodos formales

Rastro de contraejemplo TLA⁺ + sugerencias de corrección

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

Referencia de API

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']

Documentación completa: Introducción · Especificación de sintaxis · Referencia de CLI · Filosofía


Hoja de ruta

✅ Hecho: Lenguaje central y analizador · Verificación Z3 · Tiempo de ejecución con fallo cerrado · Integración con LangChain · CLI (verificar, simular, repl, formal) · Servidor MCP · Verificación de modelos TLA⁺ con TLC real · Abstracción de predicados · Análisis de contraejemplos · Despliegue en producción en Chimera v1.7.0

🚧 En progreso: Versionado de políticas · Integración con LangGraph

🔮 Planeado: LlamaIndex y AutoGen · Composición de múltiples políticas · Recarga en caliente · Mercado de políticas · Plantillas en la nube

🔒 Empresa (Investigación): Inferencia causal · Multi-tenencia


Contribución

¡Damos la bienvenida a las contribuciones! Empiece con good first issue o consulte CONTRIBUTING.md.

Áreas de alto impacto: Políticas de ejemplo del mundo real · Integraciones de marcos · Editor de políticas basado en web · Cobertura de pruebas


Licencia

Apache 2.0 (modelo open-core). El lenguaje completo, el compilador, el verificador Z3, el tiempo de ejecución, la CLI, el servidor MCP y todos los ejemplos son de código abierto. Consulte LICENSE.


Creado con ❤️ por Chimera Protocol · Problemas · Discusiones · Correo electrónico

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