Enruta

Docs · Guides

Autonomy levels L0 to L5

LiveUpdated

Agents. Written for people who build agents, the hosts they run in, and the people and companies the agents pay for.

“How much can the agent pay by itself” is answered by every product in its own words. Enruta names the levels and shows the label on every policy, so a buyer without a payments background sees what the extra step buys.

LevelMeaningPolicy fieldsExample
L0, a person every timeEvery payment needs a clickapproval.threshold: "0.00" (or an approval rule with no threshold)A spend request the person confirms one by one
L1, a single limitOne cap, no other rulelimits.per_payment only; no payees, no approvalA monthly allowance
L2, a locked targetMerchant, category, frequency and time fixed in advancemode: specified with a payee“One night in Shanghai next Wednesday, under $300”
L3, autonomous inside the boundary, a person beyond itA policy, a human gate, a recordmode: bounded_stepup (the default) with an approval rule“Office supplies, $200 a payment, a person above $150”
L4, autonomous for the sceneEvery task inside the preset scope, nobody in the loopmode: bounded without an approval rule“Verified suppliers, $5,000 a payment, $50,000 a month”
L5, no boundaryNot offeredNobody runs this in production

autonomyLevel(policy) in @enruta/policy computes the label from those fields; the console shows it at the top of every policy page (“This policy is L3: autonomous inside the boundary, a person approves beyond it”). One company can run three agents at three levels in one console: a travel agent at L2, a procurement agent at L3, an accounts-payable agent for verified suppliers at L4.

Only L3 has a verifiable approval

An approval at L3 is an event with a signature bound to a request hash. A tool confirmation in a chat, the “Allow once” button a host shows before a tool call, is not a level at all: it has no amount, no payee, no expiry and no signature. Those four fields are the line between a mandate and a UI confirmation, and the risk assessment does not count confirmations as input.

FieldEffect on the level
shadow: trueAny level runs in shadow mode: decisions become observe and nothing is enforced
require_consentAdds a consent record as a precondition at any level
deviation{tolerance, action}How far a delivered price may move from the requested one before the agent pauses or cancels
reversal{window_days, step_up_above}Refunds have their own gate: above the amount a person signs
intent, identity_requirements, payee_identityWhat a request must say, which anchors an amount needs, and whether the merchant must be verified, at any level (trust model)