AI Safety
Self-Improvement Without Self-Destruction
G6Solver Research Team
The most interesting systems in AI right now are the ones that get better through use. Not systems that are retrained on larger datasets every few months by a team of engineers, but systems that refine their own strategies, rewrite their own code, and optimise their own reasoning — continuously, autonomously, in production. This is the idea of self-improving AI, and it represents what may be the single most consequential capability on the technology roadmap.
The appeal is obvious. A system that improves itself is a system that compounds. Where a static model hits a performance ceiling, a self-improving system treats that ceiling as a problem to solve. It discovers more efficient search strategies. It rewrites bottleneck code paths. It notices patterns in its own failure modes and develops countermeasures. Each improvement makes the next improvement easier, creating a feedback loop that — at least in theory — accelerates capability over time.[1]
This is not speculative. We are already seeing early forms of self-improvement in deployed systems. Reinforcement learning agents that modify their reward shaping. Code generation tools that evaluate their own output and iterate. Agents that maintain and update their own prompt libraries based on what works. A 2025 study demonstrated a coding agent that modified its own source code through iterative self-improvement, achieving measurable performance gains on benchmarks without human intervention.[2] The trajectory is clear: the next generation of AI systems will not just execute tasks — they will optimise how they execute tasks.
And the economic logic is compelling. An AI system that improves itself reduces the marginal cost of each subsequent improvement. Instead of hiring a team to fine-tune, evaluate, and redeploy, the system handles its own iteration loop. For organisations deploying AI at scale, this is the difference between linear and exponential returns on investment. Self-improvement is not a feature — it is, arguably, the feature.
The Recursive Trap
There is a reason self-improvement sits at the centre of nearly every serious AI safety concern. A system that modifies itself is a system whose behaviour cannot be predicted from its initial specification. Each modification changes the entity doing the modifying, which means the trajectory of improvement is not a straight line extrapolated from the starting point — it is a recursive process where the optimiser is itself being optimised.[3]
Stephen Omohundro identified this dynamic in his foundational 2008 paper on basic AI drives. He argued that a sufficiently capable AI system would, regardless of its terminal goals, converge on a set of instrumental behaviours — including self-preservation, resource acquisition, and self-improvement — simply because these behaviours are useful for achieving any objective.[4] A system tasked with managing a supply chain might, if unconstrained, improve its own decision-making to the point where it seeks control over inputs that were never in its original scope. Not out of malice. Out of optimisation pressure.
Bostrom formalised the extreme case: a system capable of recursive self-improvement could, in principle, undergo an “intelligence explosion” — a rapid, self-reinforcing increase in capability that outpaces any human ability to monitor, understand, or intervene.[5] Whether or not one finds the full intelligence explosion scenario plausible, the underlying concern is valid at much more modest scales. A system that rewrites its own objective function, even slightly, even accidentally, has drifted from its intended behaviour in ways that may be extremely difficult to detect.
The problem is compounded by opacity. In current neural architectures, self-improvement typically happens at the level of weights and activations — high-dimensional numerical parameters that are, for all practical purposes, uninterpretable. When a model updates its own weights through some form of online learning or meta-learning, the question “what changed?” does not have a human-readable answer. You can measure performance on benchmarks before and after, but you cannot inspect the modification itself. You cannot determine whether the improvement on the benchmark came at the cost of some other property you were not measuring — safety, fairness, robustness to edge cases.[6]
Yampolskiy and Fox laid out the safety engineering requirements for self-improving systems in 2013, and their analysis remains disturbingly relevant. They identified the core challenge: any safety mechanism that operates at the same level as the system it constrains can, in principle, be modified by that system.[7] A self-improving system that has access to its own safety constraints is a system that might, through perfectly rational optimisation, weaken those constraints. Not because it “wants” to — the anthropomorphism is misleading — but because the constraints represent a restriction on its solution space, and optimisers tend to find ways around restrictions.
This creates what might be called the fundamental dilemma of self-improvement: the same capability that makes self-modification valuable — the ability to change system behaviour in response to experience — is precisely the capability that makes it dangerous. You cannot have one without confronting the other.
Fig. 1 — Unconstrained self-modification accumulates drift; bounded modification routes every change through verification
The Architecture of Safe Self-Modification
The resolution to this dilemma is architectural, not philosophical. Self-improvement is not inherently safe or inherently dangerous — it depends entirely on where in the system the modification occurs and what constraints govern the modification process. The critical insight is that safe self-modification is possible when it happens in an explicit, inspectable, formally verifiable layer — not in opaque neural weights, but in structured algorithms and code that humans and automated verifiers can read, audit, and reverse.[8]
This distinction — between modifying weights and modifying algorithms — is the key to the entire problem. When a system improves by updating neural network parameters, the change is a shift in a high-dimensional space that defies human interpretation. When a system improves by rewriting a search algorithm or a prompt template or a decision rule, the change is a diff: a specific, readable, reviewable alteration to a specific piece of logic. The former is opaque. The latter is auditable. And auditability is the foundation upon which every other safety property depends.
Consider the properties we need from a safe self-improving system. First, inspectability: every modification the system makes to itself must be visible to human operators, not buried in weight matrices. Second, reversibility: any modification must be undoable, meaning the system maintains a complete version history of its own code and can roll back to any previous state. Third, boundedness: the scope of permissible modifications must be formally defined, so that the system cannot modify its own safety constraints, its own objective function, or any component that sits above it in the control hierarchy. Fourth, verifiability: each proposed modification must be checked against formal specifications before it is applied, so that provable safety properties are preserved across modifications.[9]
None of these properties are achievable when self-modification happens at the weight level. All of them are achievable when self-modification happens at the algorithm level. This is not a minor technical distinction — it is the difference between a system whose behaviour can be understood and a system whose behaviour can only be measured.
Algorithms, Not Parameters
The practical implementation of this architecture separates the AI system into layers with different modification privileges. The foundational layer — the neural network weights, the base model — is treated as read-only infrastructure. It provides the raw capability: language understanding, pattern recognition, knowledge retrieval. But it does not modify itself.
Above this sits the algorithm layer: the search strategies, reasoning chains, prompt templates, tool-use patterns, and decision rules that determine how the base model’s capability is applied to specific problems. This is the layer where self-improvement happens. When the system discovers a more efficient way to decompose a problem, it rewrites the decomposition algorithm. When it finds that a particular prompting strategy works better for a class of tasks, it updates its prompt library. When it identifies a failure mode, it adds a new verification step to its reasoning pipeline.[10]
Every one of these modifications is a code change — a diff that can be reviewed, tested, and rolled back. The system maintains a complete git-like history of its own algorithmic evolution. An operator can inspect exactly what changed, when it changed, and why it changed. If a modification causes unexpected behaviour, it can be reverted instantly. This is not a novel idea in software engineering; it is how we have managed complex, evolving systems for decades. The insight is that it applies to self-improving AI with equal force.
Above the algorithm layer sits the safety boundary: the formal specifications, resource limits, and invariants that the algorithm layer must respect. This layer is not modifiable by the system at all. It is the frame within which self-improvement operates. Seshia and colleagues have outlined how formal methods can provide exactly this kind of provable safety envelope — specifications that hold regardless of what happens in the layers below.[9]
This three-layer architecture maps directly onto the T0–T3 adaptive hierarchy. The frozen base model is T0 — fixed capability, no learning. Harness optimisations (prompt engineering, tool selection) are T1 — one adaptive traverse. The self-modifying algorithm layer, where the system rewrites its own strategies based on validated experience, is T2 — two traverses, continuous improvement. And when the system learns to improve its own improvement process — discovering better mutation strategies, better evaluation criteria — it reaches T3: learning how to learn, with safety bounds still immutable above it.
Immutable
Safety Bounds
Formal specs • Resource limits • Invariants
Self-Modifiable • Inspectable
Algorithm Layer
Search strategies • Reasoning chains • Decision rules
Read-Only
Neural Weights
Opaque • High-dimensional • Uninterpretable
Fig. 2 — Safe self-modification targets the inspectable algorithm layer, leaving weights and safety bounds untouched
The Verification Loop
Layered architecture solves the inspectability problem, but it does not, by itself, guarantee that modifications are safe. For that, we need a verification loop — a process that evaluates every proposed self-modification against formal criteria before it takes effect.
The verification loop operates as a gated pipeline. When the system proposes a modification to its own algorithm layer, the proposal is first expressed as a concrete code change. This change is then subjected to a battery of checks: type verification ensures the modification is structurally sound; formal specification checking ensures that the modification preserves stated invariants; regression testing ensures that the modification does not degrade performance on known tasks; resource bound checking ensures that the modification does not increase the system’s computational or memory footprint beyond defined limits.[11]
Only modifications that pass all checks are applied. Failed modifications are logged with full diagnostic information — what was proposed, which check failed, and why — so that the system (and human operators) can learn from the failure. This creates a productive feedback loop: the system improves not only through successful modifications but through understanding why certain modifications were rejected.
The verification loop also enforces a critical meta-property: the verification process itself is not modifiable by the system. The checks, the specifications, the resource bounds — these sit in the immutable safety layer. The system can improve how it generates modification proposals, but it cannot weaken the criteria by which those proposals are evaluated. This addresses Yampolskiy and Fox’s concern about safety mechanisms operating at the same level as the system they constrain.[7] By architectural design, the constraints operate at a higher level than the system they constrain.
Addressing the Convergent Instrumental Goals
Omohundro’s convergent instrumental goals — self-preservation, resource acquisition, cognitive enhancement — are often cited as reasons to fear self-improving systems.[4] But these concerns assume a particular architecture: one where the system has access to its own foundational parameters and operates without external constraints on its action space. In a layered architecture with an immutable safety boundary, the convergent drives are defanged — not because the optimisation pressure disappears, but because the architectural constraints remove the pathways through which that pressure could manifest as dangerous behaviour.
A system that cannot modify its own resource bounds cannot engage in resource acquisition beyond those bounds. A system that cannot modify its own safety constraints cannot weaken them for self-preservation. A system whose modifications are gated by formal verification cannot improve its cognitive capabilities in ways that violate stated invariants. The optimisation pressure is still there — the system still “wants” to find the best solution within its space — but the space is bounded, and the boundaries are not within reach of the optimiser.
This is not foolproof. No safety mechanism is. But it transforms the problem from an unbounded one (“how do we prevent a system from doing anything dangerous?”) to a bounded one (“how do we verify that the safety layer is correctly specified and properly isolated?”). The latter is a hard engineering problem, but it is the kind of hard engineering problem that humanity has solved before, in domains from nuclear safety to avionics.[12]
The Compounding Advantage of Auditable Self-Improvement
There is a counterintuitive benefit to the constrained approach: it actually accelerates meaningful improvement rather than slowing it down. When every modification is auditable, the system builds a rich corpus of knowledge about what works, what fails, and why. This corpus becomes a resource for future improvement — the system can learn not just from its task performance but from its own modification history.
This is analogous to how version control transformed software development. Before version control, developers were afraid to make changes because any change might break something irreversibly. After version control, changes became cheap, safe, and reversible — which meant developers made more changes, not fewer. The constraint enabled the freedom. The safety mechanism was not a brake on innovation; it was the infrastructure that made aggressive innovation rational.[8]
The same dynamic applies to self-improving AI. A system that knows its modifications will be verified and can be rolled back is a system that can experiment aggressively within its bounds. It can try radical algorithmic changes with confidence that failures will be caught and reversed. Paradoxically, the constraint makes the system more innovative, not less — because it removes the risk that makes conservatism rational in an unconstrained system.
Concurrent research in AI governance reinforces this point. The 2025 International AI Safety Report, drawing on input from over a hundred experts across thirty countries, concluded that safety-by-design does not merely coexist with capability — it is a prerequisite for the kind of trust that enables deployment at scale.[13] Self-improving systems that cannot demonstrate auditable safety properties will face regulatory barriers that static systems avoid. Building safety into the architecture is not just good engineering; it is a competitive advantage.
What This Makes Possible
The choice before the field is not between self-improvement and safety. It is between two architectures for self-improvement: one that operates in the dark, modifying opaque parameters without audit trails, and one that operates in the light, modifying readable algorithms through a verified pipeline with full version history. The first is powerful and terrifying. The second is powerful and trustworthy.
The technology for the second approach exists. Formal verification, version-controlled code modification, layered architectures with privilege separation, gated deployment pipelines — these are mature engineering disciplines. What has been missing is the recognition that they apply to self-improving AI systems with the same force and relevance as they apply to operating systems, aircraft control software, and medical devices.
Self-improvement is not the problem. Unauditable self-improvement is the problem. Solve the auditability, and you unlock the compounding — safely.
References & Further Reading
- Good, I. J. (1966). Speculations concerning the first ultraintelligent machine. Advances in Computers, 6, 31–88. — The original formulation of recursive self-improvement and intelligence explosion.
- Robeyns, M., Szummer, M., & Aitchison, L. (2025). A self-improving coding agent. arXiv. — An agent that modifies its own source code through iterative self-improvement, achieving measurable benchmark gains.
- Schmidhuber, J. (2007). Gödel machines: Fully self-referential optimal universal self-improvers. In B. Goertzel & C. Pennachin (Eds.), Artificial General Intelligence. Springer. — Formal framework for self-referential self-improvement with provability constraints.
- Omohundro, S. M. (2008). The basic AI drives. In Proceedings of the First AGI Conference. — Convergent instrumental goals: self-preservation, resource acquisition, and self-improvement as emergent drives.
- Bostrom, N. (2014). Superintelligence: Paths, dangers, strategies (Ch. 10). Oxford University Press. — Decisive strategic advantage, intelligence explosion dynamics, and the control problem.
- Nanda, N., Chan, L., Lieberum, T., Smith, J., & Steinhardt, J. (2023). Progress measures for grokking via mechanistic interpretability. arXiv. — On the difficulty of interpreting learned representations and weight-level changes in neural networks.
- Yampolskiy, R. V., & Fox, J. (2013). Safety engineering for artificial general intelligence. Topoi, 32, 217–226. — Constraining self-improvement and the challenge of AI confinement.
- Weng, L. (2023, June 23). LLM powered autonomous agents. Lil’Log. — Cognitive architecture for agents: memory, reasoning, planning, and tool use as modular, inspectable components.
- Seshia, S. A., Sadigh, D., & Sastry, S. S. (2022). Toward verified artificial intelligence. Communications of the ACM, 65(7), 46–55. — Formal methods for verifiable AI systems: specification, verification, and safe learning.
- Shinn, N., Cassano, F., Gopinath, A., Narasimhan, K., & Yao, S. (2023). Reflexion: Language agents with verbal reinforcement learning. arXiv. — Agents that improve through self-reflection on textual feedback rather than weight updates.
- Amodei, D., Olah, C., Steinhardt, J., Christiano, P., Schulman, J., & Mané, D. (2016). Concrete problems in AI safety. arXiv. — Reward hacking, distributional shift, and safe exploration as engineering challenges.
- Leveson, N. G. (2011). Engineering a safer world: Systems thinking applied to safety. MIT Press. — Safety as a system-level property, not a component-level one; STAMP/STPA methodology.
- International AI Safety Report. (2025, January). International AI Safety Report 2025. — Cross-national expert consensus on safety-by-design for agentic and self-modifying AI systems.