Gated writes for agents that take action
Let agents create and update records safely: approved models only, a required reason on every write, row caps, and a full audit trail.
The problem
Read-only agents are safe but limited. The moment an agent can write, a hallucinated update or an injected instruction can corrupt data at scale — and you have no record of why a row changed.
With OrmAI
OrmAI gates writes to an allow-list of models, can require a human-readable reason on every mutation, and caps rows-per-statement. Every write is logged with its inputs and the policy decision, giving you a reversible, auditable trail.
The primitives doing the work
Model allow-list
Only explicitly enabled models can be mutated; everything else is read-only.
Required reason
Writes can demand a reason string, captured in the audit log for every change.
Rows-per-statement cap
A single agent call can’t update ten thousand rows by accident.
The policy, in a few lines
policy = (
PolicyBuilder(DEFAULT_PROD)
.register_models([Order])
.enable_writes(models=["Order"], require_reason=True)
.max_rows_per_write(50)
.build() Keep reading
Other use cases