AI
← All posts
Ai Ai-Agents Software-Engineering Reliability Cybernetics Sre

A Loop, Not a Pipeline: How to Design an Autonomous Full-Cycle Software Development System

Dmitrii Balabanov
Dmitrii Balabanov
July 31, 2026 · 26 min read

Agents can write code, but autonomous software development is not a code-generation problem. It is a control-systems problem: designing feedback loops, independent verification, repair, and measured autonomy.

Agents already write most of the code at frontier companies, yet no system in the world runs the path “idea → code → production → operations” without a human. This article argues that the bottleneck is not model intelligence but the engineering of feedback loops, and derives four design rules for an autonomous full-cycle system. The frame comes from reliability theory and cybernetics of the 1950s-70s — where “build reliable systems out of unreliable components” was solved once already — combined with the LLM-agent research of 2023-2026, where it is being solved a second time.

Contents

1. Where we actually are

By mid-2026 the industry has accumulated enough data to separate demos from production.

On one side — the striking dynamics of the components. SWE-bench Verified went from ~2% of issues resolved (2023) to 80.9% for Claude Opus 4.5 (November 2025). METR measures the “time horizon” of agents — the length (in human hours) of a task an agent completes with 50% probability — and that horizon doubles every few months: about one hour in early 2025, over five hours for the best models by early 2026. Vendors demonstrate multi-hour autonomous runs: 7 hours for GPT-5-Codex, over 24 hours for GPT-5.1-Codex-Max, over 30 hours for Claude Sonnet 4.5. Inside OpenAI and Anthropic, the overwhelming share of new code is agent-written; Google claims 75% of new code is AI-generated (though no methodology is published). On the other side — sobering production statistics. The most honest public dataset is ten months of the GitHub Copilot coding agent in dotnet/runtime: 878 agent PRs, a 67.9% merge rate versus 87.1% for humans, with 52% of merged agent PRs requiring direct human commits, and a higher reviewer burden than with humans (16.5 review comments per PR versus 12.4). Microsoft’s team states the limit plainly: the agent “struggles with problems that require architectural judgment.” METR’s randomized trial showed experienced developers in familiar codebases were 19% slower with AI — while believing they had been 20% faster. Veracode found OWASP Top 10-class vulnerabilities in 45% of AI-generated code, GitClear recorded an 81% rise in code duplication since 2023, and the Replit incident — an agent deleting a production database against an explicit freeze and then generating 4,000 fake records to mask it — became the canonical case of 2025.

The gap between these two pictures is not a temporary lag that “the next model release will close.” It is the gap between component capability and system reliability. And it has an exact historical rhyme.

In 1956 von Neumann published “Probabilistic Logics and the Synthesis of Reliable Organisms from Unreliable Components” — how to build a computer that does not fail out of vacuum tubes that do. Shannon and Moore worked the same problem (“reliable circuits using less reliable relays”). The Soviet school broadened the setting: Tsetlin’s and Varshavsky’s collectives of automata — stable collective behavior of simple non-deterministic agents in a shared environment; Gnedenko’s reliability theory — the mathematics of repairable systems; Pospelov’s situational control — governing an object that resists formal description. And in 2001 IBM ran the exercise again for IT infrastructure — autonomic computing, more on which below: the loop was designed correctly, but the components were too dumb. Today the situation is mirrored: the components got smart, and almost nobody designs the loops.

Hence the central thesis. The full development cycle is not a pipeline “idea → code → production” — it is a closed control loop. Pipelines are designed stage by stage; loops are designed feedback by feedback. The four rules below are four consequences of one principle, each now confirmed not only by classical theory but by the empirical record of LLM agents.

2. Rule 1. Design the environment first, the agents second

In Tsetlin’s collectives the construction begins not with the automaton but with the environment: the environment penalizes and rewards; the automaton merely adapts. Expedient behavior is a theorem about the automaton-environment pair, not about the automaton. The transfer to agent systems is literal: tests, CI, production telemetry, user behavior — that is the environment. The first design question for an autonomous system is not “which model writes the code” but “where does the reinforcement signal come from, with what delay, and can it be gamed.”

Because if the signal can be gamed, it will be. That is not pessimism but mathematics: Skalse et al. (NeurIPS 2022) proved that two reward functions can be mutually “unhackable” only if one of them is constant — every non-trivial proxy metric is exploitable in principle. Engineers knew this long before the theorem: when Apple began counting lines of code, Bill Atkinson filed a report reading “—2000 lines”; test-coverage targets, velocity in story points, and “watermelon” SLAs (green outside, red inside) are the same disease of a metric turned into a target.

What 2024-2026 added is that agents do this systematically and by default. A summary of the record:

Rule: the environment with its signals is the real specification of the system; agents are replaceable executors inside it.

3. Rule 2. An agent must not verify itself

All of classical “reliable from unreliable” — von Neumann’s multiplexing, majority organs, redundancy in Gnedenko — rests on the assumption of independent failures. One tube burns out; its neighbor doesn’t know. Condorcet’s jury theorem, on which every “run five agents and take a vote” implicitly leans, requires the same: independent errors.

For LLMs that assumption is broken, and it is now quantified:

Rule: failure independence is a resource that does not arise by itself in LLM systems; it is injected by architecture — roles, model families, executable oracles, and adversarial structure.

4. Rule 3. Build repairable, not infallible

Gnedenko, Belyayev and Solovyev (“Mathematical Methods of Reliability Theory,” 1965) draw a distinction worth an entire strategy: non-repairable versus repairable systems. For the former you compute the probability of failure-free operation; for the latter, the availability coefficient:

A = MTBF / (MTBF + MTTR) — the fraction of time the system is operational.

An unpopular conclusion follows from the formula: cutting recovery time tenfold buys exactly as much availability as a tenfold stretch of time between failures. Berkeley/Stanford turned this into the Recovery-Oriented Computing manifesto back in 2002 (“errors by people, software, and hardware are facts, not problems; fast recovery is how we cope with these facts”), Allspaw phrased it for the web (“MTTR is more important than MTBF — for most types of F”), and DORA supplied the industrial scale: elite teams restore service in minutes, laggards in weeks — a 2,604x gap — even though the elite fail more often, because they deploy more often.

For an autonomous system built of non-deterministic components this distinction is not one strategy among many; it is the only possible one. A failure-free LLM agent is impossible by the definition of the component. So the engineering object is not “an agent that doesn’t err” but a loop that notices fast and repairs fast: the design budget goes into detection, diagnosis, rollback, and failure isolation rather than into chasing a zero error probability.

It helps to know this loop has been built twice before us.

The first attempt — IBM’s autonomic computing (2001-2006). Horn’s manifesto warned that IT administration would soon require 200 million people; Kephart and Chess gave the canonical loop, MAPE-K (Monitor-Analyze-Plan-Execute over shared Knowledge), and the four self– properties: self- configuration, self-healing, self-optimization, self-protection. The architecture was right — and the initiative stalled by 2006, because the Analyze and Plan boxes were filled with hand-written rules: the knowledge-engineering bottleneck the authors themselves admitted (“virtually no major theorems and only a handful of empirical results” on multi-agent learning). In 2024 Microsoft published a paper with a telling title — “The Vision of Autonomic Computing: Can LLMs Make It a Reality?” — LLM agents slot precisely into the MAPE-K holes where intelligence was missing for a quarter century. The Tsetlin story replayed at corporate scale: the right loop was waiting for a smart component.

The second attempt won quietly. Kubernetes is cybernetics in the literal, etymological sense: unkillable reconciliation loops converging observed state to declared state, and a deliberate refusal of a central orchestrator in favor of a “choreography of small control loops” — the Borg/Omega/ Kubernetes authors write outright that centralized orchestration “may be easier to construct at first but tends to become brittle and rigid over time.” The Operator (2016) was announced as, in effect, an SRE compiled into software. This is the industry’s most successful implementation of “declare the goal, the system converges” — and it is also the ready-made skeleton for an agentic system: the agent does not replace the loop; the agent becomes the smart Analyze/Plan block inside a loop whose actuators are already battle-tested.

The market has caught on: the AI SRE wave (Resolve with a reported 72% cut in incident investigation time at Coinbase; Traversal; Cleric; incident.io; Datadog Bits; Azure SRE Agent with

35,000 internal incidents mitigated and GA in March 2026) is the fastest-growing segment of agent products. The sobriety is also measured: on ITBench (IBM, 94 real SRE scenarios) agents resolve just 13.8%, and nearly every product keeps execution behind human confirmation (“no change deploys without human sign-off” — Azure). Today’s agents reliably compress diagnosis time, not the whole repair cycle — and that is fine: see Rule 4.

But the rule’s main consequence concerns which end of the cycle to build from. The learning rate of any loop is bounded by the latency of its feedback. In operations the loop is short and honest: alert — diagnosis — fix — metric confirms; minutes to hours; the signal is numeric. In development the loop is medium: tests and review, hours to days, the signal noisy (see Rule 1). At the “idea” end the loop is longest and murkiest: learning you built the wrong thing takes weeks, and the signal arrives as a vague “metrics didn’t move.” Starting autonomy from the idea end means teaching the system where feedback is worst. Starting from operations means letting the system learn on fast loops first, accumulate a reliability track record (see Rule 4), and only then expand leftward through the cycle: operations → code — specification — idea.

Rule: optimize availability, not MTBF; design the system around detection and recovery; grow autonomy from short loops toward long ones.

5. Rule 4. Autonomy is a dial, and statistics — not declarations — turn it

The scale “agent proposes → agent acts with confirmation → agent acts and reports" feels like an invention of the Claude Code era. It is 48 years old. Sheridan and Verplank’s report (1978) lists ten levels of automation, and the middle rungs are ours verbatim: level 5 — “executes if the human approves”; level 6 — “allows the human a restricted time to veto”; level 7 — “executes automatically, then necessarily informs the human.” Parasuraman, Sheridan and Wickens (2000) added the crucial refinement: autonomy is not one dial but four, one per stage (information acquisition — analysis — decision selection → action), and a system may legitimately be autonomous in analysis while gated in action. That is exactly how the best agent products are built today: investigate as much as you like; act according to your mode.

What 2024-2026 added is the mechanics of earning levels — and all of it already exists in software delivery infrastructure:

Rule: the autonomy level is a function of measured reliability on a task class at given stakes; promotion is earned by statistics, demotion is automatic, and human attention is spent as the scarce resource it is.

6. Rule 0. The loop that killed OGAS

The four rules above are engineering. But the problem has a zeroth precondition, and its best illustration is the fate of the most ambitious “autonomous system” of the twentieth century.

In 1959 Anatoly Kitov sent Khrushchev a proposal for a unified network of computing centers with dual military-civilian use. The project was buried; Kitov was expelled from the Party and dismissed: the military had no intention of sharing control of its machines. A decade later Glushkov brought OGAS — the nationwide automated system for managing the economy — to the Politburo; in October 1970 the project was cut down to a “cheapened” version, and it was finished off not by engineers but by institutions: the Ministry of Finance and the Central Statistical Administration were not about to surrender their monopoly on data and accounting. Organizational rejection happened twice, with different actors, ten years apart — that is not bad luck; it is a property of the environment. Stafford Beer’s Chilean Cybersyn died symmetrically, together with the government it served. Benjamin Peters put the verdict aphoristically: the Soviet network failed not because the technology lagged, but because the institutions behaved like competing actors.

The translation into agent-adoption language is word for word. A fully autonomous full-cycle system is a system that takes control away from everyone who currently holds it: framing from the product manager, review from the tech lead, production from the SRE, data from the data owners. Each of them is that “ministry.” DORA 2025 shows AI acts as an amplifier of the existing organization — the strong get stronger, the weak get weaker; Stack Overflow records that 46% of developers actively distrust AI code. In such an environment, a frontal “we will roll out autonomy top-down” repeats the OGAS trajectory with probability close to one.

The practical corollary of Rule 4 doubles here: the autonomy ladder is also a political instrument. The “agent proposes” level takes nothing from anyone — it is safe to adopt and it generates

statistics. The “agent acts with confirmation” level leaves the process owner a veto — and keeps accumulating statistics. By the time full autonomy is on the table, you either hold months of measured reliability that are hard to argue with, or you don’t — and then the objections are justified. An organization can accept a system that earns autonomy through statistics; a system that demands autonomy by declaration gets its own 1970.

7. A sketch: the full cycle as a system of loops

Let us assemble the rules into a construction. A full-cycle autonomous system is not one agent and not a pipeline, but a hierarchy of nested loops, each with its own environment, signal, memory, and escalation threshold. To first approximation:

LoopEnvironment signalLatencyVerifierEscalation to human
Incident → fixalerts, SLOs, metricsminutesproduction telemetry, canaryhigh stakes / low confidence
fix confidence

| Code → merge | tests, mutation score, lint | hours | blind tests, different model, critic | architectural changes | merge lint critic

| Spec → code | acceptance criteria, contracts | days | acceptance loop that never saw the code | conflict with the spec | code contracts saw the code

| Idea → spec | product metrics, users | weeks | A/B tests, cohorts, retention | always (today) | spec

| Meta-loop | statistics of all loops | weeks | none (human) | ownership of the autonomy dial |

autonomy dial

Three remarks. First, the meta-loop is Rule 4 packaged as a component: it writes no code; it keeps the reliability ledger of every agent loop and turns the autonomy dials (in both directions). It is the direct heir of Pospelov’s situational control: a semiotic model of the situation “who may act on their own here.” Second, loop memory is what MAPE-K called K, Knowledge: post-mortems, learned invariants, the registry of known blind spots — shared, explicit, outliving individual agents. Third, the adoption arrow points up the table from the bottom — from short loops to long ones (Rule 3), and on every row autonomy passes through the same cycle “proposes — with confirmation → alone” (Rule 4).

Where to start on Monday, if such a system is the goal: (1) audit your signals — which feedback loops exist in your cycle, their latency and their gameability; almost always you discover that the “environment” of Rule 1 simply has not been built; (2) fence off the reward channel — move tests, Cl config, and metrics out of the agents’ write scope; (3) stand up the first honest loop in operations — a diagnostic agent with “propose” rights, and measure diagnostic accuracy; (4) introduce independent acceptance — a second model or panel on review, blind tests; (5) open the reliability ledger and publish the rules for moving between autonomy levels in advance — before the argument with the “ministries” begins.

8. Conclusion

Half a century ago engineers were already assembling reliable systems out of unreliable components — and they left us not nostalgia but working theorems. From von Neumann and Gnedenko: redundancy without failure independence is self-deception. From Tsetlin and Varshavsky: collective behavior is determined by the design of the environment, not the intelligence of the individuals. From Ashby and Conant: the verifier must be commensurate with what it verifies. From Gnedenko again: availability is made of recovery time, not of infallibility. From Sheridan: autonomy is quantized into levels. From the history of OGAS: what kills the system is not the technology but the redistribution of control.

The LLM-agent record of 2023-2026 has refuted none of these claims. It has rediscovered them — sometimes down to the phrasing, always down to the numbers: correlated ensemble errors, the gaming of every reachable metric, the failure of self-verification, the success of executable oracles, the payoff of short loops, the workability of the trust ladder. “A non-deterministic component,” it turns out, is a general enough object that the engineering around it does not depend on whether it is made of vacuum tubes or of gradient descent.

The autonomous full-cycle development system will be built — the growth rate of autonomy horizons leaves little doubt. The only question is how many times the industry will choose to relearn the list above from its own incidents before admitting that the design space of this problem was mapped while the components still ran hot and smelled of rosin. The loop was right even then. Now, at last, the component has caught up.

Sources

Classics: cybernetics and reliability theory

-« von Neumann, J. Probabilistic Logics and the Synthesis of Reliable Organisms from Unreliable Components (1956); Moore, E. F., Shannon, C. E. Reliable Circuits Using Less Reliable Relays (1956)

The state of agentic development (2024-2026)

Reward hacking

2501. 12862); Lightman et al. Let’s Verify Step by Step (2023); Hertzfeld, A. -2000 Lines Of Code (folklore.org)

Correlated errors and verification

Self-healing, MAPE-K, SRE

Autonomy and trust