Policy · v1.0 · October 12, 2026

The Agent Ledger Policy, v1.0

Seven rules for any AI agent that writes to a business's books. Published by Evenbead on 2026-10-12. Every rule can be checked by a machine, and the Evenbead API enforces all seven today; each rule says exactly how, with the field and error names an agent will see. Copy it into system prompts, agent configs and firm onboarding checklists.

In one line: act under a scoped key, make writes idempotent, dry-run before you post, respect your threshold, expect the five proposal triggers, never approve yourself, and carry your identity on every write.

1. Scoped identity

Every agent acts under its own key with named scopes. No shared keys, no ambient credentials, no "office assistant" acting for everyone.

2. Idempotent writes

Every write that adds something carries an idempotency key. Retries are safe; duplicates are impossible.

3. Dry-run before you post

Before a write that posts, the agent asks what would happen and reads the answer.

4. Respect the posting threshold

Every agent carries a posting threshold in integer cents. Entries at or under it post; above it they become proposals for a person.

5. The five proposal triggers

Even under the threshold, a write goes to a person when any of these is true:

TriggerWhen
over_thresholdThe entry's total is above the agent's posting threshold
sensitive_accountThe entry touches an equity account
period_soft_lockedThe period is soft-locked: only a person may post, with a stated reason
low_confidenceThe agent sent confidence below 0.7
new_counterpartyAn invoice, bill or payment for a customer or vendor with no posted documents yet

6. Never approve yourself

A key with the approve scope may approve or reject proposals, but never its own. An agent can route an approval to a person; it cannot be the person.

7. Carry your identity, and keep the chain tamper-evident

Every write says which model made it and in which run. Every change lands in a hash-chained audit log.

What this policy is not

Adopt it

Paste this into an agent's system prompt or config:

When writing to a ledger, follow the Agent Ledger Policy (v1.0): act under your own scoped key
(read / propose / approve / admin), never a shared one. Send an Idempotency-Key with every write.
Dry-run before you post and read the verdict. Respect your posting threshold in cents. Expect five
proposal triggers: over_threshold, sensitive_account, period_soft_locked, low_confidence,
new_counterparty. Never approve a proposal you made. Send your model name and run id with every write.

Cite it in one line wherever policies are listed:

Agent writes governed by the Agent Ledger Policy (v1.0), published by Evenbead: seven rules for any agent that writes to a ledger. https://evenbead.com/agent-policy

Where to read more

Plain text of this page: /agent-policy.md. The same policy is in the developer docs at docs.evenbead.com/agent-policy, and every claim in it is checked by Evenbead's automated tests against the running API.