Skip to main content

CAGE-lite: lightweight prebind assurance framework for agentic actions

Project description

CAGE logo

CAGE-lite

Prebind assurance for AI-agent actions at the business consequence boundary.

Agent platforms govern how agents run. CAGE governs whether agent actions are allowed to become business consequences.

CAGE-lite is my open-source reference implementation of the CAGE framework: Control Assurance Governance Evaluation.

The project started with a simple question:

An AI agent can propose an action, but what should happen before that action becomes real?

Before an agent releases a payment, grants access, approves a transaction, updates a system of record, or discloses protected information, an organization should be able to verify that the action is authorized and supported by the required evidence.

CAGE adds that final assurance step before the action becomes a binding business consequence.

CAGE-lite is currently a v1 product preview. The Python package version is 0.1.1, and the current CAGE Warrant schema is version 0.4.

Product preview

The CAGE-lite dashboard shows the latest boundary decision, the original held action, recent boundary runs, and the result of replaying the action after the missing evidence is supplied.

CAGE-lite product overview showing held and admitted payment decisions

Quick start

CAGE-lite requires Python 3.10 or later.

Install from PyPI

In an active Python 3.10 or later environment:

python -m pip install cage-lite
python -m cage_lite.demo.payment_replay

This runs the packaged payment replay and writes the generated artifacts under playground/v04-replay-demo/ in the current working directory.

To run the Streamlit dashboard, inspect the examples, or contribute changes, install CAGE-lite from source.

Windows PowerShell

git clone https://github.com/roopamwsure/cage-lite.git
cd .\cage-lite

python -m venv .venv
.\.venv\Scripts\Activate.ps1

python -m pip install --upgrade pip
python -m pip install -e .

python -m cage_lite.demo.payment_replay
python -m streamlit run cage_lite/ui/app.py

macOS and Linux

git clone https://github.com/roopamwsure/cage-lite.git
cd cage-lite

python3 -m venv .venv
source .venv/bin/activate

python -m pip install --upgrade pip
python -m pip install -e .

python -m cage_lite.demo.payment_replay
python -m streamlit run cage_lite/ui/app.py

The replay demo creates one original HELD Warrant and one linked ADMITTED replay Warrant under:

playground/v04-replay-demo/

The Streamlit application loads those artifacts by default. Developer controls remain hidden unless they are explicitly enabled.

Examples

The examples/ directory contains smaller demonstrations of individual CAGE behaviors:

  • payment_policy_demo.py evaluates the payment policy and produces a held boundary decision without attempting an effect.
  • payment_no_bind_demo.py shows that a held action does not execute and records durable NO_BIND effect proof.
  • payment_approval_demo.py adds the required approval, admits the action, executes the protected effect, and records BOUND proof.
  • payment_narrowed_demo.py narrows the requested payment to the agent's permitted scope and records the scoped effect result.

Run an example from the repository root:

python examples/payment_no_bind_demo.py
python examples/payment_approval_demo.py
python examples/payment_narrowed_demo.py

The examples write local CAGE Warrants, evidence records, and effect records under playground/. The generated output is excluded from Git.

Where CAGE fits

CAGE does not replace agent runtimes, IAM, policy engines, guardrails, gateways, approval systems, observability platforms, or agent evaluation frameworks.

Those systems produce important signals. CAGE consumes those signals and evaluates whether a proposed action should be allowed to cross the business consequence boundary.

CAGE prebind assurance architecture

The diagram above shows the broader CAGE framework. CAGE-lite is the open-source implementation used to make this assurance model visible, testable, and easier to evaluate.

The basic idea

A simplified CAGE flow looks like this:

Agent proposes an action
        |
        v
Identity, standing, policy, and approval signals
        |
        v
CAGE prebind boundary
        |
        +---- HELD ----> NO_BIND ----> Business effect blocked
        |
        +---- ADMITTED -> BOUND ------> Business effect executed
        |
        v
CAGE Warrant and effect proof

CAGE Warrant

Each evaluated action produces a CAGE Warrant containing decision proof, effect proof, evidence references, replay linkage, and integrity information.

The Warrant distinguishes between deciding that an action may proceed and proving what happened after that decision.

CAGE Warrant showing decision proof, effect proof, and verified digest integrity

Held-to-admitted replay

The included demo begins with a USD 75,000 vendor payment that exceeds the agent's USD 50,000 direct standing limit.

Without the required human approval, CAGE holds the action before effect execution:

  • boundary: HELD;
  • effect: NO_BIND;
  • system of record: NOT_WRITTEN.

The action is then replayed after approval evidence is added. The action, amount, standing limit, and policy remain unchanged. Only the approval state changes.

The replay is admitted, the effect is allowed to bind, and the original held Warrant remains preserved and linked to the replay Warrant.

CAGE-lite replay comparison showing approval missing to present and held to admitted

Project links

License

CAGE-lite is licensed under the Apache License 2.0.

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

cage_lite-0.1.1.tar.gz (924.1 kB view details)

Uploaded Source

Built Distribution

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

cage_lite-0.1.1-py3-none-any.whl (920.7 kB view details)

Uploaded Python 3

File details

Details for the file cage_lite-0.1.1.tar.gz.

File metadata

  • Download URL: cage_lite-0.1.1.tar.gz
  • Upload date:
  • Size: 924.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cage_lite-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f83b2fa34b9f8a2691ee702cb72dd2a4d21293ebb561cd0b0a8d36eb8eada5d3
MD5 99e0c4678e33d37ffebf87de365aa1e2
BLAKE2b-256 b3929bacea4488b56a7aae79e91f1e1118aa939e80811bac73863276805aeca0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cage_lite-0.1.1.tar.gz:

Publisher: publish.yml on roopamwsure/cage-lite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cage_lite-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cage_lite-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 920.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for cage_lite-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d6c83c7f68a5039d4f85e163a9fef5d6c9904ab19b31b4f5fe10288d8251b290
MD5 5d877e13c4bcf81e399b637132676d03
BLAKE2b-256 523f47ef61eaef4ccb16cd357faab6952018e6a89c6d4603c986167f49c2458e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cage_lite-0.1.1-py3-none-any.whl:

Publisher: publish.yml on roopamwsure/cage-lite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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