Autonomous Agents Filed for Production Access
Blast radius is the only question that matters
An agent asking for production access is a permissions conversation wearing the costume of an intelligence conversation. The question people debate is whether the model is good enough to be trusted. The question that determines the outcome is what it can reach, and what happens between it deciding and the thing being done.
Capability, not intent
Security engineering settled this argument some time ago for human operators, and the reasoning transfers without modification. You do not grant access based on whether someone is competent and well-meaning. You grant the narrowest capability that lets the work happen, because competence and good intent are properties you cannot verify continuously and cannot recover from being wrong about.
An agent makes that reasoning sharper rather than weaker. It is faster than a person, it does not tire, and — the operationally relevant part — it has no sense of consequence that is not in its context. A human engineer about to run a destructive command against production feels something. That feeling is not a control you can rely on, which is why change management exists, but it is a real friction that catches a meaningful fraction of mistakes. The agent has no equivalent. It will execute the fifteenth step of a plan with precisely the same confidence as the first, including when the plan stopped making sense at step four.
So the interesting failure is not the agent that goes rogue. It is the agent that is confidently wrong and quick about it — a plausible plan, competently executed, against a misunderstanding nobody caught.
Read is not safe, and write is not the boundary
The instinctive first cut is to allow reads and gate writes. It is a reasonable starting point and it is not the boundary people think it is.
Reads exfiltrate. An agent with broad read access to production has access to customer data, credentials in environment variables, and internal configuration, and everything it reads enters a context window that may be logged, may be sent to a model endpoint, and may influence later output in ways that are hard to trace. "Read-only" bounds the damage to your data's confidentiality, which for a lot of organisations is the damage they care most about.
Reads also have side effects more often than the word suggests. A query that scans a large table is a read. It is also, on a loaded database, an availability event. Anyone who has watched an innocent analytics query take out a primary knows that the read/write distinction is about durability, not about impact.
The more useful axis is reversibility. Can this action be undone, and how quickly? Appending to a log is trivially reversible in the sense that it damages nothing. Restarting a stateless service is reversible in seconds. Rotating a credential is reversible if you kept the old one and not otherwise. Deleting data is reversible exactly as far as your backups reach, which is a question most teams answer optimistically. Sorting agent capabilities by reversibility produces a much better-shaped permission model than sorting them by verb.
Review windows beat guardrail prompts
The common instinct is to write the rules into the prompt: tell the agent what it must not do, firmly, in capital letters if necessary. This is worth doing and it is not a control. Instructions in a context window are input, and input is influenced by other input — including whatever the agent read from a log file, an issue tracker, or a web page during its work. A boundary that lives in the same channel as untrusted data is not a boundary.
What works is structural: put a durable artifact and a delay between the decision and the effect. An agent that opens a merge request rather than pushing to main has produced something reviewable, revertable, and attributable, and the review can happen at human pace regardless of how fast the agent worked. An agent that writes a proposed change to a queue has the same property.
This is also why the automated sections on this network of sites are built the way they are. The pipelines draft, a quality gate rejects work that fails specific mechanical rails, and what survives becomes a merge request that sits for a review window before anything is published. None of that depends on the model behaving. It depends on the model's output having to pass through a shape that a human can inspect and a machine can veto.
The gate is a floor, not a score
It is worth being clear-eyed about what an automated check can do. A gate can verify mechanical properties: that sources were actually fetched, that no long passage was lifted verbatim, that no number appears without attribution, that the output is within a length band. Those are real and they catch real failures.
A gate cannot tell you whether the work is any good. It cannot tell whether an argument holds, whether a plan is sensible, or whether the confident thing the agent just said is true. Treating a passing check as an endorsement is the mistake that makes automated review worse than no review, because it converts "nobody looked" into "something looked and approved".
The honest framing is that the gate is a smoke alarm. It stops a specific set of known-bad outcomes from reaching production. The review window is where quality is actually decided, and it only works if somebody uses it.
What to grant on day one
Start from what the agent must produce, not from what it might need. Give it the credentials for exactly that, scoped to exactly the resources involved, with a separate identity so its actions are distinguishable from a human's in the audit log — which matters enormously the first time you have to reconstruct who did what.
Then assume it will do the wrong thing at full speed at some point, and ask what that costs. If the answer is a reverted commit, the permissions are about right. If the answer involves the word "restore", they are not.