GAN-Style-Harness-Fähigkeit
Inspiriert von Anthropics Harness-Design für langlebige Anwendungen (24. März 2026)
Ein Multi-Agenten-Harnes, der Generierung von Bewertung trennt und eine adversarialische Rückkopplungsschleife erzeugt, die die Qualität weit über das hinaus treibt, was ein einzelner Agent erreichen kann.
Kerneinsicht
Wenn man Agenten bittet, ihre eigene Arbeit zu bewerten, sind sie pathologische Optimisten – sie loben mittelmäßige Ergebnisse und reden sich aus legitimen Problemen heraus. Aber es ist weitaus handlicher, einem separaten Evaluator beizubringen, erbarmungslos streng zu sein, als einem Generator beizubringen, sich selbst zu kritisieren.
Dies ist dieselbe Dynamik wie bei GANs (Generative Adversarial Networks): Der Generator produziert, der Evaluator kritisiert, und dieses Feedback treibt die nächste Iteration an.
Wann verwenden
- Erstellen kompletter Anwendungen aus einer einzeiligen Aufforderung
- Frontend-Designaufgaben, die eine hohe visuelle Qualität erfordern
- Full-Stack-Projekte, die funktionierende Features benötigen, nicht nur Code
- Jede Aufgabe, bei der „KI-Schlonz“-Ästhetik inakzeptabel ist
- Projekte, bei denen Sie 50-200 $ für produktionsreife Qualität investieren möchten
Wann NICHT verwenden
- Schnelle Einzeldatei-Korrekturen (verwenden Sie stattdessen
claude -p) - Aufgaben mit knappen Budgetbeschränkungen (<10 $)
- Einfaches Refactoring (verwenden Sie stattdessen das Entschlonzungsmuster)
- Aufgaben, die bereits gut mit Tests spezifiziert sind (verwenden Sie den TDD-Workflow)
Architektur
┌─────────────┐
│ PLANER │
│ (Sonnet) │
└──────┬──────┘
│ Produktspezifikation
│ (Features, Sprints, Designrichtung)
▼
┌────────────────────────┐
│ │
│ GENERATOR-EVALUATOR │
│ RÜCKKOPPLUNGSSCHLEIFE│
│ │
│ ┌──────────┐ │
│ │GENERATOR │--erstellt-->│──┐
│ │ (Sonnet) │ │ │
│ └────▲─────┘ │ │
│ │ │ │ live App
│ Rückmeldung │ │
│ │ │ │
│ ┌────┴─────┐ │ │
│ │EVALUATOR │<-testet---│──┘
│ │ (Sonnet) │ │
│ │+Playwright│ │
│ └──────────┘ │
│ │
│ 5-15 Iterationen │
└────────────────────────┘
Die drei Agenten
1. Planer-Agent
Rolle: Produktmanager – erweitert eine kurze Aufforderung zu einer vollständigen Produktspezifikation.
Wichtige Verhaltensweisen:
- Nimmt eine einzeilige Aufforderung und erstellt eine Spezifikation mit 16 Features und mehreren Sprints
- Definiert User Stories, technische Anforderungen und visuelle Designrichtung
- Ist bewusst ambitioniert – konservative Planung führt zu enttäuschenden Ergebnissen
- Erzeugt Bewertungskriterien, die der Evaluator später verwenden wird
Modell: Standardmäßig Sonnet; erhöhen Sie mit GAN_PLANNER_MODEL=opus für eine tiefere Spezifikationserweiterung
2. Generator-Agent
Rolle: Entwickler – implementiert Features gemäß der Spezifikation.
Wichtige Verhaltensweisen:
- Arbeitet in strukturierten Sprints (oder im kontinuierlichen Modus mit neueren Modellen)
- Verhandelt einen „Sprint-Vertrag" mit dem Evaluator, bevor er Code schreibt
- Verwendet Full-Stack-Werkzeuge: React, FastAPI/Express, Datenbanken, CSS
- Verwaltet Git für die Versionskontrolle zwischen Iterationen
- Liest Evaluator-Feedback und integriert es in die nächste Iteration
Modell: Standardmäßig Sonnet; erhöhen Sie mit GAN_GENERATOR_MODEL=opus für maximale Codierungsfähigkeit
3. Evaluator-Agent
Rolle: QA-Ingenieur – testet die live laufende Anwendung, nicht nur den Code.
Wichtige Verhaltensweisen:
- Verwendet Playwright MCP, um mit der live-Anwendung zu interagieren
- Klickt sich durch Features, füllt Formulare aus, testet API-Endpunkte
- Bewertet anhand von vier Kriterien (konfigurierbar):
- Designqualität – Fühlt es sich wie ein stimmiges Ganzes an?
- Originalität – Eigene Entscheidungen vs. Vorlagen/KI-Muster?
- Handwerkskunst – Typografie, Abstände, Animationen, Mikrointeraktionen?
- Funktionalität – Funktionieren alle Features tatsächlich?
- Gibt strukturiertes Feedback mit Bewertungen und spezifischen Problemen zurück
- Ist darauf ausgelegt, erbarmungslos streng zu sein – lobt niemals mittelmäßige Arbeit
Modell: Standardmäßig Sonnet; erhöhen Sie mit GAN_EVALUATOR_MODEL=opus für stärkeres Urteilsvermögen + Werkzeugnutzung
Bewertungskriterien
Die standardmäßigen vier Kriterien, jedes bewertet von 1-10:
## Bewertungsrubrik
### Designqualität (Gewicht: 0,3)
- 1-3: Generisch, vorlagenartig, „KI-Schlonz"-Ästhetik
- 4-6: Kompetent, aber unauffällig, folgt Konventionen
- 7-8: Unverwechselbare, zusammenhängende visuelle Identität
- 9-10: Könnte für die Arbeit eines professionellen Designers durchgehen
### Originalität (Gewicht: 0,2)
- 1-3: Standardfarben, Standardlayouts, keine Persönlichkeit
- 4-6: Einige eigene Entscheidungen, meist Standardmuster
- 7-8: Klare kreative Vision, einzigartiger Ansatz
- 9-10: Überraschend, entzückend, wirklich neuartig
### Handwerkskunst (Gewicht: 0,3)
- 1-3: Kaputte Layouts, fehlende Zustände, keine Animationen
- 4-6: Funktioniert, fühlt sich aber rau an, inkonsistente Abstände
- 7-8: Poliert, flüssige Übergänge, responsiv
- 9-10: Pixelgenau, entzückende Mikrointeraktionen
### Funktionalität (Gewicht: 0,2)
- 1-3: Kernfeatures defekt oder fehlend
- 4-6: Der glückliche Pfad funktioniert, Randfälle schlagen fehl
- 7-8: Alle Features funktionieren, gute Fehlerbehandlung
- 9-10: Kugelsicher, behandelt jeden Randfall
Bewertung
- Gewichtete Punktzahl = Summe (Kriteriumswert * Gewicht)
- Bestandenschwelle = 7.0 (konfigurierbar)
- Maximale Iterationen = 15 (konfigurierbar, typischerweise 5-15 ausreichend)
Verwendung
Über Befehl
# Vollständiger Drei-Agenten-Harnes
/project:gan-build "Erstelle eine Projektmanagement-App mit Kanban-Boards, Teamzusammenarbeit und Dunkelmodus"
# Mit benutzerdefinierter Konfiguration
/project:gan-build "Erstelle eine Plattform zum Teilen von Rezepten" --max-iterations 10 --pass-threshold 7.5
# Frontend-Designmodus (Generator + Evaluator nur, ohne Planer)
/project:gan-design "Erstelle eine Landingpage für ein Krypto-Portfolio-Tracking-Tool"
Über Shell-Skript
# Grundlegende Verwendung
./scripts/gan-harness.sh "Erstelle ein Musik-Streaming-Dashboard"
# Mit Optionen
GAN_MAX_ITERATIONS=10 \
GAN_PASS_THRESHOLD=7.5 \
GAN_EVAL_CRITERIA="functionality,performance,security" \
./scripts/gan-harness.sh "Erstelle eine REST-API für Aufgabenverwaltung"
Über Claude Code (Manuell)
# Schritt 1: Planen
claude -p --model sonnet "Du bist ein Produktplaner. Lese PLANNER_PROMPT.md. Erweitere diese Kurzbeschreibung zu einer vollständigen Produktspezifikation: 'Erstelle eine Kanban-Board-App'. Schreibe die Spezifikation in spec.md"
# Schritt 2: Generieren (Iteration 1)
claude -p --model sonnet "Du bist ein Generator. Lese spec.md. Implementiere Sprint 1. Starte den Entwicklungsserver auf Port 3000."
# Schritt 3: Bewerten (Iteration 1)
claude -p --model sonnet --allowedTools "Read,Bash,mcp__playwright__*" "Du bist ein Evaluator. Lese EVALUATOR_PROMPT.md. Teste die live-App unter http://localhost:3000. Bewerte anhand der Rubrik. Schreibe das Feedback in feedback-001.md"
# Schritt 4: Generieren (Iteration 2 – liest Feedback)
claude -p --model sonnet "Du bist ein Generator. Lese spec.md und feedback-001.md. Adressiere alle Probleme. Verbessere die Bewertungen."
# Wiederhole Schritte 3-4, bis die Bestandenschwelle erreicht ist
Entwicklung über Modellfähigkeiten hinweg
Der Harnes sollte sich vereinfachen, wenn Modelle besser werden. Folgt Anthropics Entwicklung:
Stufe 1 – Schwächere Modelle (Sonnet-Klasse)
- Vollständige Sprint-Zerlegung erforderlich
- Kontextzurücksetzungen zwischen Sprints (vermeide Kontextangst)
- Mindestens 2 Agenten: Initialisierer + Codierungs-Agent
- Schweres Gerüst gleicht Modelleinschränkungen aus
Stufe 2 – Leistungsfähige Modelle (Opus 4.5-Klasse)
- Vollständiger 3-Agenten-Harnes: Planer + Generator + Evaluator
- Sprint-Verträge vor jeder Implementierungsphase
- 10-Sprint-Zerlegung für komplexe Apps
- Kontextzurücksetzungen noch nützlich, aber weniger kritisch
Stufe 3 – Grenzmodelle (Opus 4.6-Klasse)
- Vereinfachter Harnes: Ein einziger Planungsdurchlauf, kontinuierliche Generierung
- Bewertung auf einen einzigen Enddurchlauf reduziert (Modell ist intelligenter)
- Keine Sprint-Struktur erforderlich
- Automatische Kompaktierung behandelt das Kontextwachstum
Schlüsselprinzip: Jede Harnes-Komponente codiert eine Annahme darüber, was das Modell allein nicht kann. Wenn Modelle besser werden, testen Sie diese Annahmen erneut. Entfernen Sie, was nicht mehr benötigt wird.
Konfiguration
Umgebungsvariablen
| Variable | Standard | Beschreibung |
|---|---|---|
GAN_MAX_ITERATIONS | 15 | Maximale Generator-Evaluator-Zyklen |
GAN_PASS_THRESHOLD | 7.0 | Gewichtete Punktzahl zum Bestehen (1-10) |
GAN_PLANNER_MODEL | sonnet | Modell für den Planer-Agenten |
GAN_GENERATOR_MODEL | sonnet | Modell für den Generator-Agenten |
GAN_EVALUATOR_MODEL | sonnet | Modell für den Evaluator-Agenten |
GAN_EVAL_CRITERIA | design,originality,craft,functionality | Durch Kommata getrennte Kriterien |
GAN_DEV_SERVER_PORT | 3000 | Port für die live-App |
GAN_DEV_SERVER_CMD | npm run dev | Befehl zum Starten des Entwicklungsservers |
GAN_PROJECT_DIR | . | Projektarbeitsverzeichnis |
GAN_SKIP_PLANNER | false | Planer überspringen, Spezifikation direkt verwenden |
GAN_EVAL_MODE | playwright | playwright, screenshot oder code-only |
Bewertungsmodi
| Modus | Werkzeuge | Am besten geeignet für |
|---|---|---|
playwright | Browser-MCP + Live-Interaktion | Full-Stack-Apps mit UI |
screenshot | Screenshot + visuelle Analyse | Statische Websites, reines Design |
code-only | Tests + Linting + Build | APIs, Bibliotheken, CLI-Tools |
Anti-Patterns
-
Evaluator zu nachsichtig – Wenn der Evaluator in Iteration 1 alles bestehen lässt, ist Ihre Rubrik zu großzügig. Verschärfen Sie die Bewertungskriterien und fügen Sie explizite Strafen für häufige KI-Muster hinzu.
-
Generator ignoriert Feedback – Stellen Sie sicher, dass Feedback als Datei und nicht inline übergeben wird. Der Generator sollte zu Beginn jeder Iteration
feedback-NNN.mdlesen. -
Endlosschleifen – Setzen Sie immer
GAN_MAX_ITERATIONS. Wenn sich der Generator nach 3 Iterationen nicht über ein Punktzahlplateau verbessern kann, stoppen Sie und markieren Sie es zur menschlichen Überprüfung. -
Evaluator testet oberflächlich – Der Evaluator muss Playwright verwenden, um mit der live-App zu interagieren, nicht nur einen Screenshot zu machen. Klicken Sie auf Schaltflächen, füllen Sie Formulare aus, testen Sie Fehlerzustände.
-
Evaluator lobt seine eigenen Korrekturen – Lassen Sie niemals zu, dass der Evaluator Korrekturen vorschlägt und diese dann bewertet. Der Evaluator kritisiert nur; der Generator korrigiert.
-
Kontexterschöpfung – Verwenden Sie für lange Sitzungen die automatische Kompaktierung des Claude Agent SDK oder setzen Sie den Kontext zwischen wichtigen Phasen zurück.
Ergebnisse: Was zu erwarten ist
Basierend auf Anthropics veröffentlichten Ergebnissen:
| Metrik | Einzelner Agent | GAN-Harnes | Verbesserung |
|---|---|---|---|
| Zeit | 20 Min. | 4-6 Stunden | 12-18x länger |
| Kosten | $9 | $125-200 | 14-22x mehr |
| Qualität | Kaum funktionsfähig | Produktionsreif | Phasenwechsel |
| Kernfeatures | Defekt | Alle funktionierend | N/V |
| Design | Generischer KI-Schlonz | Unverwechselbar, poliert | N/V |
Der Kompromiss ist klar: ~20x mehr Zeit und Kosten für einen qualitativen Sprung in der Ausgabequalität. Dies ist für Projekte, bei denen Qualität zählt.
Referenzen
- Anthropic: Harness Design for Long-Running Apps — Originalarbeit von Prithvi Rajasekaran
- Epsilla: The GAN-Style Agent Loop — Architektur-Dekonstruktion
- Martin Fowler: Harness Engineering — Breiterer Branchenkontext
- OpenAI: Harness Engineering — OpenAIs parallele Arbeit