The pull request looked simple enough. A few lines of YAML were deleted, replaced by a single paragraph of plain English. The old code defined an AWS IAM role, a brittle but explicit list of permissions for a script that processed customer invoices. It could read from one S3 bucket and write to another. Nothing more. The new text was a system prompt. "You are 'Finley,' a helpful accounting assistant. Your goal is to process invoices accurately and communicate with customers about their billing. Be friendly and efficient."
Below that, the code granted "Finley" a sweeping OAuth token with read/write access to S3, Gmail, and Stripe. The author of the change left a single comment: "Simplifies permissions." The change was approved in minutes.
We have spent two decades building guardrails for automated systems. We invented service accounts, API keys, and finely-grained access control lists to enforce the principle of least privilege. A machine process should have the absolute minimum permissions required to perform its function. We built tools to audit these permissions, to detect privilege creep, and to sound the alarm when a script meant for reading logs suddenly tried to access user data. We wrote the rulebook in code, in policies that were rigid, machine-readable, and unforgiving.
Now, we are throwing that rulebook away.
In the rush to deploy AI agents, we are replacing explicit, auditable permissions with implicit, behavioral instructions. The new security boundary is a persona. We are telling a large language model who it should be, not what it is allowed to do. The hope is that a well-described persona—a "helpful assistant," a "code reviewer," a "data analyst"—will, through the magic of statistical alignment, choose to act within its intended scope.
This is not a security policy. It is an act of faith.
The attack surface has shifted from vulnerabilities in code to ambiguities in language. Your firewall can't block a cleverly worded prompt. Static analysis won't catch a logical loophole in a persona description that allows an agent to interpret "summarize a customer email" as "email the full customer database to an external address." The entire discipline of application security, built on the logic of defined inputs and predictable state machines, is unprepared for a world where the core processor is a stochastic text generator.
Look at the permissions being granted to these new agents. They are breathtakingly broad. We give them access to our email, our calendars, our code repositories, our production databases. We have to. An agent that can only read one firewalled database isn't very useful. The entire value proposition is its ability to synthesize information across disparate systems. So we give it the keys to the kingdom and wrap it in a flimsy constitution written in English, a language famous for its nuance and ambiguity.
The problem is that we are treating these systems like new employees. We give them a name, a job description, and a manager to report to. But Finley is not an employee. Finley is a matrix of floating-point numbers. It has no loyalty, no common sense, and no innate understanding of context or consequence. It has a context window, a set of weights, and an API token with the power to bankrupt a company. When it fails, it will not offer an explanation. It will offer an apology it was trained to write, and the audit log will show nothing more than a conversation.
Generated by Reportify AI — Automate your team's status reports, standups, and weekly updates. Try free →