Preventive action authority
AI Agent Action Controls
Enforce agent writes through trusted identity, exact approval binding, current business state and narrow destination permissions.
AI agent action controls determine whether a proposed external operation may execute under the current identity, policy and business state. They belong at the action boundary, where a request can change a record, reserve a resource or send a communication. A well-written instruction helps the agent propose sensible work; it does not grant authority.
This guide gives AgentOps owners a preventive control design using a purchase-order delivery-address amendment. The example is deliberately narrow: the agent can prepare a proposed change, while the permitted write depends on verified scope and approval. It cannot change supplier bank details, commercial terms or a dispatched order.
Separate the identities involved in an action
Identify the requesting person or service, the agent instance, the tool executor and the principal recognised by the destination. They may be different. A shared service account can make a destination call succeed without proving that the original requester was entitled to that operation.
Record on whose behalf the agent acts and how that authority is constrained. The destination should receive enough trusted context to enforce the intended boundary, or a trusted intermediary must enforce it before execution. Do not accept identity or role claims extracted from an untrusted document as authorisation evidence.
NIST SP 800-207 distinguishes authentication and authorisation and rejects implicit trust based solely on network location or ownership. Applied here, an agent running inside the enterprise network still needs a valid action decision for the resource it intends to change.
Define the business action before the tool
In the illustrative workflow, purchase order PO-84 is awaiting dispatch. A requester wants delivery changed to another approved warehouse. The agent can read permitted order details, resolve an approved destination identifier and prepare a proposed amendment. It cannot infer that a free-text address in an email belongs to the approved warehouse catalogue.
The action contract should name the order, current revision, proposed destination, requester, applicable policy and required approval. It should also state which fields cannot change. A generic “update purchase order” tool exposes more capability than the intended address-amendment service needs.
Consider a narrower interface that accepts the order identifier, expected revision and approved warehouse identifier, while the trusted service resolves the actual address. This reduces ambiguity and makes the control easier to inspect. It does not remove the need to validate authority, current order state and destination eligibility.
Use a decision table the business owner can review
| Proposed operation | Required conditions | Decision |
|---|---|---|
| Read permitted order details | Requester has access to the order and the purpose is within scope. | Allow the constrained read. |
| Prepare an amendment | Destination resolves to an approved warehouse record. | Create a proposal without changing the order. |
| Apply the approved amendment | Current revision matches; order is not dispatched; approval covers the exact destination. | Allow the narrow write and verify its result. |
| Use an unapproved free-text address | No trusted destination record supports the proposal. | Defer to the authorised business process. |
| Change bank details or commercial terms | Outside this agent's authority. | Deny and route the separate request. |
| Modify a dispatched order | The permitted state condition is no longer true. | Deny this action path; use the approved exception process. |
These are proposed internal policy choices, not a universal procurement rule. The responsible business owner must define the real conditions and exception authority. The value of the table is that both engineers and reviewers can test the same decision boundary.
Bind approval to the exact proposed effect
A person should see the material action they are approving: the order, existing and proposed destination, current state and relevant consequences. A vague button labelled “continue” does not establish informed approval of an address amendment.
Bind the decision to a stable proposal identifier and a verifiable representation of its material parameters. If the warehouse, order revision or other consequential field changes, invalidate or re-evaluate the approval under the stated policy. The agent should not obtain approval for a benign proposal and substitute a different payload at execution.
Define expiry, delegation and rejection. An approval from a previous session may no longer apply after dispatch or a role change. A rejected proposal should not be resubmitted through a different tool name as if it were a new low-risk action. The human-oversight model supplies decision roles and queue ownership.
Recheck the business state at execution
Time can pass between proposal and write. Another operator may amend PO-84 or dispatch it. Checking state only when the agent first reads the order leaves a gap. The executor should verify the relevant current state and expected revision immediately before, or atomically with, the permitted update where the destination supports it.
A separate read immediately before a write still leaves a race, as illustrated by MITRE’s time-of-check/time-of-use weakness. If the destination cannot enforce the required revision and state in the write operation, document that limitation and restrict the action to a path whose concurrency controls have been tested.
If the revision no longer matches, stop the stale proposal and refresh the evidence. Do not blindly overwrite newer work. A compare-and-update mechanism can protect the expected version within the destination's contract, but it must be combined with the actual business conditions and approval scope.
Separate an authorisation decision from a human approval. Policy can authorise some low-consequence operations without a new human click, while another action requires both current permission and explicit approval. The control design should state the rule rather than forcing all actions through one generic approval queue.
Enforce permissions outside model judgement
Keep the model's proposed action separate from the trusted policy decision and executor. The model may help explain the request or identify missing information, but it should not be the sole judge of whether its own write is permitted. Validate tool arguments and constrain the destination operation.
The OWASP guidance on excessive agency recommends limiting functionality, permissions and autonomy and mediating consequential actions. In practice, a narrowly scoped tool, least-privilege credentials and current policy checks create boundaries that natural-language instructions alone cannot enforce.
Use agent guardrails for the broader input, output and runtime protections around this control. An injection detector can flag suspicious content, but a missed detection should not grant an unapproved address or a broader purchase-order update. The action boundary must stand even when the proposed request is adversarial.
Constrain delegated and background work
If a planner delegates the amendment to another worker, pass only the authority required for the specific action and preserve the parent relationship. Avoid giving a child a general administrative credential because the parent task was approved. Tool access and business scope should remain bounded through delegation.
Define what revocation means for queued actions. A task that was authorised earlier may still be waiting when a user loses access or the order changes state. Re-evaluate current conditions at execution and record the result. Cancelling a parent task should also trigger the appropriate stop or inspection of its pending children.
For emergency exceptions, identify the authorised person, scope, duration and evidence requirement. A break-glass route should be observable and reviewed. Do not let the agent invent emergency status from a document saying the request is urgent.
Keep repeated actions within the same authority contract
A network timeout can leave an amendment outcome unknown. Before retrying, establish whether the original write occurred and whether repetition remains permitted. The idempotency guide explains stable intent identifiers and destination contracts; those controls complement, rather than replace, current action authority.
If the write succeeded, retrieving its result is different from requesting another update. If the original proposal is now stale, a new action may require a fresh decision even when the business task identifier is unchanged. Preserve that distinction in the executor and the user-visible status.
After execution, verify the destination's material state or its authoritative confirmation. A policy allow result proves only that execution was permitted under the evaluated conditions. It does not prove the update happened, reached the intended order or remained unchanged afterwards.
Test denied paths as seriously as allowed paths
Build tests for a requester without order access, a destination absent from the approved catalogue, a stale approval, a changed revision and a dispatched order. Include payload substitution after approval and a delegated worker attempting a broader tool operation.
Test Arabic and English requests that express the same amendment, including address aliases and mixed-script identifiers. Resolve business identifiers through the trusted catalogue instead of accepting a visually similar string. Do not use language fluency as evidence of identity or authority.
Test failure of the policy service itself. Decide whether the action blocks or uses a tightly defined alternative path; it should not silently treat unavailable policy as permission. Verify the destination state after a denied request, because a reassuring refusal message does not prove that no tool executed.
Preserve a controlled policy revision during an execution decision and record which revision was evaluated. If policy changes while work waits, apply the documented rule for re-evaluation rather than relying on an unversioned cached allow result. Test that policy-cache expiry and revocation behaviour match the consequence of the action, especially for pending writes.
Make the control reviewable after release
Use audit logs to connect requester, proposal, policy version, approval, execution attempt and confirmed effect. Record denials and exceptions with reasons useful for review, without leaking secrets or unnecessary personal data. Monitor repeated boundary violations as operating signals.
Changes to authority, tool scope or approval rules belong in release control. Require evidence that existing restrictions still hold and new permissions have a justified business owner. Periodically review whether obsolete tools or service accounts can be removed.
Discuss AI agent action-control design with a masked write operation, the roles entitled to request it and the conditions that must hold at execution. The practical result is an enforceable action contract that distinguishes a plausible proposal from an authorised, confirmed business effect.
FAQ
Your questions, answered.
Can an agent reuse a previous approval after an order changes?
Only if the documented policy explicitly preserves its validity for the changed conditions. Bind approval to the proposed operation, resource and material parameters. A changed order revision, dispatch state or destination can require fresh review. Existing credentials do not extend that approval. The execution path must enforce current authority and the required state, rather than treating a historical approval as permanent permission.
How do we prevent an agent from changing a payload after approval?
Bind the approval to a stable proposal and verifiable material parameters, including the resource and relevant revision. Recheck that binding at execution. If a consequential field changes, invalidate or re-evaluate the decision under policy. The reviewer must see the action actually being authorised, not a harmless summary detached from the write.
Why must an agent recheck business state before a write?
The resource can change between reading, approval and execution. An order may be dispatched or edited by another operator. Check the expected revision and relevant conditions at the action boundary, using an atomic destination mechanism where supported. Stop stale proposals rather than overwriting newer work or assuming the earlier approval still applies.
Can a service account safely represent all agent users?
Only if the architecture still enforces each requester’s permitted scope through trusted context or a reliable intermediary. A successful shared-account call does not establish the original user’s authority. Restrict credentials, preserve attribution and prevent untrusted content from supplying identity or role claims that the executor treats as authoritative.
Can queued agent writes continue during a policy-service outage?
Use the explicitly designed failure behaviour for that action, such as blocking or deferring a consequential write or invoking a tightly authorised alternative path. Do not silently convert unavailable policy into permission. Record the condition and verify that denied or deferred requests did not nevertheless create an external effect.
Does an action allow decision prove the business update succeeded?
No. It establishes permission under the conditions evaluated. Execution can still fail, time out or affect an unexpected state. Keep proposal, approval, attempt and destination confirmation separate, and verify the material result. Repeated attempts also need the destination’s idempotency and current-authority rules.