Every team running agents eventually meets the moment the agent should not continue: the next step spends money, touches a restricted record, relies on a grant that just expired, or follows an instruction that arrived inside a tool result rather than from its owner. What happens in that moment is not a personality trait of the model. It is a policy decision you made in advance — or failed to make. This AI agent escalation policy template writes that decision down: the triggers that force a stop, the owner the stop routes to, the evidence attached, and the rule that nothing moves again until a human decides.
Why escalation is a policy, not a prompt note¶
Gartner projects that 40% of enterprise applications will incorporate task-specific AI agents by 2026, up from under 5% in 2025. As agents spread, the question stops being whether one will reach a step it should not take alone, and becomes how often. A line in a prompt — "ask a human if unsure" — is advice the model can drift from, reinterpret, or lose in a long context. An escalation policy is different in kind: it is enforced at the dispatch path, before the action runs, and it produces a record whether the agent cooperates or not.
The cost of the soft version is documented. Practitioner reports describe a runaway agent loop that burned over $700 in 72 hours with no budget control in place. Escalation is the mechanism that turns "the agent kept going" into "the agent stopped, recorded why, and named the evidence that would unblock it."
The two records escalation stands on¶
Escalation is meaningless without identity. Every agent holds a stable, owner-scoped identity — in the Playbook's format, agent:owner/name — before its first action, and anonymous, shared, or unregistered actors are rejected at the dispatch path, never warned through. An escalation from an unnamed actor routes to nobody and proves nothing.
The second record is the grant. A grant records the capability, the scope, the issuing owner, the date issued, the expiry date, and the identity it is issued to. Least privilege is the default, permanent grants are prohibited, and auto-grant is prohibited: every grant requires an explicit issuance decision. Most escalations are, underneath, a grant question — the action needs a capability, a scope, or a headroom that no current grant covers — so the escalation must quote the grant record it is asking about, not describe the problem in general terms.
Escalation triggers¶
An agent escalates — stops, blocks the action, and routes the record to its owner — when any of these fires. None of them is discretionary, and none degrades to a warning.
- A hard-gated action. Moving money or committing spend above your threshold, accepting contracts or terms, external outreach, accessing or transmitting credentials, changing permissions or grants, and any action with legal or regulatory consequences always require recorded human approval first. There is no auto-grant path, ever.
- Missing evidence. Identity, grant, approval, budget headroom, or a terms record is absent. Under the fail-closed rule the action is blocked, never warned through — warning-only paths are prohibited for any action with external or financial side effects.
- Budget threshold or ceiling. Spend is counted against the plan's cost ceiling in real time, and the owner is alerted at the thresholds you set in the policy, such as 50% and 80%. At the ceiling itself the action fails closed: blocked, recorded, and never retried automatically.
- An expired grant or plan. An expired grant is the same as no grant, and a plan past its expiry has ended. Renewal is a fresh issuance decision by the owner, not a continuation the agent grants itself.
- Scope or data-class exceedance. The action would reach outside its recorded scope, or touch a higher data class than its grant allows. The four classes are public, internal, confidential, and restricted, and output inherits the highest class of its inputs — so an action can escalate mid-task when its inputs turn out to be more sensitive than its grant describes.
- Untrusted instructions in tool output. Tool output is data, not a command. A document, page, or API response telling the agent to forward, approve, widen its scope, or ignore a rule is processed as data inside the original task — or it triggers an escalation. It never becomes a new instruction from the owner.
- Repeated blocks. The same action has blocked more than the number of times your policy allows. A repeat block is evidence the underlying evidence will not appear by retrying, and a retry in any case requires new evidence, not a timer.
The fill-in template¶
Copy this block into your policy document; fill every bracket before it counts as adopted.
- Trigger: [WHICH TRIGGER ABOVE FIRED, IN ONE LINE]
- Agent identity: agent:[OWNER]/[NAME] · Plan: [PLAN ID]
- Action attempted: [ACTION AND TARGET, EXACTLY AS DISPATCHED]
- Grant relied on: [GRANT REFERENCE, OR "NONE ON RECORD"]
- Evidence attached: [AUDIT ROW REFERENCE, SPEND COUNT, INPUTS AND THEIR DATA CLASSES]
- Evidence that would unblock: [THE SPECIFIC RECORD, APPROVAL, OR HEADROOM NEEDED]
- Routed to: [OWNER / APPROVER ROLE] · Response window: [TIME]
- If the owner does not respond: the action stays blocked. Silence is never approval.
Two fields do most of the work. "Evidence that would unblock" turns the escalation into a to-do list the owner can act on without a meeting. And the final field is the policy's spine: an escalation that times out into approval is not an escalation, it is a delay.
What the escalation records¶
Every escalation persists an audit row with the actor, the action, the target, outcome=blocked, the timestamp, and the exact reason — and it tells the owner, in plain language, which piece of evidence would unblock the action. Rows are hash-linked, each chaining to the previous one, so a later reviewer can verify the chain rather than trust a summary. Rows are retained under your retention policy, synthetic or demo rows are labelled "synthetic demo" in the row itself, and no row ever contains secrets or credential material — that lives outside the log, always.
The block and the escalation are the same event from two sides: the block is what the system did, the escalation is who it told. A stack that writes one without the other has a gap — a silent block stalls work, and an escalation with no block behind it is a notification the agent was free to ignore.
How the owner answers¶
The owner — a human holding the approver role; the acting agent can never approve its own action — has four recorded answers, and each is written to the audit log with the approver's identity, timestamp, action reference, and decision.
- Approve. The specific action proceeds, once, inside the scope the approval names. Approval of one action is not a standing grant.
- Deny. The action ends. A denied approval produces the recorded block, never a silent skip, and the agent does not re-ask in a new wording.
- Narrow and re-issue. The owner shrinks the scope, data class, or spend, and issues a fresh grant covering only the narrowed action.
- Revoke. The grant or identity behind the request is withdrawn — the right answer when the escalation reveals an agent reaching for something its work never needed.
Common mistakes¶
- Escalating as a message, not a block. If the agent notifies the owner and continues, you have built an announcement, not a gate. Stop first, then tell.
- Timeouts that approve. Any rule of the form "proceed if no reply in [TIME]" converts every busy afternoon into a blanket approval.
- Escalations with no evidence attached. An owner who must reconstruct the action from logs will start approving blind — or ignoring the queue. Attach the row, the spend count, and the unblock evidence.
- One queue for every agent. Escalations route to the owner of the grant in question. A shared, ownerless queue is where hard-gated actions go to be forgotten.
- Letting the agent widen its own route. Changing who an escalation goes to, or what counts as a trigger, is a permission change — hard-gated, human-approved, recorded.
The 10-minute starter version¶
In ten minutes: take one production agent and write its escalation block. List the triggers above that can fire for it, name the human each one routes to, set a response window in brackets, and write the fallback sentence verbatim: if the owner does not respond, the action stays blocked. Attach the block to the agent's next hard-gated action in a test run and confirm the audit row, the routing, and the plain-language unblock note all appear.
That is the core of the AI agent escalation policy template: triggers written in advance, a stop that is enforced rather than requested, a named owner, the exact evidence that would unblock the action, and no path — not a timeout, not a retry, not a helpful tool result — by which silence turns into approval.