Skip to main content

Real-time security layer for AI agents — intercept, evaluate, audit with post-quantum proof

Project description

QuantumCatena Sentinel SDK

Real-time security layer for AI agents.
Intercept, evaluate, and audit every action before execution —
with post-quantum cryptographic proof (Dilithium-3 NIST FIPS 204).

PyPI License: Apache 2.0 NIS2 Ready FIPS 204


Install

pip install quantumcatena-sentinel

Quickstart — 3 lines

from sentinel import SentinelClient, BlockedBySentinel

sentinel = SentinelClient(api_key="sk-...", agent_id="my-agent")

@sentinel.protect(action_type="send_data", data_class="pii")
def send_email(recipient: str, subject: str, body: str) -> str:
    return smtp.send(recipient, subject, body)   # only runs if Sentinel allows it

try:
    send_email("unknown@external.com", "Client export", "PII data...")
except BlockedBySentinel as e:
    print(f"Blocked. Risk: {e.risk_score}. Reason: {e.reasoning}")

That is all. Your agent cannot bypass Sentinel.


How it works

Your Agent
    |
    v
sentinel.protect()  <-- SDK intercepts here, BEFORE execution
    |
    v
Sentinel API  -->  Policy Engine  -->  Risk Scoring  -->  PQC Proof
    |
    v
ALLOW / REVIEW / BLOCK
    |
    v
Your function executes (or BlockedBySentinel is raised)

Usage

Decorator pattern

sentinel = SentinelClient(api_key="...", agent_id="invoice-agent")

@sentinel.protect(action_type="read_data", data_class="general")
def read_file(path: str) -> str:
    with open(path) as f:
        return f.read()

@sentinel.protect(action_type="transfer_funds")
def wire_transfer(amount: float, iban: str) -> str:
    return bank.transfer(amount, iban)

Low-level check (inspect before acting)

decision = sentinel.check(
    action_type="transfer_funds",
    target="https://api.stripe.com",
    payload={"amount": 50000, "iban": "DE89..."},
)
print(decision["decision"])     # allow | review | block
print(decision["risk_score"])   # 0.0 - 1.0
print(decision["pqc_proof"])    # Dilithium-3 proof (Enterprise)

SentinelToolkit — for multi-tool agents

from sentinel import SentinelClient, SentinelToolkit

sentinel = SentinelClient(api_key="...", agent_id="my-agent")
toolkit  = SentinelToolkit(sentinel)

@toolkit.tool(action_type="send_data", data_class="internal")
def send_email(recipient: str, subject: str) -> str:
    """Send an internal email."""
    return smtp.send(recipient, subject)

# Pass to Anthropic agent
response = client.messages.create(
    tools=toolkit.anthropic_tools,   # auto-generated schemas
    ...
)

LangChain integration

from sentinel.middleware import SentinelToolkit

toolkit  = SentinelToolkit(sentinel)
lc_tools = toolkit.wrap_langchain([search, email, file_reader])

agent = initialize_agent(lc_tools, llm, ...)

Action types

action_type Typical use
read_data File read, DB query
send_data Email, SMS, Slack, webhook
call_api External HTTP call
execute_code Shell, Python exec, subprocess
transfer_funds Payment, bank wire, crypto transfer
write_data File write, DB insert/update
delete_data File delete, DB delete

Data classes

data_class Examples
general Public info, logs, system metadata
internal Internal docs, employee emails
pii Names, emails, IDs, medical data
confidential Trade secrets, keys, financial records

Configuration

sentinel = SentinelClient(
    api_key   = "sk-...",         # or SENTINEL_API_KEY env var
    agent_id  = "prod-agent-1",
    api_url   = "https://sentinel.yourdomain.com",  # self-hosted / Enterprise
    fail_open = True,             # allow if Sentinel unreachable (default)
    verbose   = True,             # print decisions to stdout
)

Pricing

Tier Price Decisions/month PQC Layer
Free 0 EUR 10,000 Ed25519 (sim)
Pro 149 EUR/mo Unlimited Dilithium-3
Enterprise Custom Unlimited Dilithium-3 + HSM

Get your API key | Docs


Open source

The SDK is Apache 2.0.
The Sentinel backend is source-available for self-hosted Enterprise.
The Openclaw Shield dashboard is MIT.

Live demo: https://quantumcatena.github.io/openclaw-shield
API docs: https://sentinel-t26z.onrender.com/docs
Contact: contact@quantumcatena.io

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantumcatena_sentinel-0.1.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quantumcatena_sentinel-0.1.0-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file quantumcatena_sentinel-0.1.0.tar.gz.

File metadata

  • Download URL: quantumcatena_sentinel-0.1.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for quantumcatena_sentinel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5604976de5187d4d80784a3e84daac16702e6b51c462a02fd451ceb09079f7c0
MD5 9a6ae2b37671967f9ceab3080f381a05
BLAKE2b-256 295adb02a6edc116c1054397daf35bcebfc7fdba13aaf027882ff3ba978f9135

See more details on using hashes here.

File details

Details for the file quantumcatena_sentinel-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for quantumcatena_sentinel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ab341bdcb7f0bbe3d9f4894522a9161596ce815a308b88e7aab36b7dd1d042a
MD5 6581774e6b87e27e145ceaf036b377d7
BLAKE2b-256 c93a47daf6cec58c0d1f4e628c59a676a5e8542d02f6c55e4bbccefa441b8523

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page