Learn

AI Agent Governance: A Practical Control Framework

For the operations, risk or security owner who has to sign off on an agent touching real systems: the controls to put in place, and the evidence to keep, one process at a time.

Uli PrantzBuilds and operates all-agents
Published
Key takeaways

Key takeaways

  • Govern one process at a time, not the technology. A process has an owner, a risk tier and an audit trail; a blanket AI policy gives you nothing to check against when something goes wrong.
  • Write the autonomy line down before the first unattended run. List which action types may proceed alone and which stop for a person, and put that list under change control like any other rule.
  • An approval that shows no detail is not oversight. Put the real payload in front of the approver, give them the authority to reject, and watch the rejection rate: a gate nobody ever fails is a gate that is not working.
  • Design the record before the automation. If you cannot reconstruct which version of the procedure ran, what it received, what it did and who approved it, you cannot answer the only questions anyone asks after an incident.
  • Give the process its own scoped identity rather than a person's credentials. Least privilege is what caps the damage when a step misfires, and shared logins quietly destroy the audit trail.
AI agent governance is the set of controls that decide five things for a given process: what the agent may access, what it may do without asking, what gets recorded, how exceptions escalate, and who reviews the arrangement. Forget the all-purpose AI policy document: governance here is five answers you write down per process, enforce in the system that runs it, and can produce evidence for afterwards. This page gives you the control sheet, a risk tier table mapping action types to required controls, and the record you need to keep.

What agent governance has to answer that ordinary software governance does not

Ordinary business software does what it was told to do: you review the rules once, and the rules are what runs. An agent differs in one way that matters for control design. You give it a goal and a set of tools, and it decides the path. What you approved was the boundary, not the behaviour, so you are no longer signing off on a sequence of steps. You are signing off on a scope: what it can reach, how far it can go alone, and what it leaves behind.

The NIST AI Risk Management Framework organises this work into four functions — govern, map, measure and manage — and treats GOVERN as the one that cuts across the others rather than a phase you finish. Its instruction for teams like yours is unglamorous and correct: have policies that define and differentiate human roles and responsibilities in human-AI configurations. In operator language, decide who is accountable for what, per process, before the first unattended run.

Governing the technology as a whole leaves you nothing to test. Governing one process does: it has a named owner, a known blast radius, a written procedure and a record. Everything below assumes one process at a time, and five questions asked about it — access, autonomy, record, escalation and review.

The control sheet: five questions and what a complete answer looks like

This is the framework. One sheet per process, filled in before it runs unattended and revisited whenever it changes. The third column is deliberately a minimum rather than an ideal: below that line you do not have a control, you have an intention.

The agent control sheet. Complete one per process, not one per organisation.
ControlThe question it answersMinimum answer that countsWho owns it
AccessWhat can it reach, as whom?Its own identity, scoped to the systems and record types this procedure touches. No standing human credentials, no shared login.Systems or IT owner
AutonomyWhat can it finish without asking?A written tier list of action types with an explicit line above which every action stops for a person. Versioned, and changes are approved.Process owner
RecordWhat can you show afterwards?Per run: trigger, inputs as received, procedure version, each step and who performed it, tool calls, approvals with identity and time, outputs sent outside.Process owner
EscalationWhat happens when it is stuck or wrong?A named first responder, a time limit, a second name when the limit passes, and a defined fallback to doing the work manually.Process owner
ReviewDoes any of this still hold?A scheduled review of exceptions, approval decisions and access scope, by someone who does not benefit from the process running smoothly.Risk or governance owner

One structural rule sits underneath the last row. The person who approves an action should not be the one who requested it or who is measured on the throughput of the process. Separating those roles is standard practice in financial controls, and automation changes nothing about it. If the same person defines the tiers, approves the exceptions and reports on the results, you have documentation rather than control.

What the agent may access: scoped credentials, not borrowed ones

Access is the control that works when nobody is watching. Every other control on the sheet depends on someone noticing something. Least privilege caps the damage from a step that misfires at three in the morning, which is why it comes first.

The most common mistake by a distance is running the process under a person's account because it was quicker. That one shortcut breaks two controls: the scope becomes whatever that person can do, usually everything they have accumulated over three years, and the audit trail now says a human did it.

  • Give the process its own identity. Not an employee's login, and not a shared account used by four automations. Reading a log later, you want to know which process acted.
  • Scope to the procedure, not the person. Grant only the systems, objects and fields the written procedure names. If it never mentions customer bank details, the credential should not reach them.
  • Split reading from writing. Broad read access is usually cheap; write access should be narrow and enumerated. Most steps only read, match and prepare.
  • Keep secrets out of the procedure text. The written procedure is read by people and by the model. It should never contain a key, a token or a password.
  • Rotate and prune on a schedule. Rotation that only happens after an incident is an incident response. Review scope when the procedure changes, and remove permissions it no longer uses.

A useful test before you turn anything on: write down the worst single action this credential permits if a step goes completely wrong. If that sentence is uncomfortable to read, the scope is too wide, and no amount of approval design fixes it later.

What may run unattended, and what stops for a person every time

Autonomy belongs to each action a process can take, never to the process as a whole. A supplier payment process reads documents, matches records, drafts messages and releases money, and those four do not deserve the same treatment. Sorting them by consequence is the real design work, and the part usually skipped.

Sort by two things only: how visible the action is outside your team, and how hard it is to take back. Cost and frequency are distractions. A cheap action that reaches a customer and cannot be recalled belongs above the line; an expensive internal recalculation you can rerun does not.

Risk tiers: action types mapped to the controls each one requires. Assign every action your process can take to exactly one tier.
TierAction typesMay run unattended?Required controlRecord you must produce
0 — Internal, reversibleReading records, matching, classifying, tagging, drafting text that stays inside the system.Yes, from the start.Logging only, no gate, plus sampled review so nobody finds a quiet misclassification six months late.What it read, what it concluded, and which procedure version produced that conclusion.
1 — Internal, visible, recoverableUpdating a CRM field, moving a ticket, posting internally, creating a draft a colleague will see.Yes, once it has run cleanly under supervision and the owner has signed the procedure off.Before-and-after values logged, exceptions reviewed weekly, a defined way to reverse the change.The previous value, the new value, the trigger, the time.
2 — Leaves the buildingEmailing a customer or supplier, filing with a third party, raising a purchase order, publishing anything externally.Only where the owner explicitly promotes it, and a mistake is embarrassing rather than material.Approval by default with the full outgoing payload shown. Permanent gate wherever a person must be answerable for the content.The exact artefact sent, who approved it, what they changed.
3 — Money, contracts, or a personReleasing a payment, issuing a credit, signing or cancelling an agreement, changing someone's employment, access or eligibility status.No. Not after a hundred clean runs, not after a thousand.Permanent approval that no setting can remove. Approver separated from the requester. Reason captured on rejection.Approver identity, what was in front of them, the decision, the reason, and the procedure version that proposed it.

Tier 3 is the row people argue about, usually as a confidence question: surely once it is accurate enough, the gate can go? That misses why the gate is there. Some decisions need a person on the hook for responsibility, however good the system has become. Where a decision produces legal or similarly significant effects for an individual, Article 22 of the GDPR gives that person the right not to be subject to a decision based solely on automated processing, and where such processing is permitted, the right to obtain human intervention, to express a view and to contest the outcome. A gate you can switch off is not an answer to that.

The second failure mode is subtler, and it is what turns governance into theatre: a gate exists, someone clicks it, and nothing is actually reviewed. Article 14 of the EU AI Act addresses this for high-risk systems: they must be designed so natural persons can effectively oversee them, overseers need the competence, training and authority to do so, and the design must work against automation bias, the tendency to over-rely on system output. That translates into concrete interface decisions.

  • Show the payload, not a summary. The approver sees the actual message, amount or record being changed. A request that says “approve step 4” is not oversight.
  • Make rejection cheap and editing possible. If the only options are approve or abandon the run, people approve. Correcting the proposal and continuing is what turns a gate into a control.
  • Give the approver real authority. They must be allowed to say no, to stop the process, and to not be measured purely on how fast the queue clears.
  • Watch the rejection rate and the queue length. A gate never failed across hundreds of runs means the tier is wrong or nobody is reading. Forty approvals a day means attention is already decaying.

What gets recorded, and what the record has to make answerable

After an incident, three questions get asked in the same order. What did it do? What was it working from? Who said it could? A record that cannot answer all three is an operational log rather than a governance record, and the difference only becomes apparent on the day you need it.

The regulatory direction of travel is the same. Article 12 of the EU AI Act requires high-risk systems to allow the automatic recording of events over the system's lifetime. Whether it applies to you depends on how the system is classified and on your role, which is a question for counsel rather than for this page. The design it implies is worth adopting regardless: it is the same design that lets you debug your own process.

  • Run identity, trigger and inputs as received. The original artefact, not a cleaned-up interpretation. Interpretations are what you are checking.
  • Procedure version. Which version this run executed against. Without it you cannot separate a bug from a rule change.
  • Every step, attributed. Whether it was fixed logic, model judgment or a human decision, and for tool calls, what was sent to which system and what came back. Those three kinds of step have different failure modes and different remedies.
  • Approval events. Who approved, what they were shown, whether they edited it, when, and the reason on rejection.
  • Outputs that left the building, in the form they were sent.
  • Exceptions, escalations and retention. What stopped, who was told, how it was resolved, and how long the record is kept.

The stronger version is a record complete enough to replay the run. A narrative summary leaves you guessing; the actual inputs and decisions let you investigate, and let you check a proposed fix against everything that already worked.

Simulated governance record for one runSimulated example data

A supplier invoice process, tier 3 because it ends in a payment. The figures are invented; what matters is the shape of the record.

  • Trigger: invoice document received in the monitored inbox, 09:14.
  • Procedure version: 7, in force since 12 June.
  • Inputs as received: the original PDF, supplier reference SUP-4471, stated total 4,180.00 EUR, purchase order PO-2291.
  • Step 1, fixed logic: matched the invoice to PO-2291.
  • Step 2, model judgment: extracted five line items and flagged one, 200.00 EUR of “expedited handling”, as absent from the purchase order.
  • Step 3, gate: raised to the process owner at 09:15 under the tier 3 rule.
  • Approval: owner reviewed the flagged line and the full payment instruction, removed the disputed 200.00 EUR, approved 3,980.00 EUR at 09:31. Identity and timestamp recorded.
  • Output: instruction released as approved; the artefact sent is stored with the run.
  • Follow-up: third occurrence of this edit in a quarter, so the procedure gains an explicit rule for handling charges.

That answers all three questions. What it did: matched, flagged, proposed. What from: version 7, these inputs. Who said it could: a named person who saw the payload and changed it first.

How exceptions escalate, and who reviews the arrangement on a schedule

An exception is not a failure of the design. It is the design working: the process met something its procedure does not cover and stopped instead of improvising. What matters is that the stopping goes somewhere, within a stated time, and leaves the procedure better than it found it.

  1. 01The process stops instead of guessingTrigger
    An unfamiliar input, a tool that failed, a case the written procedure does not cover. The correct behaviour is to halt that run and preserve its state, not to pick the most plausible option and carry on.
  2. 02It routes to a named person, then escalates on a clockCode
    Not a shared alias, and not a dashboard someone might look at. A named first responder gets the run, the inputs and the point of failure, with a pick-up limit matching the tier. Past the limit: a second name, then a defined fallback to doing the work manually. Work quietly waiting on an unavailable person is the most common way an automated process fails unreported.
  3. 03A person resolves the case and states the ruleHuman approval
    Handling the case is half the job. The other half is saying what the rule should have been, so the answer lands in the written procedure rather than in one person's memory.
  4. 04Repeat exceptions become procedure, not habitHuman approval
    The same exception arriving a third time is a missing rule. Catching that is the difference between a process that improves and one where somebody permanently patches the same gap by hand.

Review keeps the other four controls honest, and it decays first, because a process that appears to be working generates no prompt to look at it. Put it on a calendar with a named owner and a specific question for each item.

A review schedule for one automated process. The last column is what you are looking for, which is more useful than a checkbox.
What you reviewHow oftenWhoThe signal
Approval decisions, rejections especiallyWeeklyProcess ownerApprovals returning within seconds with no edits, and a rejection rate near zero. Both suggest a gate being cleared, not read.
Exceptions and escalationsWeeklyProcess ownerThe same exception recurring: a missing rule in the procedure, not a run of bad luck.
Access scopeQuarterly, and on any procedure changeSystems or IT ownerPermissions the current procedure never uses, and any credential shared with a person.
Written procedure against what actually ranQuarterlyRisk or governance ownerDrift: the process doing what the document does not describe, or the document describing a step that no longer exists.
Tier assignmentsQuarterly, and whenever the process changesRisk owner with the process ownerActions whose consequence has moved. Volume growth alone can push a tier 1 action into tier 2 territory.

Where these controls attach in a process that starts agentic and becomes code

A control sheet is only worth filling in if the system running the process can enforce it. Here is where each control lands in the approach all-agents takes, because the sequence changes which controls matter when.

  1. 01Learn: the process runs with the operator watchingAI judgment
    The first runs execute agentically, with the operator present and every irreversible action approved before it happens. This is when your tier list meets reality: actions you filed under tier 1 turn out to reach a customer, and you find out while a person is still approving everything.
  2. 02Decide it is understood well enough to pin downHuman approval
    Each accepted run is captured as a concrete example, and the written procedure is refined with what it taught. A person, not a counter, decides when it is complete enough to codify. That decision is itself a governance event worth recording.
  3. 03Codify: walk the procedure step by stepHuman approval
    A step-by-step walk-through turns the understood procedure into deterministic code. Steps that genuinely need judgment stay with the model. Steps the human pins keep a permanent approval gate, which is where your tier 3 rows belong. What it surfaces is written back into the procedure, so the document stays the thing you audit against.
  4. 04Run: deterministic, gated where it was pinned, recordedCode
    The codified process runs the same way every time, still stopping at the pinned gates, every run recorded and replayable. Determinism is itself a control: a step that behaves identically on every run is one you review once rather than sample forever.

Two consequences are worth naming. The number of steps left to model judgment should fall over the life of a process, and each one remaining marks a place the procedure could not be pinned down: a governance metric as much as a cost one. And permanent gates are not a transitional measure a mature process earns its way out of. They are a property of the decision, and they survive codification by design.

If the procedure is not written down yet, start there instead: the procedure guide covers what makes one precise enough to check an automation against. For gate design, the human-in-the-loop guide goes deeper, and the reliability guide covers the failure modes these controls exist to catch.

Limitations and when not to use this

  • Nothing here is legal advice. Whether the EU AI Act applies to your system, whether it counts as high-risk, which obligations fall on you as provider or deployer, and how Article 22 of the GDPR meets your legal basis all depend on jurisdiction, sector and role. We cite the primary sources so you can read them; take advice before relying on any of it.
  • This framework is sized for operational processes owned by a small team. In a supervised sector, your regulator's requirements are more specific than anything here and come first. Treat it as a floor, not a programme that satisfies a supervisor.
  • Controls need something to check against. If you cannot yet write down what a correct run looks like and what should happen when one goes wrong, the honest next step is the written procedure, not the automation.
  • Some processes should not be automated at all, and governance cannot rescue them. If nearly every case is a judgment call about an individual, leave the work with a person and spend the effort on making their job easier.

Sources

  1. AI RMF 1.0 (NIST AI 100-1)NIST Accessed 24 July 2026
  2. Article 14: Human oversightEU Artificial Intelligence Act Accessed 24 July 2026
  3. Article 12: Record-keepingEU Artificial Intelligence Act Accessed 24 July 2026
  4. Art. 22 GDPR — Automated individual decision-makingGDPR Accessed 24 July 2026

Design the approval gates for one process

Take your tier list from the table on this page and turn every row above the autonomy line into a gate a person will actually read.

Design the approval gates for one process
About the author

Uli Prantz

Builds and operates all-agents

Uli Prantz builds all-agents, the process-automation platform this site documents. He writes about the operational side of automating recurring business work: where deterministic code beats model judgment, where it does not, and where a human still has to approve.

Bring one process. We will scope it in 30 minutes.

You leave the call knowing whether it is a fit, what can become code and what still needs a person.

Book a discovery call