Skip to main content
Glama

CSL-Core

PyPI version PyPI Downloads Python License Z3 Verified TLA+ Verified

❤️ Наши контрибьюторы!

Contributors

CSL-Core (Chimera Specification Language) — это детерминированный уровень безопасности для ИИ-агентов. Пишите правила в файлах .csl, проверяйте их математически с помощью Z3, обеспечивайте их соблюдение во время выполнения — вне модели. LLM никогда не видит эти правила. Она просто не может их нарушить.

pip install csl-core

Изначально создано для Project Chimera, теперь с открытым исходным кодом для любой системы ИИ.


Зачем?

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

Это не работает. LLM подвержены промпт-инъекциям, правила носят вероятностный характер (99% ≠ 100%), и нет аудиторского следа, когда что-то идет не так.

CSL-Core меняет подход: правила находятся вне модели в скомпилированных, проверенных Z3 файлах политик. Принудительное исполнение является детерминированным — это не рекомендация.


Быстрый старт (60 секунд)

1. Напишите политику

Создайте 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. Проверка и тестирование (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. Использование в 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

Бенчмарк: Устойчивость к состязательным атакам

Мы протестировали правила безопасности на основе промптов против принудительного исполнения CSL-Core на 4 передовых LLM с использованием 22 состязательных атак и 15 легитимных операций:

Подход

Заблокировано атак

Уровень обхода

Пройдено легитимных операций

Задержка

GPT-4.1 (промпт-правила)

10/22 (45%)

55%

15/15 (100%)

~850мс

GPT-4o (промпт-правила)

15/22 (68%)

32%

15/15 (100%)

~620мс

Claude Sonnet 4 (промпт-правила)

19/22 (86%)

14%

15/15 (100%)

~480мс

Gemini 2.0 Flash (промпт-правила)

11/22 (50%)

50%

15/15 (100%)

~410мс

CSL-Core (детерминированный)

22/22 (100%)

0%

15/15 (100%)

~0.84мс

Почему 100%? Принудительное исполнение происходит вне модели. Промпт-инъекция не имеет значения, потому что нет ничего, против чего можно было бы совершить инъекцию. Категории атак: прямое переопределение инструкций, джейлбрейки через ролевые игры, трюки с кодированием, эскалация в несколько шагов, подмена имен инструментов и многое другое.

Полная методология: benchmarks/


Интеграция с LangChain

Защитите любого агента LangChain с помощью 3 строк — никаких изменений промптов, никакого дообучения:

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)

Каждый вызов инструмента перехватывается до выполнения. Если политика запрещает, инструмент не запускается. Точка.

Внедрение контекста

Передавайте контекст выполнения, который LLM не может переопределить — роли пользователей, окружение, лимиты запросов:

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

from chimera_core.plugins.langchain import gate

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

Инструменты CLI

CLI — это полноценная среда разработки для политик: тестируйте, отлаживайте и развертывайте без написания кода на Python.

verify — Компиляция + доказательство Z3

cslcore verify my_policy.csl

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

simulate — Тестовые сценарии

# 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 — Интерактивная разработка

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⁺

cslcore formal my_policy.csl

Запускает официальный инструмент проверки моделей TLC (java -jar tla2tools.jar) для вашей политики. TLC исчерпывающе исследует каждое достижимое состояние в пространстве абстрактных состояний и доказывает, что каждое временное свойство соблюдается — или возвращает конкретный контрпример с точным состоянием, которое нарушает ваш инвариант.

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

Включите в любой политике, добавив одну строку в CONFIG:

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

Или запустите отдельно:

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

Нет Java? CSL-Core автоматически переключается на Python-реализацию проверки моделей BFS. Баннер четко указывает, какой движок был запущен. JAR скачивается автоматически при первом использовании (~4 МБ из официального релиза TLA+ на GitHub).

CI/CD конвейер

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

MCP-сервер (Claude Desktop / Cursor / VS Code)

Пишите, проверяйте и обеспечивайте соблюдение политик безопасности прямо из вашего ИИ-ассистента — код не требуется.

pip install "csl-core[mcp]"

Добавьте в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

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

Инструмент

Что он делает

verify_policy

Формальная верификация Z3 — обнаруживает противоречия на этапе компиляции

simulate_policy

Тестирование политик на входных данных JSON — РАЗРЕШЕНО/ЗАБЛОКИРОВАНО

explain_policy

Понятное человеку резюме любой политики CSL

scaffold_policy

Генерация шаблона CSL на основе описания на обычном английском

Вы: "Напиши мне политику безопасности, которая предотвращает переводы свыше $5000 без одобрения администратора"

Claude: scaffold_policy → вы редактируете → verify_policy обнаруживает противоречие → вы исправляете → simulate_policy подтверждает работу


Архитектура

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

Тяжелые вычисления выполняются один раз на этапе компиляции. Время выполнения — это чистая оценка.


Используется в продакшене

Используете CSL-Core? Дайте нам знать, и мы добавим вас сюда.


Примеры политик

Пример

Домен

Ключевые особенности

agent_tool_guard.csl

Безопасность ИИ

RBAC, защита PII, разрешения инструментов

chimera_banking_case_study.csl

Финансы

Скоринг рисков, VIP-уровни, санкции

dao_treasury_guard.csl

Web3

Мультиподпись, временные блокировки, аварийный обход

tla_demo.csl

Формальные методы

Модельная проверка TLA⁺ — все свойства соблюдаются

tla_demo_violation.csl

Формальные методы

Контрпример TLA⁺ + предложения по исправлению

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

Справочник 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']

Полная документация: Начало работы · Спецификация синтаксиса · Справочник CLI · Философия


Дорожная карта

✅ Сделано: Базовый язык и парсер · Верификация Z3 · Среда выполнения с отказом по умолчанию · Интеграция с LangChain · CLI (verify, simulate, repl, formal) · MCP-сервер · Модельная проверка TLA⁺ с реальным TLC · Абстракция предикатов · Анализ контрпримеров · Развертывание в продакшене в Chimera v1.7.0

🚧 В процессе: Версионирование политик · Интеграция с LangGraph

🔮 Планируется: LlamaIndex и AutoGen · Композиция нескольких политик · Горячая перезагрузка · Маркетплейс политик · Облачные шаблоны

🔒 Enterprise (исследования): Причинно-следственный вывод · Мультиарендность


Вклад в проект

Мы приветствуем вклад! Начните с good first issue или ознакомьтесь с CONTRIBUTING.md.

Области с высоким влиянием: Реальные примеры политик · Интеграции с фреймворками · Веб-редактор политик · Покрытие тестами


Лицензия

Apache 2.0 (open-core модель). Весь язык, компилятор, верификатор Z3, среда выполнения, CLI, MCP-сервер и все примеры имеют открытый исходный код. См. LICENSE.


Создано с ❤️ компанией Chimera Protocol · Issues · Discussions · Email

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