Arbeitsprobe · Lab

Ein Agent, der sich selbst optimiert — und es beweisen muss.

evolab mutiert Frontend-Code mit Codex und misst jeden Schritt mit Lighthouse. Übernommen wird eine Änderung nur, wenn sie messbar verbessert — ohne eine andere Metrik zu opfern.

evolab — evolutionäre Optimierung mit objektivem Fitness-Signal.

Codex-MutationLighthouse-FitnessMulti-MetrikScope-GuardKein Auto-Deploy

Privates Repository. Mechanik und Ergebnisse sind hier öffentlich dokumentiert — der Code bleibt geschlossen, ein Walkthrough ist auf Anfrage möglich.

Warum gebaut?

Optimieren gegen ein objektives Signal.

Ein Agent, der seinen eigenen Output bewertet, ist ein schwacher Richter — er neigt dazu, sich selbst recht zu geben. Die Frage hinter evolab war: Was passiert, wenn die Bewertung von außen kommt, messbar und unbestechlich?

evolab stellt Codex die Aufgabe, eine Oberfläche zu verbessern, und überlässt das Urteil komplett Lighthouse. Performance und Accessibility werden gemessen — nicht behauptet.

Das Ergebnis ist ein evolutionärer Loop: mutieren, messen, selektieren, wiederholen. Übernommen wird nur, was den Test der Gegenseite besteht — und das ist überraschend oft eben nicht der Fall.

Evolution als Maschine

Mutieren, messen, selektieren.

Der Kern ist ein genetischer Loop mit einem ungewöhnlichen Mutations-Operator: einem Sprachmodell. Codex erzeugt eine Variante, Lighthouse misst sie, und eine harte Selektionsregel entscheidet, ob sie bleibt.

Evolutions-Kreislaufadvance nur bei is_fitter
checkoutbestmutateCodexmeasureLighthouseis_fitter?Selektionadvance — wenn is_fittersonst: discard
Messen statt meinen: Jede Mutation wird mit Lighthouse gemessen — Median aus 3 bis 5 Läufen, um Mess-Jitter zu glätten.
Nur Fortschritt zählt: Die Selektion übernimmt eine Variante nur, wenn sie besser ist und keine Metrik regrediert — sonst wird sie verworfen.
Die Regel

Eine Verbesserung reicht nicht — sie darf nichts kaputtmachen.

Die Selektion ist hart: Eine Mutation muss mindestens eine Metrik echt verbessern UND darf keine andere unter die Toleranz drücken. Wähle ein Szenario, um zu sehen, wie entschieden wird.

perf8585
a11y9893
Verdiktverworfen

a11y regrediert (98→93) — eine gehaltene Performance rettet das nicht. Genau der reale loop-short-Iter-2.

Live bewiesen

Echte Läufe, ungeglättet.

Die Zahlen stammen aus echten Läufen gegen das DCO-Dashboard, nicht aus einer Demo. Inklusive der Schritte, die verworfen wurden — die machen die Disziplin erst sichtbar.

39→85perf · loop-short
56→85perf · fresh
21Tests
Score-Verlauf · fresh-LaufLighthouse Performance
05010056iter 075iter 183iter 485iter 6

3 akzeptierte Mutationen über 10 Iterationen — 4 Codex-Timeouts ehrlich mitgezählt. a11y stieg dabei von 98 auf 100. Stand 06/2026.

Im loop-short-Lauf wurden zwei Mutationen verworfen: eine, weil sie Accessibility opferte (98→93), eine, weil sie Performance kostete (85→84). Und im fresh-Lauf scheiterten zwei Kandidaten mit Performance 86 an der Jitter-Toleranz — 86 lag nicht weit genug über dem Bestwert 85, um als echter Fortschritt statt Messrauschen zu zählen.

Kontrolle als Design

Autonomie mit harten Grenzen.

Ein Agent, der selbst Code schreibt und sich selbst bewertet, braucht Leitplanken — sonst optimiert er ins Leere oder ins Unsichere. evolab zieht diese Grenzen explizit.

Scope-Guard

Codex darf nur Dateien aus einer Allowlist anfassen — ein Diff, der ausschert, wird verworfen, bevor er überhaupt gemessen wird.

Jitter-Toleranz

Die Selektion rechnet mit Messrauschen: tol = max(1, jitter). Eine Mutation muss über das Rauschen hinaus verbessern, nicht nur knapp darüber.

Gehärteter Subprocess

Der Codex-Aufruf läuft kontrolliert in einem abgegrenzten Work-Verzeichnis, nicht frei auf dem Zielsystem.

Kein Auto-Deploy

Output sind nur Reports und ein best-ref zum menschlichen Review — die Maschine schreibt nichts ins Ziel-Repo.

Übertragbare Muster

Was sich verallgemeinern lässt.

Die eigentliche Ausbeute ist nicht der Lighthouse-Optimierer, sondern das Prinzip dahinter — übertragbar auf jeden Agenten, der sich selbst verbessern soll.

/01

Objektives Fitness-Signal

Ein Agent, der sich selbst bewertet, ist ein schwacher Richter. Ein externes Messsignal ist unbestechlich.

/02

Multi-Metrik statt Single-Score

Eine einzige Zahl zu optimieren erzeugt Kollateralschaden an allen anderen. Zwei Dimensionen mit No-Regress-Regel verhindern das.

/03

Mit dem Rauschen rechnen

Reale Messungen schwanken. Wer das ignoriert, akzeptiert Zufall als Fortschritt.

Sparring

Wo würdest du die Fitness-Funktion ansetzen?

Lighthouse ist nur ein Signal von vielen. Wenn dich interessiert, wie sich das Prinzip auf andere messbare Ziele übertragen lässt, schreib mir — ein Walkthrough ist möglich.