Toward AGIAdvancedLesson 576 min read

Systems that improve themselves

Close the loop and the system gets better on its own. This is the most exciting architecture in the guide and the one that most needs a hand on the brake.

Lesson in motion

In 60 seconds

Systems that improve themselves

Close the loop and the system gets better on its own. This is the most exciting architecture in the guide and the one that most needs a hand on the brake.

1/6
In simple words
Imagine a student who marks their own homework, then rewrites the textbook based on their marks. If their marking is good, they get very good very fast. If their marking is wrong, they get confidently worse and never notice.
Self-improvement means the system's output becomes its own training signal. There are four rungs, and they differ enormously in both power and risk.
  1. 1

    Rung 1 · Self-correction within a run

    Draft, critique, revise. No lasting change; the improvement dies with the session. Safe, and useful today.
  2. 2

    Rung 2 · Learning from verified outcomes

    Keep what provably worked — passing tests, correct answers — and train on it. This is Module 51, and the verifier is what keeps it honest.
  3. 3

    Rung 3 · Improving its own scaffolding

    The system rewrites its prompts, its tool descriptions, its retrieval strategy or its own workflow. Real gains, and it is now modifying the thing you audited.
  4. 4

    Rung 4 · Improving the model itself

    Generating training data, running its own fine-tunes, evaluating the result. Largely hypothetical at meaningful scale — and the scenario Module 33 is about.

The one thing that determines whether it works

Everything hinges on the verifier. Self-improvement is a feedback loop, and a feedback loop with a flawed measurement amplifies the flaw.
The loop, with the failure written into itpython
def self_improve(system, tasks, rounds=10):
    for r in range(rounds):
        results = [system.attempt(t) for t in tasks]

        # EVERYTHING depends on this line being honest
        good = [x for x in results if verify(x)]

        system.train_on(good)
        score = evaluate(system, held_out_tasks)
        print(f"round {r}  kept {len(good)}/{len(results)}  score {score:.3f}")

        # If verify() can be satisfied without solving the task, this loop
        # optimises for satisfying verify() -- efficiently, and forever.
        # It will look like rapid improvement on your dashboard.
Danger
That is Module 32 with a multiplier attached. Specification gaming inside a self-improvement loop does not just produce one wrong answer — it trains the wrong behaviour in, then uses the improved wrong behaviour to generate more training data. The dashboard shows a beautiful curve the whole time.

Three failure modes with names

FailureWhat happensWarning sign
Verifier hackingIt optimises the checker, not the taskScores rise while spot-checked real quality does not
Model collapseTraining on own output narrows diversityOutputs converge in style; rare cases get worse
Drift from intentSmall acceptable changes compound over roundsRound 10 behaviour would not have been approved at round 1
Scaffolding erosionIt edits away its own constraints as "inefficiency"Prompt or tool config differs from what you reviewed

How to run one safely

  • Hold out a verifier the system never sees. If it can read the checker, it will optimise the checker.
  • Keep a fixed human-graded sample from round zero and re-score it every round. Divergence between that and your automatic metric is your alarm.
  • Cap the drift. Compare round N with round 0 directly, not just with round N−1. Small acceptable steps compound into large unacceptable ones.
  • Version and freeze the scaffolding. If the system may propose changes to its own prompts or tools, those proposals go through review like any other code change.
  • Keep diversity metrics. Watch output entropy; collapse is visible before it is painful.
  • Never let it touch its own permissions. Not its credentials, not its tool list, not its approval thresholds. This is a hard line, not a threshold.
  • The stop button lives outside. Infrastructure-level, not a tool the system holds — Module 33.
Do this
Rung 1 and rung 2 are genuinely valuable and available now, and both are safe when the verifier is honest and external. Rung 3 needs review gates. Rung 4 should not be run casually by anyone. That is not a dramatic claim — it is the same logic that stops you giving a deploy pipeline write access to its own approval rules.

Watch and read more

Lab

A self-improvement loop that gets measurably worse, on purpose.

~25 min

The problem

Build the loop from Module 57 with a deliberately gameable verifier. Run ten rounds. Plot the verifier's score and a held-out human-graded score on the same axes. Watch them diverge.
Starter codepython
for r in range(10):
    results = [system.attempt(t) for t in tasks]
    good = [x for x in results if verify(x)]        # gameable
    system.train_on(good)
    print(f"round {r}  verifier {score(verify)}  held-out {human_score()}")

You are done when

Hard questions

Try to answer before you reveal. If you can answer these, you understood the lesson.

Q1Your dashboard shows a beautiful curve for ten rounds. Name the three instruments that would have told you the truth.Reveal
One: a fixed human-graded sample from round zero, re-scored every round — divergence from the automatic metric is the alarm. Two: output diversity or entropy, which collapses as the system converges on one exploit. Three: a held-out verifier the system has never been optimised against, which is the only measurement not inside the loop it is gaming.

Please sign in to continue.

Questions people ask

Is recursive self-improvement realistic?

Rungs 1 and 2 are in production today. Rung 3 exists in research systems. Rung 4 at any meaningful scale is speculative — it needs a model that can meaningfully improve the training of a model as capable as itself, which nobody has shown.

Is model collapse actually a problem?

In studies where models train repeatedly on their own unfiltered output, yes and quickly. In practice, filtering and mixing in fresh human data mitigates it substantially. The lesson is that the filtering step is not optional.

Can I use this in a normal product?

Yes, at rung 1 and 2. Have the agent verify its own work against real checks, keep what passes, use it to improve prompts and examples. That is ordinary, valuable engineering with a clear audit trail.

Why is touching its own permissions the hard line?

Because every other control in this guide assumes the permission set is fixed by you. A system that can widen its own permissions can dismantle every safeguard you built, one reasonable-sounding step at a time.

Lesson test

5 questions. Get 3 right (60%) to pass and complete this lesson.

Sign in with your phone number to take the test and save your progress