Agentenbasierte Programmierschleifen: Vom Bash-One-Liner bis zu /goal, Überprüfungen und harte Stopps.
Schritt für Schritt: Agenten-basierte Kodierungsschleifen mit einem bash-One-Liner, Claude Code /goal und /loop, Überprüfung außerhalb der Schleifen, drei Ausgaboberge und die wertvollen Fähigkeiten.
Quellen: WTF Is a Agentic Coding Loop? And How to Build One.
Eine einzige Aussage von Peter Steinberger dominierte die Diskussion über KI-Programmierung im Juni 2026 und erreichte zwei Millionen Aufrufe: Programmieragenten sollten nicht mehr manuell angesprochen werden, sondern stattdessen sollten Schleifen entwickelt werden, die die Agenten anweisen. Die Antworten entwickelten sich zu einer Debatte darüber, was das bedeutet. Als jemand fragte, wie das in der Praxis aussieht, scherzte die am häufigsten zitierte Antwort, dass nur zwei Personen es wüssten. Das ist lustig, aber falsch. Die Idee ist nicht mystisch, und der Einstieg erfolgt mit einem einzigen Befehl.
Anstatt zu debattieren, ob das Prompt-Engineering tot ist, ist der sinnvolle Ansatz, eines zu entwickeln, ausgehend von einer Zeile, die in fünf Minuten eingefügt werden kann.
Drei Punkte leiten den Rest ein:
- Eine Schleife ist ein Skript, das eine Anweisung an den Agenten sendet, die Ausgabe überprüft, feststellt, ob die Aufgabe erledigt ist, und bei Nichterledigung wiederholt. Der Mensch sitzt nicht mehr innerhalb des Zyklus und tippt Anweisungen ein. Die Schleife wird einmal erstellt, und das Modell dient als Unterprogramm darin.
- Die einfachste nützliche Schleife besteht aus einer Zeile Bash, und die nützlichste ist ein einzelner Slash-Befehl. Es ist kein Orchestrierungsframework erforderlich, um sie zu starten – mit einem solchen anzufangen, ist ein Fehler.
- Was eine funktionierende Schleife von einer ausmacht, die den Budgetverbrauch erhöht, lässt sich auf zwei Dinge reduzieren: ein Mittel, um ihre eigene Ausgabe an einer externen Wahrheit zu überprüfen, sowie klare Stopps, die dazu führen, dass sie abbricht.
Eine Definition und eine Leiter
Boris Cherny hat Claude Code entwickelt, und laut seinen Angaben hat Claude Code im vergangenen Monat alle 259 Pull Requests verfasst, die er selbst hinzugefügt hat, obwohl seine IDE bereits seit November deinstalliert ist. Er beschreibt die Methode einfach: Er gibt Claude keine Anweisungen mehr, die Schleifen laufen automatisch und entscheiden selbst, was als Nächstes passiert, während seine Aufgabe darin besteht, die Schleifen zu schreiben.
Seine Leiter mit drei Sprossen macht diese Idee greifbar. Vor einem Jahr bestand die Arbeit aus manuell eingegebenem Code mit Autocomplete-Funktion. Danach kamen mehrere Agentensitzungen parallel, wobei jede einzeln per Hand gestartet wurde. Heute ist es das Programm, das den Agenten anweist, während der Ingenieur sich anderen Aufgaben widmet. Die Arbeit hat sich auf eine höhere Ebene entwickelt – von Code schreiben zu etwas schreiben, das Code schreibt. Er betont ausdrücklich, dass dies Ingenieure nicht überflüssig macht. Jemand muss weiterhin entscheiden, was entwickelt werden soll, gute Ingenieure sind wichtiger, und das Überprüfen der Ergebnisse ist stets entscheidend. Die Tasteneingaben bleiben, doch das Urteilsvermögen bleibt bestehen.
Die kleinste Schleife: eine Zeile Bash
Das gesamte Konzept passt in eine einzige Zeile, und ein einmaliger Ausführungsvorgang gibt bereits einen Eindruck davon. Sie wird Ralph-Loop genannt, nach Ralph Wiggum, und Geoffrey Huntley popularisierte sie im Jahr 2025.
while :; do cat PROMPT.md | claude -p --dangerously-skip-permissions; done
Das ist die ganze Sache. Derselbe Prompt-Datei wird im headless-Modus an Claude Code übergeben, der Agent arbeitet, bis er beendet wird, und anschließend beginnt der Kreislauf mit dem identischen Prompt erneut. Ein Durchlauf erinnert sich nie an den vorherigen, weshalb er sich anhand der Dateien, der Checkliste sowie der von früheren Durchläufen hinterlassenen Commits orientiert. Es sind weder Frameworks noch Zustandsmaschinen beteiligt, nur ein endloser while-Schleifenzyklus um einen Programmieragenten.
Achten Sie beim Einfügen darauf: Die Flagge, die die Berechtigungsanfragen überspringt, ist genau so unverblümt, wie sie klingt – der Agent führt Befehle aus, ohne zu fragen. Ein einmalig verwendbarer Git-Worktree oder -Container auf einer Branch, die man gerne verlieren kann, ist der richtige Ort dafür, niemals der Haupt-Checkout.
Die Klugheit liegt im Gewohnheitsmuster, nicht im Code. Anstatt zu ermöglichen, dass ein riesiges Gespräch veraltet, beginnt jede Iteration mit einer festgelegten Gruppe von Referenzdateien. Die Prompt-Datei benennt jedes Mal dieselben wenigen Dokumente – in der Regel eine Spezifikation und eine Checkliste, die der Agent während der Arbeit abhakt und festhält. Dadurch startet jede neue Runde gezielt, und das Festhalten des Fortschritts verhindert, dass der Agent vom Kurs abkommt oder bereits erledigte Arbeit nochmals durchführt.
Lohnt sich ein so einfacher Trick? Ein Team bei einem Y Combinator-Hackathon erstellte über Nacht sechs Repositorien mithilfe eines Ralph-Loops und einem API-Aufwand von etwa 297 Dollar, den sie mit etwa fünfzigtausend Dollar an Auftragsarbeit verglichen. Huntley entwickelte auf dieselbe Weise eine ganze kleine Programmiersprache. Als Spielzeug reicht diese einfache Methode nicht aus, doch sie vermittelt das Grundkonzept bereits in einer halben Minute.
Das Problem ist, warum diejenigen, die sich am tiefsten mit diesem Thema beschäftigen, es bereits für überholt halten. Der Ralph-Loop geht davon aus, dass die Konsole offen bleibt, und fragt nie nach, ob die Aufgabe abgeschlossen ist. Er läuft einfach ewig weiter, und die nächsten beiden Abschnitte befassen sich damit.
Ein Befehl: /goal und /loop
Es ist nicht notwendig, den Bash-Code manuell zu schreiben. Claude Code enthält zwei Befehle, die denselben Loop sicherer verpacken.
Der Befehl /goal hält den Agenten am Arbeiten, bis eine festgelegte Bedingung erfüllt ist – und genau in dieser Bedingung liegt der Schlüssel.
/goal all tests in test/auth pass and the lint step is clean,
or stop after 20 turns
Was es von einem while-true-Loop unterscheidet, ist der nächste Schritt. Am Ende jeder Runde gibt Claude Code die Bedingung sowie das Gespräch an ein separates, kleines und schnelles Modell weiter – standardmäßig Haiku –, das mit ja oder nein antwortet und einen Grund angibt. Ein „Nein“ liefert diesen Grund als Orientierung für die folgende Runde. Das Arbeitsmodell kann niemals selbst angeben, dass es fertig ist.
Die wichtigste Einschränkung ist, dass der Richter weder Tests durchführt noch in das Repository schaut. Er sieht nur die Transkript, sodass die Bedingung aus den eigenen Ausgaben des Agenten nachgewiesen werden muss. Das Bestehen von Tests im auth-Ordner reicht aus, weil der Agent sie ausgeführt hat und das Ergebnis in der Konversation enthalten ist. Eine Behauptung, dass die Authentifizierung zuverlässig sei, reicht hingegen nicht aus, da nichts in der Transkript dies belegen kann. Der Richter liest Quittungen und prüft keinen Code, weshalb die echte Überprüfung weiterhin ein von dem Agenten ausgeführter Befehl ist, wobei der Richter entscheidet, ob die Quittung als erfolgreich gilt.
Eine gültige Zustandsbeschreibung nennt einen messbaren Endzustand und gibt an, wie der Agent diesen in der Ausgabe darstellt. Eine bessere Authentifizierung ist keine solche Bedingung. Dagegen zählen bestandene Authentifizierungsprüfungen, ein Null-Ausgang aus dem Testbefehl sowie ein git status, der nur Änderungen in den Authentifizierungsdateien anzeigt – schließlich erscheint jede dieser Bedingungen im Protokoll als Befehl, den der Agent ausgeführt hat. Fügen Sie außerdem eine Begrenzung wie das Beenden nach 20 Schritten sowie ein Flag für die maximale Anzahl der Schritte hinzu, um sicherzustellen, dass ein unüberwachter Lauf nicht ewig andauert.
Ein unüberwachter Einmalkauflauf verwendet den headless-Modus mit diesem Flag sowie das Ziel in Anführungszeichen. Der Prozess muss während seiner Ausführung weiterhin aktiv bleiben, weshalb ein offenes Terminal oder ein Server erforderlich sind – kein geschlossener Laptop. Um das Gerät zu schließen, eignet sich Claude Code in der Cloud. Ctrl+C beendet einen lokalen Lauf vorzeitig.
Ein kurzer Praxistest mit zwei Schritten und etwa vierzig Cent sieht so aus.
> /goal all tests in test/auth pass, npm test exits 0, or stop after 15 turns
◎ /goal active · turn 1
ran: npm test
✗ 2 failing in test/auth/login.test.ts
judge: not done, expired-token case still throws◎ /goal active · turn 2
edited src/auth/token.ts
ran: npm test
✓ 41 passing, exit 0
judge: done, npm test exits 0 and only auth files changed✓ goal achieved · 2 turns · ~$0.40
Alles ist dort sichtbar: Der Agent führt die Überprüfung durch, das Ergebnis wird in die Transkriptdatei aufgenommen, und der Richter liest es und entscheidet, ob der Prozess fortgesetzt oder beendet wird.
Der /loop-Befehl ist das zeitgesteuerte Äquivalent, das den Ablauf überwacht. Chernys eigenes Einstiegsexempel lohnt sich, wobei die Substantive geändert werden sollten.
/loop babysit all my PRs. Auto-fix build issues, and when
comments come in, use a worktree agent to fix them.
Es wiederholt sich in regelmäßigen Abständen, kümmert sich um alles Neue seit dem letzten Durchlauf und setzt dies fort, bis jemand es stoppt oder es feststellt, dass die Arbeit abgeschlossen ist. Dies ist Polling und keine Ereignisverarbeitung, was ausreicht, um Pull Requests zu überwachen und Fehler zu beheben. Was geschrieben wird, sind die Absicht und das Stoppverhalten, die Schritte hingegen werden weggelassen.
Selbstüberprüfung macht es zuverlässig
Ein Loop, der Code schreibt und ihn niemals überprüft, macht zunehmend schneller fatale Fehler. Er muss seine Ausgabe gegen etwas Externes und Objektives testen und nicht gegen seine eigene Sichtweise.
Diejenigen, die diese Prozesse steuern, folgen einem Prinzip: Eine externe Überprüfung – und nicht die eigene Bewertung des Modells – entscheidet über die Vollendung. Der Schleifenprozess setzt sich fort, bis der docker build erfolgreich ist, der Container gestartet wird und die Health-Check erfolgreich abgeschlossen ist; dabei zählt die Meldung des Agents, dass alles in Ordnung sei, nichts. Objektive Kriterien ersetzen hier die subjektiven Eindrücke. In Pseudocode sieht der strukturierte Schleifenkörper so aus.
loop:
agent: make progress on the task
run: npm test (or the build, or the linter)
if check passes: done, exit
if check fails: feed the failure back, try again
if no progress in N tries, or budget hit: stop and ping me
Produktionsnutzer fügen zwei Verbesserungen hinzu. Die erste besteht darin, dass ein anderes Modell den Code überprüft als das, das ihn geschrieben hat, da jedes Modell eigene Blindstellen hat und ein neuer Prüfer das erkennen kann, was dem Autor entgeht. Dan Kornas entwickelte dazu roborev: Es prüft jede Commit-Aktion im Hintergrund und sendet die Ergebnisse an den Agenten, solange der Kontext noch frisch ist. Die zweite Verbesserung besteht darin, mindestens zwei Überprüfungszyklen durchzuführen, selbst wenn der erste positiv ausfällt, sowie die Anzahl der Runden auf fünf oder sechs zu begrenzen, damit der Prozess nicht endlos schwingt.
Der Schleifenprozess selbst ist nicht das Wunderbare – vielmehr sind es die Rückmeldungen darin. Mit einer echten Überprüfung fungiert er als Antriebsmechanismus, ohne diese erzeugt er lediglich eine Rechnung.
Schutzmaßnahmen, die das Budget erhalten
Da die Codegenerierung nahezu kostenlos ist, verlagert sich der Aufwand auf den Laufzyklus, der sie ausführt – und ein Zyklus ohne Grenzen stellt ein echtes finanzielles Risiko dar. Uber beschränkte jeden Entwickler auf 1.500 Dollar pro Tool pro Monat für Claude Code und Cursor, nachdem das Unternehmen bereits sein gesamtes jährliches AI-Budget in vier Monaten aufgebraucht hatte. Was Produktionsteams am meisten fürchten, sind endlose Laufzyklen, bei denen sich ein vergessenes Terminal bis zum Morgen in eine Rechnung mit vierstelliger Summe verwandelt.
Jeder ernsthafte Laufzyklus weist dieselben drei notwendigen Sicherheitsmechanismen auf, und alle drei müssen vorhanden sein, bevor ein Zyklus unbeaufsichtigt ausgeführt werden kann.
max_iterations: stop after N turns (the runaway cap)
no_progress: stop if M turns change nothing (the stuck cap)
budget_ceiling: stop at $X or T tokens (the wallet cap)
on_stop: ping me with the state and the reason
Der Befehl /goal gibt fast kostenlos eine unkontrollierte Obergrenze, indem er nach 20 Umdrehungen eine Stop-Bedingung einfügt und das Umdrehungsflagge weiterleitet. Die verbleibenden beiden Werte müssen manuell hinzugefügt werden. Eine Erkennung von mangelndem Fortschritt ist nicht integriert; der einfachste Ansatz besteht darin, einen Stop-Hook oder einen kleinen Wrapper zu verwenden, der zwischen den Umdrehungen git diff --stat vergleicht und nach einigen unveränderten Runden stoppt. Eine Budgetobergrenze sollte zu den Ausgabekontrollen des Anbieters gehören – als fester Dollarbetrag, der einmal in der Konsole vor jedem Lauf konfiguriert wird. Das klingt nach dem Schreiben von Schleifen, während tausend Agenten über Nacht ein Unternehmen aufbauen, doch in der Praxis sorgt der größte Teil der Ingenieurarbeit dafür, dass sie aufhören.
Das darin enthaltene Asset ist eine Fähigkeit
Die Schleife ist die Infrastruktur, der wertvolle Teil ist hingegen das, was sie ausführt.
Steinberger wiederholt einen zweiten Ratschlag, der länger anhält. Alles, was zweimal ausgeführt wird, wird zu einer wiederverwendbaren Fähigkeit, und alles, was schwierig ist, wird zu einer Fähigkeit, sobald es gelöst ist – dadurch entfällt die Notwendigkeit, es erneut durchzuführen. Eine Schleife, die bei jeder Iteration neu ermittelt, wie Tests ausgeführt, Konfigurationen gefunden und Ausgaben formatiert werden, zwingt das Modell dazu, das Projekt endlos neu zu lernen. Eine Schleife, die auf eine kleine Bibliothek von getesteten, benannten Fähigkeiten zurückgreift – wie das Ausführen der Testsuite, das Erstellen eines Pull Requests im Stil des Teams oder das Bereitstellen auf der Staging-Umgebung – baut auf sich selbst auf, da jede Iteration bereits kompetent beginnt. Dadurch entstehen geringere Kosten und weniger Abweichungen. Die Fähigkeiten tragen den Wert, und die Schleife ruft sie lediglich nacheinander auf.
Schleifen, die andere Schleifen überwachen
An der Grenze – und im Sinne dessen, was Steinberger und Cherny tatsächlich meinen – überwachen Schleifen andere Schleifen. Eine überwachende Schleife weist gleichzeitig Aufgaben an viele Agenten zu, überwacht sie und wählt den nächsten Schritt aus, wobei ein zuverlässiger, durch Git gesicherter Zustand aufrechterhalten wird, damit ein Absturz nicht alles beendet. Steve Yegges Open-Source-Projekt Gas Town veranschaulicht dies, indem es zwanzig bis dreißig Claude Code-Instanzen durch einen Bürgermeister-Agenten steuert, während Patrouillenagenten kontinuierlich im Kreis laufen. Die dynamischen Arbeitsabläufe in Claude Code sind die verpackte Form davon, bei der der Agent das Orchestrierungsskript schreibt und eine Flotte von Unteragenten betreibt.
Niemand beginnt dort. Die Reihenfolge ist zunächst ein /Goal, dann eine Selbstüberprüfung, anschließend die drei Grenzwerte – und die Orchestrierung findet erst statt, wenn eine einzelne Schleife die Arbeit nicht bewältigen kann, was später geschieht, als die Hype-Beschreibungen nahelegen.
Erste Schleife diese Woche
- Testen Sie die Überprüfung manuell auf einer temporären Branch. Erstellen Sie eine Branch wie „loop-test“ und führen Sie den Testbefehl selbst aus, um zu überprüfen, ob bei Fehlern ein nicht-nuller Ausgangswert angezeigt wird. Wo der Agent keinen Unterschied zwischen Erfolg und Misserfolg erkennen kann, kann es der „Judge“ genauso wenig.
- Wählen Sie eine begrenzte Aufgabe mit einem klaren Endpunkt. Ein unzuverlässiger Test, eine kleine Migration oder eine Lint-Reinigung eignen sich dafür. Vermeiden Sie alles, bei dem das Erreichen des Ziels vom Ermessen abhängt.
- Formulieren Sie es als /goal mit einer Grenze. Verwenden Sie einen konkreten Befehl und nicht eine vage Beschreibung – beispielsweise einen headless-Aufruf mit einer Obergrenze von 15 Schritten, einer Bedingung für die Authentifizierungstests, einem Null-Ausgangswert des Testbefehls sowie einem Stopp nach 15 Schritten.
Bis zum Ende der Woche gibt es echte Arbeit, die noch niemand eingegeben hat, eine Schleife, die sich selbst überprüft und korrigiert, sowie eine Obergrenze, die verhindert, dass sie in einen Abgrund stürzt. Das ist die gesamte Übung in Miniaturform.
Die Erklärung, was eine Schleife ist, hat nichts mit dem Untergang des Prompt-Engineerings zu tun. Es geht darum, den Ablauf der Schleife zu verstehen: Man schreibt die Schleife einmal, fügt eine echte Überprüfung sowie wiederverwendbare Fähigkeiten hinzu, setzt eine Obergrenze, damit sie stoppt, und nutzt die dadurch freigewordene Aufmerksamkeit, um zu entscheiden, was gebaut werden soll. Steinberger und Cherny beschreiben dasselbe Konzept aus zwei Perspektiven, und die „Haupteingangstür“ heute ist ein Slash-Befehl.
Verwandte Literatur
- Praktische Notizen: 21 agentebasierte Designmuster einfach erklärt — Detaillierte Anleitung zu den Praktischen Notizen: 21 agentebasierte Designmuster einfach erklärt, einschließlich Verträgen, Überprüfungen sowie Code-Blöcken, die Teams beim Einsatz dieser Muster nutzen können.
- Ein Sandbox für Claude Code: Isolierte Agentenumgebungen auf einem Laptop — Wie eine lokale Kubernetes-Sandbox Coding-Agenten eine eigene Maschine, eingeschränkte Zugangsdaten, eine Ausgangs-Allowliste sowie einen Überblick über die gesamte Agentenflotte bietet, zusammen mit den Vor- und Nachteilen von Eigenentwicklung gegenüber Kauflösungen.