Direct answer: permissions must sit outside the model

An effective agent permission architecture assigns each AI agent a separate, limited identity and controls its data, tools, network access, and spending through systems that remain enforceable even if the model behaves incorrectly. The central design rule is simple: prompts may guide behavior, but policies must decide access. Permissions should be enforced by identity and access management, operating-system controls, API authorization, approval services, and audit systems—not by instructions placed in a system prompt. As of September 25, 2026, most teams still have more agent prototypes than production permission designs, yet the issue is already familiar from ordinary software security. The added difficulty is that an agent can interpret instructions, choose tools, and generate new action sequences without a developer prewriting every branch.

Also worth reading: How Can Modern Organizations Build a Resilient Enterprise Agentic Knowledge Architecture? · What is enterprise AI control plane architecture and how do engineering teams implement it? · What is the definitive enterprise AI data architecture strategy for scaling operations in 2026?

A useful architecture therefore has at least four boundaries: the agent identity, the permission policy, the execution environment, and an independent approval path. Authentication establishes who is acting; authorization decides whether that identity may perform a specific operation; the runtime constrains what the process can reach; and audit records what happened. None of these should rely on the model grading its own request. The model may propose an action such as reading a customer record or sending an email, but an external policy engine should approve, deny, or narrow it. This approach treats the AI component as an untrusted planner operating inside a controlled service boundary.

Why traditional application permissions are not enough

Conventional applications usually follow predefined code paths, while agents can compose tools in novel orders after interpreting natural-language requests. A user might ask an assistant to “prepare and file the quarterly report,” and the agent could read a folder, call a reporting API, create a document, and invoke an email service. Each operation may be legitimate, but their combination can exceed the user’s intended scope. A static role that permits document reading, file creation, and email sending gives the agent three capabilities without proving that the requested report should receive all three. Agent permissions must account for purpose, destination, data classification, and cumulative effect rather than checking only an individual API call.

The research context points in this direction. The 2026 Anthropic engineering account of an initialiser agent, AWS’s discussion of graduated autonomy, Meta’s kernel-level sentinel work, and enterprise reporting on agent identity all emphasize constrained execution and decision points outside the model. Sandboxing is an old security idea with a new application: OpenAI’s Codex used Windows-native controls such as restricted tokens and file-system access-control lists, while Apple’s work associated with agent operation added scoped permissions, approval tiers, and monitoring. These examples do not establish one universal standard. They show that the enforcement layer is becoming as important as the agent framework, because framework code alone cannot guarantee that generated actions remain acceptable.

The correct unit of control is often not the agent as a whole, but one tool call or one resource within a session. Consider an agent allowed to read support tickets but not export them. That restriction is easy to express if the agent receives a narrow ticket-search tool instead of direct database access. Another agent may access customer records but must not contact the customer directly, so email and messaging credentials should be absent from its execution context. A third may draft replies but require approval before sending. Designing around these separations reduces blast radius and makes permission reviews understandable to security, legal, and business owners who do not work with models.

The core control layers

FeaturePrompt-only controlsExternal policy enforcement
Primary purposeGuides intended behaviorDecides and enforces allowed actions
Enforcement locationInside the model’s instructionsIAM, API gateway, OS, sandbox, or policy service
Failure modeModel may ignore or misinterpret textPolicy denies or requires approval deterministically
AuditabilityConversation transcript onlyStructured decision logs with identity, action, and result
Revocation speedOften requires changing prompts or redeployingCan revoke tokens or role bindings within minutes
Good fitStyle, tone, task sequencingData access, spending, external communication, destructive actions
Identity should be issued to the workload, not merely to the human who started a conversation. That identity should be non-human, short-lived where possible, and associated with a documented owner. Policies can then refer to the agent, the user acting through it, the task, the tool, the resource, and environmental conditions. Authentication answers who the caller is, while authorization answers whether this particular combination is acceptable. If the human departs, the enterprise disables the account, or a project ends, the agent credential can be revoked without searching for every prompt that mentioned the agent.

Tool contracts should provide an equally strong boundary. Expose a narrow operation such as “create draft” rather than a general HTTP request client with embedded credentials. Label whether each tool reads data, changes internal state, spends money, communicates externally, or creates persistent artifacts. A policy engine can map those labels to controls: reads may be filtered by classification, internal changes may be logged, financial operations may require approval, and outbound communication may default to drafts only. The runtime should also remove ambient authority. An agent that needs a document service should not automatically inherit the developer’s cloud keys, source-control access, local home directory, or unrestricted shell. Least privilege is less memorable when the allowed list includes a general-purpose network client.

Graduated autonomy and approval thresholds

Not every action deserves the same amount of review. A practical system uses tiers: observe, prepare, execute, and administer. An observe tier can search approved knowledge sources and produce a summary without persistent writes. A prepare tier can create a draft, compute a proposed change, or stage a file in a sandbox. An execute tier can apply low-risk changes or send preapproved communications. An administration tier covers credential changes, policy changes, bulk deletion, payments, and access grants. These names are organizational conventions, not standards, but the principle is consistent with AWS’s graduated-autonomy framing. Autonomy should be earned as evidence accumulates rather than granted merely because a demonstration worked.

Thresholds should be measurable. A new agent might receive 0% autonomous write access, followed by 25% of low-risk actions after two weeks of clean operation, and no more than 80% until false approvals stay below 1% over at least 1,000 reviewed actions. A finance agent might permit reads below $10,000 but require dual approval for $10,000–$100,000, with automatic denial above $100,000. Such numbers are starting points, not universal safe limits; a mature organization should calibrate them to the cost of error, reversibility, and regulatory exposure. Percentage coverage alone is weak if the remaining 20% contains the most dangerous operations.

Approval requests should show the actor, intended action, target, affected data, expected cost, and a concise preview. “Can I update the record?” forces the approver to guess. “Replace the pricing field in Product 1842 with $129, changing one field; no customer messages will be sent” gives the reviewer enough context to make a decision. Approvals should be bound to an exact action digest so an agent cannot ask a person to approve a harmless file and then substitute a different file afterward. Time-limited authorization is another useful constraint. A five-minute approval token for one export is safer than a general capability that remains valid for a month.

Identity, context, and data access

Agent identity is a composite decision, not just a service-account question. The policy layer may need to know the human principal, the agent, the delegated task, the source system, the device, the data classification, and the session’s current state. Uber and Auth0 reporting described in the supplied research context reflects the difficulty of this problem in enterprises where agents act across several domains. A single role cannot always express conditions such as “this support agent may read an account when an assigned case is open, but may not export billing history.” Attribute-based access control can express those relationships, while relationship-based controls can help when ownership or case assignment changes.

Context tokens should be narrow and auditable. A complete production design may not need a 1.3-million-line operating system, as suggested by the “personal AI kernel” project in the supplied Hacker News context. It does need credential isolation, scoped resources, controlled tools, and revocable authority. Passing an entire customer history into the prompt is not equivalent to granting a query scoped to the assigned case; the former can be retained, copied, or misused by the model, while the latter can be logged and filtered. Data minimization is therefore both a privacy measure and a permission technique.

Long-lived credentials are a frequent weak point. Use short-lived workload credentials, rotate secrets automatically, and keep high-authority credentials in a separate service that agents cannot invoke directly. A policy decision can request a temporary token for a single operation, avoiding a reusable key stored in the model’s context or tool configuration. The token broker should also enforce a maximum number of calls, a dollar ceiling, and a deadline. This makes cost and data-access limits enforceable rather than advisory. Where agents operate through MCP servers, treat each server and exposed tool as a separate security boundary, and verify that advertised tool behavior matches its actual authorization behavior.

Practical implementation sequence

Begin by inventorying agents, tools, data sources, owners, and sensitive actions. Most organizations underestimate the number of paths: a browser, local scripts, scheduled jobs, cloud APIs, messaging platforms, and custom MCP servers may all provide access. Classify each action by reversibility, external reach, confidentiality, and financial impact. The highest-risk path—bulk deletion, privileged credential use, external publication, or payments—should receive the first controls. A pilot that only protects one chatbot while leaving an unrestricted scripting tool available has not built an enterprise architecture.

Next, create non-human identities and remove shared credentials. Connect them to existing identity governance, group ownership, and offboarding processes. Define default-deny policies for data export, new destinations, privilege changes, and spending. Put each agent in a restricted runtime with a read-only base image, temporary storage, controlled network routes, and no access to the developer’s personal files. Then expose purpose-built tools whose server-side authorization checks the current user and task. Tool documentation is useful, but the server must enforce the rule even if a client asks for something different.

Add an external policy and approval service before allowing production writes. Start in shadow mode: calculate decisions without granting access, compare them with human outcomes, and record near misses. Over roughly 30 days, review every denied, overridden, and unusual action, even if the expected volume is only a few hundred events. Expand autonomy one action class at a time, with a rollback path and an emergency credential revocation procedure. Test prompt injection, indirect instructions in retrieved documents, tool-name substitution, retry storms, compromised sessions, and attempts to move data through unapproved channels. A 20% lower injection success rate is not a pass if the agent still has unrestricted network access.

Comparisons and alternative control models

Policy-as-code, identity-based controls, sandboxing, and human review solve related but different problems. Policy-as-code is portable and reviewable, yet cannot stop a process from reading a local file unless the runtime also removes that access. Identity-based controls provide attribution and revocation, yet a correctly identified agent can still perform an overly broad action. Sandboxing limits system reach, but it may not decide whether a draft message should be sent without a business policy. Human approval handles exceptions, but it becomes slow and inconsistent when requests are frequent or vague. Strong systems combine these methods rather than selecting one universal product category.

Agent frameworks organize loops, state, and tool calling, but their authorization quality depends on the deployment environment. MCP can standardize connections between models and external tools, but a connected tool is not automatically safe. A general-purpose coding agent inside a container may be appropriate for developer workstations, while an enterprise data agent may need managed identity, row-level controls, and destination restrictions. Managed cloud agents can reduce operational work, but they may also lock policy behavior to vendor-specific features. Open-source policy tools can offer control and customization, but someone must own upgrades, tests, and incident response. No option removes the need for a named owner and a maintained threat model.

Costs vary more than the control list suggests. Open-source policy engines and sandbox runtimes may have no license fee, while container, database, network, and logging services are metered. Enterprise identity products, API gateways, security platforms, and observability tools commonly fall into low-thousands to six-figure annual categories, although a September 2026 quote would require current vendor pricing. Agent labor and human approval are also real costs: a workflow that sends 500 approval requests a day can be expensive even if every API call is inexpensive. Measure total cost per completed, accepted task rather than token price alone. Higher review expense may still be rational for a high-value contract, while a read-only internal search agent may not need the same investment.

Common mistakes and when to act now

The most common mistake is treating a system prompt as an access-control system. Another is attaching the agent to a human’s broad credentials because rebuilding identity integration takes longer. Teams also confuse a tool’s visible schema with its true authority, allow an agent to request a second network path after the first is denied, or test permissions only against direct user requests rather than instructions embedded in retrieved content. Additional errors include setting token budgets but no spending ceilings, logging prompts without recording authorization decisions, and granting autonomy based on average success while ignoring rare catastrophic failures. Governance that exists only in a policy PDF is not operating control.

Act immediately when an agent can write to production, access regulated or customer data, send external messages, execute code, manage money, or create credentials for other systems. These are action-capable systems, and a mistake can leave the organization through an API rather than merely produce bad text. A useful first deadline is 30 days for a full inventory, 60 days for non-human identities and default-deny controls on high-risk paths, and 90 days for sandboxing, approval tiers, audit retention, and incident exercises. Exact timelines should be shortened if the agent already has production access. Teams that only summarize public documents can start with narrower controls, but should establish ownership and logging before adding write access.

The decision threshold should be risk-based rather than fashion-based. If one mistaken action can be reversed in seconds and touches no sensitive data, a 5%–10% sampled review may be adequate. If an action is external, costly to reverse, or difficult to detect, require deterministic policy checks and human approval until production evidence supports a change. By September 2026, agent permission architecture should no longer be an optional appendix to an AI pilot. It is the part that determines whether the pilot can safely become a service, and a small, boring enforcement layer is usually more valuable than a large model claiming it will “be careful.”