Skip to main content

Governed Autonomy: Security Beyond Permission


AI agents can now retrieve data, call tools, and take actions on behalf of users. That creates a new security problem: an agent may have permission to perform an action, but that does not mean it should perform that action in the current context.

Least privilege — giving an identity only the permissions it needs — has been the load-bearing principle of access control for decades. It remains necessary. But least privilege constrains the set of actions available to an identity. It says much less about whether one permitted action is appropriate for the task unfolding right now.

Agents make that distinction important. Their exact sequence of actions is often unknown when authority is granted; it emerges at runtime.

Governed autonomy

Governed autonomy is the principle that an agent should have the freedom to act, but only within bounds that make its actions safe.

The goal is not to minimize autonomy. Autonomy is what makes an agent useful. The goal is to make it safe to grant — visible, detectable, and controllable — so we can confidently give agents more responsibility, not less.

Least privilege asks, “What can this identity do?” Governed autonomy asks, “What should this identity be allowed to attempt, on whose behalf, and in the current context?” It also asks how the system should respond when an action falls outside those bounds.

Consider an inbox agent instructed to read email, draft replies, and wait for confirmation before sending. Least privilege can determine whether the agent is authorized to call the email APIs on the user’s behalf. It cannot determine whether this particular message should be sent now.

Governed autonomy evaluates the specific attempt against the current task and interaction history. An over-eager send is blocked. A prompt injection hidden in an email cannot silently trigger a send. A legitimate reply proceeds only after the required confirmation.

The credential does not shrink. The room the agent has to move inside it does.

What this means to build

Governed autonomy requires control points inside the agent loop that can inspect what the agent is about to do before an action crosses a trust boundary — at input, tool call, and output.

That control layer needs three properties:

Visibility. Every proposed action is recorded with the user, agent, task, decision, and reason. An operator should be able to reconstruct what the agent attempted and why the system allowed or blocked it.

Detection. The system recognizes when behavior departs from the task: an unexpected tool call, an attempt to move sensitive data, a prompt injection, or a sequence of individually permitted actions that becomes unsafe when combined.

Control. The system can intervene before execution. It can allow the action, block it, narrow its scope, require confirmation, or hand it to a human or stricter policy path.

The underlying controls are not new. We already know how to preserve who initiated a request, require confirmation for sensitive actions, enforce policy, and produce an audit trail. What is new is applying those controls to software that decides its next action at runtime.

The problem becomes harder in distributed systems. A policy decision at the agent boundary means little if its context disappears at the next hop. The task, identity, delegated authority, and controls already applied must travel across every service boundary while remaining trustworthy.

That is when governed autonomy stops being only a model-safety problem and becomes a distributed-systems problem.

Where this is going

Least privilege stays. Governed autonomy composes with it.

The scope of authorization expands from “What can this identity do?” to “What should this actor be permitted to attempt, on whose behalf, for which task, and with what visibility?”

The direction is not toward less capable agents. It is toward autonomy we can trust because it is governed.

Comments & reactions

← All writing