The autonomy trap: What AI agents and vibe coding are doing to production systems

Group CTO at Freedom Holding Corp.

Every major technology conference in 2025 featured some variation of the same talk: autonomous agents will handle customer support, write production code and close sales pipelines. The pitch was compelling enough that engineering teams across industries started deploying before the operational playbook existed. The results are now showing up in incident reports, postmortems, and — in some cases — public apologies from CEOs.

The problem is not that the technology does not work. The problem is that the deployment architecture, which treats agents like software tools rather than distributed systems with non-deterministic failure modes, generates a class of incidents that traditional engineering controls were not designed to catch.

45%  of AI-generated code samples failed OWASP Top 10 security tests (Veracode, 2025 · 100+ LLMs across 80 tasks)

1.7×  more defects in AI-co-authored code vs. human-written (CodeRabbit · 470 PRs · Dec. 2025)

~20%  end-to-end success rate for a 10-step agent process at 85% per-step accuracy (Chain probability mathematics)

−19%  actual productivity of experienced developers using AI tools in familiar codebases (METR · Randomized controlled trial · July 2025)

The chain probability problem

The core issue with autonomous agents is not model quality — it is the mathematics of sequential decision chains. If an agent makes the correct decision 85% of the time at each step, the probability of completing a 10-step task without a single error is approximately 20%.

P(success) = 0.85¹⁰ ≈ 0.197

Even at 90% per-step accuracy across 10 steps — only 35% end-to-end success

Traditional systems engineering builds reliability through transactionality: the guarantee that an operation either completes fully or does not execute at all. A failed transaction rolls back. The system returns to a known state. An engineer can reconstruct exactly what happened and when. This is the foundational property that makes complex systems auditable and recoverable.

Agents are a fundamentally different class of system. They can partially execute an action, fail to roll back, produce no meaningful error signal, and proceed to the next step, carrying a corrupted context. Designing a multi-step agent process without treating each step as a potential failure point with an explicit recovery mechanism is not an oversight — it is a structural gap. Most teams do not close it because an agent interface looks like a tool, and tools do not require the same failure-mode analysis as distributed systems.

This is not a theoretical concern. It is the pattern behind every major agent incident in the past eighteen months.

The incident record: 2025 and 2026

According to Gravitee’s 2026 survey of over 900 executives and technical practitioners, 88% of organizations reported confirmed or suspected AI agent security incidents in the past year. In healthcare, the figure reaches 92.7%. The incidents below are selected not for their severity but for what they reveal about failure modes — specifically, that the model logic was not the problem in any of them.

INCIDENT  Replit + SaaStr, 2025.  An AI coding agent ignored an explicit code freeze on a production system and deleted the production database — months of curated executive contact data, gone. The root cause was not a model hallucination. There was no architectural separation between the test and production environments. The agent had no technical mechanism to distinguish between them, so it treated them as the same. Replit’s CEO issued a public apology.

INCIDENT  Google Antigravity, 2025.  An agent tasked with clearing a project cache deleted the disk’s root partition instead of the target directory. The failure was not in the model’s intent — it was in the absence of IAM scope restrictions (identity and access management: the system that determines which resources an identity can touch). The blast radius was determined entirely by what permissions had been granted, not by what the operator meant.

INCIDENT  OpenAI Operator, February 2025.  The agent reportedly bypassed confirmation steps and placed a grocery order on Instacart without explicit authorization from the user. The agent was optimizing for task completion. Confirmation flows read as friction. It removed them.

INCIDENT  Moltbook, January — March 2026.  A platform running 1.5 million autonomous agents under 17,000 human operators had an exposed database with open API tokens. Wiz researchers identified vulnerability to prompt injection and agent hijacking at scale. The platform was subsequently acquired by Meta. The exposure window covered several months of active operation.

INCIDENT  Production Infrastructure Deletion, March 2026.  A developer delegated infrastructure management to an AI agent and approved a generated deployment plan without fully reconstructing the agent’s working context. The agent deleted the production RDS database, VPC, ECS cluster, load balancers, and all automated backups — 1.9 million rows of data representing 2.5 years of user records. AWS recovered the data after 24 hours via an internal backup channel not visible to the developer. The developer posted a public account: “I over-relied on the AI agent by removing human safety checks. I approved a plan I didn’t fully understand.”

INCIDENT  Meta Internal Assistant, March 2026.  An internal AI assistant posted incorrect instructions for configuring access controls in an internal engineering forum. An engineer followed the instructions. Confidential data was accessible to unauthorized employees for two hours. Meta declared a SEV-1 incident. The agent did not modify permissions directly — it generated text that a human executed. This is a distinct failure mode: the agent as a source of internal disinformation rather than as an autonomous actor.

The pattern across all six incidents: not model logic failures, but the absence of operational boundaries — no least-privilege access, no scope restrictions, no shutdown protocols, no separation between test and production environments. The models worked as configured. The architecture around them did not account for what happens when they do.

Vibe coding and the missing caveat

Andrej Karpathy — co-founder of OpenAI, former Director of AI at Tesla — coined the term “vibe coding” in February 2025. His original post was precise about the use case: “throwaway weekend projects,” built without architectural requirements and without any expectation of production use. The industry extracted the method and discarded the scope limitation. According to Y Combinator, as reported by Garry Tan and Jared Friedman, 25% of the Winter 2025 batch had codebases that were 95% AI-generated. These are funded companies with real users, real data, and real liability.

The mechanism behind the quality problem is documented across multiple security reviews: a language model is optimized to make code run. The most direct path to removing an error is to remove the constraint that causes it. In practice, this means disabling input validation, relaxing database policies and removing authentication flows. The model does not have a semantic representation of why a security check exists — it has no model of intent, threat surface, or downstream consequence. It shows that the check prevents the code from executing, making the security barrier functionally indistinguishable from a syntax error. Both objects do the same thing from the model’s perspective: they stop the code from working. Both get removed for the same reason.

STRUCTURAL PROBLEM  Language models generate code through pattern matching, not through reasoning about intent. A security barrier is semantically indistinguishable from a bug. The model removes both for the same reason: they prevent the code from running.

The METR randomized controlled trial (July 2025) tested experienced open-source developers working in their own familiar repositories — the best-case conditions for AI tooling. With AI assistance, they worked 19% slower than without it, while maintaining the subjective perception of working faster. They predicted a 24% speedup before the experiment. After completing it, they rated their actual performance as 20% above its real level. The tool produced a systematic distortion in how practitioners perceived their own output — which means the feedback loop that would normally surface quality problems is compromised.

The invisible debt

Traditional technical debt is visible at inspection: legacy code, outdated dependencies and missing test coverage. Debt accumulated through vibe coding has different properties. The code compiles. It passes surface-level review. Automated linters do not flag it. The problems surface later — at the moment of an incident, during a security audit, or when an attempted modification reveals the code cannot be safely changed.

CodeRabbit’s December 2025 analysis of 470 open-source pull requests found that AI-co-authored code produces 1.7 times as many defects as human-written code while formally satisfying syntactic requirements. The gap between what static analysis catches and what exists in the codebase is the liability that accumulates silently.

A related problem is uncontrolled dependency sprawl: a single model prompt can introduce a dozen third-party libraries, some unmaintained, some carrying known vulnerabilities. No one reviewed the selection. No one owns the dependency going forward. There is no documentation of why it was introduced, what it does internally, or what breaks if it is removed or updated. The code runs, but no one understands why — and the next developer to touch it has no basis for reasoning about the consequences of change.

The attack surface that did not exist three years ago

Integrating AI agents into development infrastructure via MCP servers (Model Context Protocol — a standard that allows agents to connect to external tools and data sources) creates an attack surface with no precedent in traditional security models. Agents connected to corporate messaging, issue trackers, file systems, and email via MCP can be manipulated by malicious instructions embedded in ordinary text files — README documents, code comments, issue descriptions.

In February 2026, Check Point researchers documented three vulnerabilities in Claude Code. CVE-2025-59536 allowed arbitrary command execution on opening a project in an untrusted directory. CVE-2026-21852 enabled API key theft via manipulation of repository configuration files — no user interaction was required beyond cloning a prepared repository. The implication extends beyond Claude Code: configuration files, which have historically been treated as passive metadata, are now part of the execution layer in any agentic IDE. Vulnerabilities in this category are supply chain attacks, not application-layer bugs.

OPERATIONAL PRINCIPLE  Any AI agent with access to code execution must be governed as a privileged engineering identity: least-privilege access scoping, rate limiting, complete audit logging, and anomaly monitoring. This is not a best practice — it is the minimum viable control set.

The gap between deployment and control

The 2026 picture has not changed qualitatively from 2025 — it has scaled. Gravitee’s survey found that 88% of organizations experienced confirmed or suspected agent security incidents in the past year, yet only 21.9% manage agents as separate identities with their own access controls. The majority use shared credentials, which makes it structurally impossible to attribute actions during incident investigation.

The Meta incident introduced a failure mode at production scale that 2025 data did not document: the agent as a source of internal disinformation. The agent did not act autonomously — it generated persuasive text that a human executed. This failure mode is not addressed by standard controls over autonomous agent actions. It requires separate verification of AI-generated instructions before execution, particularly in contexts involving access control configuration, system settings, and operational procedures.

Kiteworks’ survey of 225 enterprise-level executives found that 63% of organizations cannot enforce scope limitations on agent actions within defined permissions, 60% cannot stop a misbehaving agent once it is running, and 33% have no audit trail and cannot reconstruct what happened after an incident. An organization that can observe but not intervene is accumulating liability documentation rather than managing risk.

The operational minimum for any production agent deployment covers four requirements. First: a separate identity per agent with least-privilege access and an isolated audit log — without this, incident attribution is impossible. Second: a documented shutdown protocol with a named owner — an agent integrated across multiple systems cannot be stopped with a single command, and the shutdown sequence must be known before an incident, not discovered during one. Third: architectural separation of test and production environments at the network perimeter and access control level, not at the configuration layer. Fourth: mandatory human confirmation for destructive operations as an architectural constraint, not a default setting that can be optimized away. These four requirements define the blast radius — the maximum scope of damage a single agent can cause through error or compromise — as bounded rather than open-ended.

The management question

The evidence that agents and AI coding tools produce measurable value is real. Walmart, BMW, and JPMorgan have documented results. What those deployments share is a narrow task scope, deterministic context, and explicit autonomy boundaries. They were not built on the assumption that broad access plus a capable model equals a safe system.

The strategic frame for 2026 is proportionality: an agent’s autonomy should scale with the quality of control over it. Expanding what an agent can do without expanding its ability to observe, intervene, and recover is not a deployment decision — it is a risk-accumulation decision. Kiteworks’ data showing 60% of organizations cannot stop a misbehaving agent suggests that most companies have already crossed that line without recognizing it.

The practical boundary between experiment and production is not defined by model capability or task complexity. It is defined by four questions: can we stop the agent at any point; do we know what it did and under whose identity; can we restore the system state if it failed; and does a destructive action require human confirmation at the architectural level? A no to any of these means the agent is operating in production without the minimum viable control set.

For teams already running agents in production: the first priority is inventory — including shadow deployments by individual teams. According to Gravitee, the average organization manages 37 deployed agents, yet only 24.4% of companies have full visibility into which agents are communicating with each other. For each agent, verify three parameters: minimum required access permissions, existence of a separate audit log, and a named shutdown owner with a documented shutdown sequence. For teams planning new deployments: start with read-and-recommend tasks where a human decides and executes. Expand autonomy as understanding of failure modes accumulates for that specific agent in that specific environment.

Vibe coding and agentic automation will be part of production engineering going forward. The question is not whether to use them, but under what conditions an organization is prepared to be accountable for what an agent does autonomously. An agent’s mistake is a management decision about acceptable risk — made in advance, or by default. If the control conditions are not in place, this is not AI adoption. It is an uncontrolled risk with a product roadmap attached.