Verified safety layer for AI agent tool calls - capability, content, and budget gates with signed certificates and a Lean-checked policy model
Project description
Certior
Provable boundaries for multi-agent AI. A capability boundary for OpenClaw, LangChain, CrewAI, and your own delegation chains - every agent-to-agent call is checked against a Lean-proven policy before it runs. Allowed calls return a signed receipt. Blocked calls raise
CertiorBlockedwith a precise reason.
Homepage: certior.io · Docs: docs.certior.io · Source: github.com/paulinebourigault/certior
Install
pip install certior
Requires Python 3.11 or later. Pulls in z3-solver, httpx, pydantic, jsonschema, and PyYAML.
Quickstart
from certior import Guard, CertiorBlocked
guard = Guard(permissions=["network:http:read"]) # an agent's capability boundary
@guard.wrap(required_capabilities=["network:http:read"]) # tool calls + child agents must fit inside
def web_fetch(url): ...
web_fetch("https://example.com") # allowed -> signed receipt in guard.audit_log
# capability escalation -> raises CertiorBlocked
One decorator. Wraps any function. The rest of your code is unchanged.
Full 5-minute walkthrough: docs.certior.io/quickstart.
What it does
Three gates run before every tool call:
| Gate | Checks |
|---|---|
| Capability | child agent's capabilities ⊆ parent's; tool requires only what's granted |
| Content | HIPAA / SOX / attorney-client / custom detectors on prompts and outputs |
| Budget | per-agent hard ceiling; every step debits the parent |
Allowed calls return a signed certificate bound to a Lean-checked policy fingerprint. Blocked calls raise CertiorBlocked with a precise reason. An auditor reproduces the audit with a single lake build.
See how it works and certificates for the runtime model.
Adapters
| Framework | Module | Guide |
|---|---|---|
| OpenAI tool use | certior.adapters.tool_use |
docs.certior.io/guides/openai |
Anthropic tool_use |
certior.adapters.tool_use |
same recipe, native shape |
| LangChain | certior.adapters.langchain |
docs.certior.io/guides/langchain |
| CrewAI | certior.adapters.crewai |
docs.certior.io/guides/crewai |
| OpenClaw | certior.adapters.openclaw |
docs.certior.io/guides/openclaw |
| MCP / custom | @guard.wrap(...) |
docs.certior.io/guides/custom-loop |
What is proven
Three formal tools, three jobs:
- Z3 runs on every tool call and proves the action satisfies capability, budget, and flow constraints.
- Lean 4 machine-checks the policy model (155 theorems and lemmas, 0
sorry, 0 axioms beyond Lean's standard three:propext,Classical.choice,Quot.sound). CI fails the build if any of the four headline guarantees -delegationSafety,ifcSoundness,compositionSoundness,SecurityLevel.isValidBoundedLattice- stops depending only on standard axioms. - Dafny statically verifies kernel properties (path-safety, seccomp).
Certior does not verify the LLM's behaviour. It verifies the boundary the LLM operates inside.
Full assurance model: docs.certior.io/reference/trust-package.
Server, Studio, examples
The pip package is the SDK. The GitHub repository ships the FastAPI server, the Certior Studio UI, the Lean kernel, the GitHub Action, the certior-skill-audit CLI, and runnable examples:
Status
Alpha release, in active development under Apache-2.0. Public API may change between minor versions during the 0.x line; pin to certior==0.1.* for compatible updates.
Looking for design partners in healthcare, finance, legal, and regulated AI teams who need real audit trails on agent workflows.
Contact: hello@certior.io
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file certior-0.1.0a0.tar.gz.
File metadata
- Download URL: certior-0.1.0a0.tar.gz
- Upload date:
- Size: 363.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a43fb0e3649fd9f1e11a66ce25b0b4f93898e77953cca04d57a94cc2727eaf83
|
|
| MD5 |
55fe6205db285deeb6b89c6c4496d8ef
|
|
| BLAKE2b-256 |
a88fd90e48935ac18067a1edb7e1a93526908f4a7dc8d123e767fb83af3ccc76
|
File details
Details for the file certior-0.1.0a0-py3-none-any.whl.
File metadata
- Download URL: certior-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 418.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52ec1eca6a41655ea9972b987615edfa1b75e4afa6dcd3539ae59a69c1d74bdd
|
|
| MD5 |
1232e60cb2dc3b36f018dafde22186b1
|
|
| BLAKE2b-256 |
67e9e9bda126d99d50809d827978134cc65e74896ba086a4ea72ce87130a95bf
|