Product

Every agent action checked against its controls before it runs.
A receipt anyone can verify.

PreFlight is a verification layer, not an agent platform. Your agents stay where they are, built on whatever stack you chose. PreFlight sits in front of the agent's action, blocks the ones that break your rules, and hands you the proof.

Competitive landscape

PreFlight is the only product that provides all the features required to control and make compliant agents at scale.

Pre-action blocking, deterministic enforcement, verification by anyone, privacy-preserving, and cloud-neutral, graded from each vendor's public documentation as of September 2026.

Swipe to see all five columns.
Pre-action
blocking
Deterministic
enforcement
Verifiable
by anyoneno vendor trust
Privacy-
preserving
Cloud-
neutral
ICME PreFlightpre-action · formal · ZK receipt
AWS BedrockPolicy in AgentCore · Automated Reasoning checks
MCP gatewaysLasso · Zenity · Pillar
LLM-as-judge guardrailsDatadog AI Guard · NeMo Guardrails
Runtime screeningLakera · F5 AI Guardrails · Fiddler
AI governance platformsCredo AI · Monitaur · Holistic AI
Audit-log toolsobservability and logging
FullPartialNone

Partial means the capability exists but is statistical rather than formal, or applies to authorization but not to the content of the action. Privacy-preserving means verification reveals nothing about the policy or the data. Columns reflect public product documentation as of September 2026. Pre-action blocking for AWS refers to Policy in Amazon Bedrock AgentCore; Automated Reasoning checks run in detect mode on model output.

The receipt

Every agent action ships with proof. Anyone can check it.

Each agent action is checked before it runs. The check returns a verdict and a zero-knowledge receipt: a mathematical artifact that cannot exist unless the check ran, on that exact action, against that exact policy, producing that exact result. Tamper-evident: forging or editing it means breaking the cryptography.

verifyProof / receipt
VALID: TRUE verified in 0.41s · proof size 94.2 KB
{ "proof_id": "5c2ebf28-6cee-41b1-bd38-51bd7ce1c322", "policy_hash": "44d3413f…ba28c84a", "result": "SAT", "valid": true, "verify_ms": 414, "proof_bytes_len": 96442, "created_at": "2026-08-04T18:24:15Z" }

A receipt from the public verifier. The policy_hash commits to the exact ruleset that was checked, so an auditor knows which version of the rules was in force for that action. valid: true means the cryptographic check passed independently.

How verification works

One public endpoint. No API key. Under a second.

A GC, auditor, counterparty, or regulator verifies a receipt against a public endpoint with no account and no access to your systems. Verification time is independent of policy size, and the receipt verifies on any stack, not just the cloud that produced it.

What the receipt binds

The agent action, the rules, the result, the version.

Each receipt commits to the exact policy version in force when the action was checked and carries the SAT or UNSAT outcome the proof attests to. It proves the rule fired against the facts asserted in the action; fact accuracy remains the extraction layer's job.

What stays private

Your policy, the action, and your data.

A verifier receives the verdict, the policy hash, and the proof, and nothing else. The agent being checked never sees the rules, and neither does the auditor or regulator confirming the decision. A thousand probing actions return a thousand identical-shaped verdicts and never enumerate the policy. The proof stays roughly constant-sized however complex the rules are, so checking thousands of actions is verifying one proof.

How it attaches

Three ways to connect: hosted API, MCP server, or a pre-execution hook.

All three check the action before it runs. The difference is who decides that the check happens: your code, the agent, or the platform. Only the hook makes the check impossible for the agent to skip.

Hosted API

Your code sends the proposed action and gets a verdict, a check ID, and a proof ID back.

A plain-English description of the proposed action plus a policy ID go in; a verdict, a check ID, and a proof ID come back. Small payload, no documents, no agreement data.

MCP server

api.icme.io/mcp: 14 tools for checking, verification, and receipts.

Our MCP server runs at api.icme.io/mcp for checking, verification, and receipts. It is the fastest way to adopt PreFlight inside an agent that already speaks MCP.

Pre-execution hook

Your platform calls the check as a required step, so no verdict means no action.

A tool an agent can call is a tool an agent can skip. When the platform invokes the check as a mandatory step, the action cannot proceed without a verdict. The MCP server makes PreFlight easy to adopt; the hook makes it impossible to bypass.

$5to start: an API key and a card, no subscription
$3to compile a policy, once
per agent action checked
Freerelevance pre-screen, so policy-irrelevant actions never incur a check
FAQ

Implementation and security details.

How PreFlight fits your stack, what it costs, and the answers to the questions a security or risk reviewer sends before a pilot.

Positioning
You use an LLM in the pipeline. Doesn't that reintroduce the problem?

The LLM does one job: translating your policy into formal logic, once, at compile time. That output is inspected, checked for contradictions, and battle-tested against generated scenarios before anything goes live. At decision time a solver decides, and a solver cannot be talked around or fed a trick instruction. The probabilistic component never makes the allow-or-block call.

How is this different from a locked, deterministic workflow?

A locked workflow makes the steps repeatable, then hands your auditor a trace of what ran. That trace is a log. To trust it, the auditor has to trust that it was not edited, that nothing was omitted, and that your system produced it honestly.

PreFlight returns a proof instead of a trace. A third party verifies it without trusting you, and without seeing your policy or your data. Repeatable is good. Provable, and provable without disclosure, is the part a locked workflow does not give you.

We have SOC 2 and ISO 42001. Doesn't that already cover this?

Keep them; your buyers require them. But certifications verify the operator's controls, at the organization level, on an annual cycle. They say nothing about whether a specific agent action complied with a specific rule today. A certificate vouches for the company. The receipt vouches for the agent action.

There is also an evidentiary hierarchy here. The audit profession's own evidence standards rank independent external evidence above anything produced by the entity under review. A receipt verified by outside math sits in that top tier. A control report produced inside the system it vouches for does not.

Does ICME have SOC 2? Where does our data go?

It depends on how you deploy, and in two of the three models the question does not arise.

Pilot. A pilot uses your published policy and test actions. No client data is involved, so no vendor security review is needed to start.

Production in your own cloud account. The checkpoint runs inside your AWS account. Actions are checked and proofs are generated within your environment, and only the proof and verdict metadata reach ICME. ICME verifies your receipts and never holds client data, so SOC 2 is not applicable to us. Your cloud provider's certifications cover the infrastructure and your own controls cover the data.

ICME-hosted. SOC 2 becomes relevant only if you prefer that we host. In that case we run a single-tenant environment with private connectivity and encryption keys you hold and can revoke, and we meet your vendor security requirements before any client data moves.

What stops the agent from lying about what it is doing?

Policies are built on facts present in the action itself: amount, recipient, destination. Text slipped into an email the agent read (a prompt injection) cannot change what the proposed action actually says. When PreFlight gates at the point of execution, the checked action is the executed action. The agent cannot move $10,000 while describing a $100 transfer, because the description is the transfer.

Doesn't a SAT verdict just mean the agent action was compliant, not correct?

Correct, and we lead with it. SAT means the action satisfied your policy. It does not mean the policy was wise, or that the facts the action asserted are true. The receipt proves the rule fired against what the action claimed, which is accountability, not a safety guarantee.

What stalls a deployment is almost never "the agent might be suboptimal." It is "we cannot prove controls to risk and the regulator." Receipts solve that one, and that is the problem with a budget attached.

What if a reviewer doesn't trust the receipt at all?

Then they still get the enforcement. The blocking decision comes from the solver consensus, not from the proof layer. So the worst case for a skeptic is "the guardrail still blocked the bad action, and the receipt is evidence I am choosing not to rely on yet."

The receipt adds verifiability on top of the safety. It does not carry the safety; that is the solver's job. A reviewer can adopt the evidence on their own timeline without the protection ever depending on it.

What is setup actually like, and how long does it take?

For the attorney or compliance owner who uses it day to day, there is nothing technical about it: they write plain-English if-then rules the way they would brief a new hire, and that is the entire authoring experience. Compilation and battle-testing run behind it. There is no separate interface to learn, so rules can be authored wherever your team manages policy today.

Two timings. Rules an attorney writes in their own words take minutes to compile, because the solver checks the whole set for contradictions and edge cases before anything governs a live action. Rules that range over fixed, known fields auto-generate in about two seconds. The first buys a version an attorney signed off on; the second is why per-customer setup at platform scale does not wait on a compile.

Where does it run? Do we need our own servers?

PreFlight is an API. By default there is no infrastructure to stand up and no server to run. For production in a regulated firm, the checkpoint can instead run inside your own cloud account so no client data leaves it. Either way it is cloud-neutral, and the receipt verifies on any stack, not just the one that produced it. A third party checks a decision against a single public endpoint, with no API key and no account.

Diligence
When the checks disagree, does the LLM ever override the formal result?

No. Every check runs two independent verifications and reconciles them before returning a result: a custom LLM check that evaluates the action against the compiled SMT model of your policy, and a cloud reasoning engine that independently evaluates the same action against the same policy. A SAT result requires both to agree. If either returns UNSAT, the action is blocked.

So a single extraction error or a single reasoning gap cannot produce a false clearance, and no path, including the LLM, can talk the system out of a proven violation. The solver underneath is Z3, which came out of Microsoft Research and has been a standard formal verification engine for close to twenty years; the translation method is adopted from AWS Automated Reasoning checks (arXiv:2511.09008). Policies are also checked for internal contradictions at compile time, before they are saved.

What happens with an ambiguous term, like "loyal customer"?

The system surfaces ambiguity rather than quietly resolving it. At compile time, battle testing generates scenarios that expose a vague or wrong rule first. Before production, you can pull every extracted variable, its type, and its rule, and tighten a loose phrase. At runtime, an ambiguous term returns an uncertain result instead of a clean verdict, and the check resolves conservatively.

The runtime uncertain result is a backstop, not a workflow. If it appears in production, treat it as a signal to return to the policy, define the term, and re-run battle testing. A well-tested policy produces clean SAT and UNSAT verdicts.

Can we inspect the compiled logic, or only the final verdict?

Fully, as the customer. You can retrieve the original policy text, the compiled SMT-LIB, and the parsed rules at no charge, and export the SMT-LIB for your own tooling or an independent reviewer. Every check also returns the extracted variable bindings and the per-path results alongside the proof.

Outsiders get the other kind of transparency: the zero-knowledge receipt lets anyone confirm the decision was made correctly without seeing your rules and without trusting us. Your clients' reviewers verify the check ran; your policy stays private.

Isn't the receipt just an audit trail?

An audit trail is a record the operator keeps about its own conduct; when a reviewer asks how they know the log is honest, the only answer is to trust the operator. The receipt is a piece of math an outside party checks, and if anyone tampered with the result, the check fails. The verifier code is public, the protocols are peer reviewed, and a dishonest verifier would be caught by the first cryptographer who looked, which is the same reason banks trust TLS without reading its source.

A record you produce about your own system is testimony. A receipt checkable against neutral math is evidence.

Your proving system, JOLT, isn't formally audited yet. Why is that acceptable?

JOLT is a16z Crypto's open-source zkVM, and its README says it is in alpha and not yet audited. We disclose that plainly. The audit question is narrower than it looks, though. In a zero-knowledge system the property that protects you is verifier correctness, not whole-codebase perfection. A correctly implemented verifier rejects a cheating prover, so a bug or bad actor on the proving side produces a rejected proof, not a false one.

The verifier is the small, inspectable, open-source component, and it implements peer-reviewed protocols (JOLT, IACR ePrint 2023/1217, with our zkML layer in JOLT Atlas, arXiv:2602.17452). You do not need to inspect it personally; the assurance comes from the fact that anyone can. A dishonest verifier would be caught by the first cryptographer who looked, and cryptographers do look, which is the same reason banks trust TLS without reading its source. Compare that to a proprietary log format, where nobody outside the vendor can check anything.

Two scoping points: enforcement does not depend on JOLT at all, since the fail-closed blocking comes from the solver consensus above, and the upstream verification work is public and trackable at github.com/a16z/jolt rather than promised, including its Z3 verifier component. We hold ourselves to the same disclosure discipline we recommend to buyers: verify the small thing that matters, disclose the maturity of the rest. If a16z publishes audit results, we will surface them.

Get started

Start with the API, or start with a scoped pilot.

Developers can be checking agent actions in minutes. Enterprise teams can start with a scoped pilot on the policies your risk team is asking about.

For developers

Try the API

Compile a policy, check an agent action, get a verdict and a receipt. No subscription, and public proof verification needs no API key.

Read the docs
For risk and platform teams

Book a call

Bring the policy stuck in review. We will count the rules that are checkable facts versus genuine judgment calls and scope a pilot from there.

Book a call