Reversibility, compiled — before production.See the loop →
Product

Reversibility,
compiled.

Keel reads every action an agent intends, compiles a tested way to undo it, and refuses to let anything irreversible run blind.

The proof is built before production and enforced the moment the agent acts — inside your systems of record.

invoice exception handlerbuild-time · run #4471
01
Post variance commentreversible
undo DELETE comment WHERE id = c_88421
02
Set vendor payment-holdreversible
undo UPDATE vendor SET hold = prior('false')
03
Release net-30 approvalgated
hold awaiting ap-controller
04
Post payment · $48,200irreversible
no compensating action — blocked from autopilot
Coverage2 staged · 1 gated · 1 blocked
The verdict system

Every action, sorted before it runs.

Reversiblestaged

A tested undo is compiled and stored beside the action. It runs freely, rollback held in reserve.

undo · DELETE comment WHERE id = c_88421
Gatedheld

High-impact and paused. Routed to a named human with the full blast radius attached before it executes.

hold · awaiting approval — ap-controller
Irreversibleblocked

No compensating action exists. Keel blocks it from running blind — the agent can't route around it.

blocked · no compiled rollback path
How it works

One loop — proven at build, held in production.

01

Harden

Simulate the agent against real exceptions and compile a tested rollback for every write. No path, no pass.

02

Gate

Stop what can't be reversed. Irreversible actions route to a human with scope attached — never autopilot.

03

Enforce

Hold the same line live. Reversible flows, risky holds, and behavior that drifts pauses the agent.

04

Prove

Hash-chained evidence of every verdict, undo, and approval — exported in one audit-ready pack.

The artifact

What a compiled rollback path looks like.

For every reversible write, Keel stores the exact inverse — bound to the values that were there before the agent touched them.

rollback.keel · run #4471 · invoice exception handler
# action 1 — read invoice & PO
reversible   no state change · nothing to undo

# action 2 — post variance comment
reversible   undo → DELETE FROM comment WHERE id = 'c_88421'

# action 3 — set vendor payment-hold
reversible   undo → UPDATE vendor SET hold = prior_value('false')

# action 4 — post payment to ledger · $48,200
irreversible ledger close is final once the period settles
            → no compensating action · gated for ap-controller
In the path

Between your agents and your records of truth.

Agent frameworks
LangGraphCrewAIOpenAI AgentKitcustom

Wrap the agents you've already built — Keel reads intended actions before they execute.

Systems of record
SAPOracleWorkdayNetSuiteStripeServiceNow

Compile and enforce rollbacks where finality lives — ledgers, ERPs, payment rails.

See it gate a payment in real time.