Ein Agenten-Loop ist der Unterschied zwischen KI um Hilfe zu bitten und morgens mit fertiger Arbeit aufzuwachen. Die meisten Leute bauen nie einen, weil hundert Iterationen mit einem Frontier-Modell echtes Geld kosten.
Inside: das Loop-Pattern erklärt in einem Diagramm, zwei exakte Setups (Claude Code und rohe API) und die Cache-Mathe, die K3 zur Loop-Maschine macht.
Dein erster Loop läuft heute Abend für etwa 0,39 $ pro Runde.
Hier ist das komplette Setup 👇
Bevor wir eintauchen, ich teile tägliche Notizen zu KI & Vibe Coding in meinem Telegram-Kanal: https://t.me/zodchixquant 🧠

Was ein Loop eigentlich ist
Lass den Hype weg – ein Loop ist vier Schritte in Wiederholung:
1GOAL → ATTEMPT → CHECK → (better? keep : retry)2 ↑__________________________|
- Ziel: eine messbare Ziellinie, kein Gefühl. „Alle Tests bestehen“, „Seite lädt unter 1s“, „Score über 90“
- Versuch: das Modell erledigt eine Arbeitseinheit darauf zu
- Prüfung: etwas überprüft das Ergebnis gegen das Ziel. Eine Testsuite, ein Linter, ein zweites Modell
- Wiederholen: das Prüfergebnis zurückgeben, weitermachen, anhalten wenn das Ziel erreicht ist oder das Budget aufgebraucht ist
Das war's. Alles andere (Speicher, Subagenten, nächtliche Läufe) ist Dekoration auf diesem Zyklus.
Warum speziell K3: die Loop-Ökonomie
Loops lesen in jeder Runde denselben Kontext neu: die Codebasis, das Ziel, die Historie. Bei den meisten Modellen zahlst du den vollen Preis für diese Wiederholung. Bei K3 nicht:
1Turn cost = fresh_tokens × $3/M + cached_tokens × $0.30/M23Real shape (800K stable context + 50K fresh per turn):4K3: $0.24 + $0.15 = $0.39/turn5Fable 5: 850K × $10/M = $8.50/turn
Ein 50-Runden-Nacht-Loop: etwa 20 $ auf K3, etwa 425 $ auf Fable 5. Das ist kein Rabatt, das ist der Unterschied zwischen „Lauf einfach“ und „Beobachte es wie ein Luchs“.
Die eine Regel: halte deinen stabilen Kontext in jeder Runde als identisches Präfix, die Aufgabe am Ende, damit der Cache tatsächlich trifft.

Setup A: Claude Code (der 5-Minuten-Pfad)
Wenn du in Claude Code lebst, sind Loops eingebaut und K3 wird über Moonshots offizielle Konfiguration daruntergelegt:
1export ANTHROPIC_BASE_URL=https://api.moonshot.ai/anthropic2export ANTHROPIC_AUTH_TOKEN=${YOUR_MOONSHOT_API_KEY}3export ANTHROPIC_MODEL=kimi-k34export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k35export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k36export ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k37export CLAUDE_CODE_SUBAGENT_MODEL=kimi-k38export ENABLE_TOOL_SEARCH=false9export CLAUDE_CODE_AUTO_COMPACT_WINDOW=104857610claude
Dann besteht der Loop aus zwei Befehlen:
- /goal setzt die Ziellinie: „alle Tests in tests/ bestehen und die Coverage bleibt über 80%“. Claude Code arbeitet darauf hin, anstatt nach der ersten Antwort zu stoppen
- /loop macht es wiederkehrend: die Sitzung läuft nach einem Zeitplan oder bis das Ziel erreicht ist
Bestätige, dass du auf K3 bist, über /status (das /model-Menü zeigt es nicht). Das 1M-Auto-Compact-Fenster in der Konfiguration bedeutet, dass lange Loops selten komprimiert werden, was die Iterationshistorie am Leben hält.
Setup B: die rohe API-Loop (volle Kontrolle)
Für Loops außerhalb von Claude Code hier ein vollständiger minimaler Loop, OpenAI-kompatibel:
1from openai import OpenAI23client = OpenAI(4 api_key=MOONSHOT_API_KEY,5 base_url="https://api.moonshot.ai/v1",6)78# Stabiles Präfix: identisch in jeder Runde = Cache-Treffer bei 0,30 $/M9STABLE = f"""Du bist ein Coding-Agent in einem Loop.10ZIEL: alle Tests in dem folgenden Projekt bestehen lassen.11PROJEKT:12{project_dump}13REGELN:14- Eine fokussierte Änderung pro Runde15- Erkläre in 2 Zeilen, was du geändert hast und warum16- Wenn Tests bestehen, antworte genau: GOAL_REACHED17"""1819history = []20MAX_TURNS = 302122for turn in range(MAX_TURNS):23 result = run_tests() # deine Prüfung: pytest, npm test, etc.24 if result.passed:25 print(f"Fertig in {turn} Runden")26 break2728 response = client.chat.completions.create(29 model="kimi-k3",30 messages=[31 {"role": "system", "content": STABLE},32 *history[-6:], # letzte 3 Austausche, begrenzt33 {"role": "user", "content":34 f"Runde {turn}. Testausgabe:\n{result.output}\n"35 f"Behebe den nächsten Fehler."},36 ],37 )38 change = response.choices[0].message.content39 apply_change(change) # Änderung schreiben, in einen Branch committen40 history += [41 {"role": "user", "content": f"Testausgabe von Runde {turn} gegeben"},42 {"role": "assistant", "content": change},43 ]
Drei tragende Details:
- Die Prüfung ist Code, kein Gefühl. run_tests() entscheidet über den Fortschritt, das Modell bewertet sich nie selbst
- Die Historie ist begrenzt. Nur die letzten 3 Austausche; das stabile Präfix trägt den dauerhaften Kontext und bleibt cache-freundlich
- Jede Änderung geht in einen Branch. Der Loop kann 10 Mal falsch liegen, solange main es nie sieht
Absicherungen, bevor du weggehst
- Budget-Stopp: zähle Tokens pro Runde, beende den Loop bei einer Dollar-Obergrenze. MAX_TURNS reicht nicht, eine aufgeblähte Runde kann zehn normale überfressen
- Fortschritts-Stopp: wenn derselbe Test 3 Runden hintereinander fehlschlägt, anhalten und melden. Loops, die nicht konvergieren, verbrennen höflich Geld
- Ein K3-Haken: Reasoning läuft derzeit nur mit max-only, also trägt jede Runde volles Denkoutput zu 15 $/M. Halte die Runden fokussiert, einen Fehler pro Runde, und die Ausgabeseite bleibt vernünftig
Häufige Fehler
- Vage Ziele. „Verbessere den Code“ läuft endlos. Ein Loop ist nur so gut wie seine Ziellinie überprüfbar ist
- Das Modell selbst bewerten lassen. „Sieht für mich richtig aus“ ist wie Loops Müll ausliefern. Der Prüfer muss extern sein: Tests, Linter oder ein zweites Modell mit einer Bewertungsmatrix
- Den Cache brechen. Zeitstempel, zufällige IDs oder neu geordnete Dateien in deinem Präfix bedeuten, dass jede Runde zu 3 $/M statt 0,30 $/M abgerechnet wird. Identisch bedeutet identisch
- Keine Branch-Disziplin. Ein unbeaufsichtigter Loop mit Schreibzugriff auf main ist eine Horrorgeschichte mit Extra-Schritten
- Mit Nacht-Läufen beginnen. Führe deine ersten Loops unter Beobachtung aus, 10-15 Runden. Verdiene das Vertrauen, bevor du darauf schläfst
Das 15-Minuten-Setup
- Hol dir einen Moonshot-API-Key, lade innerhalb des 10-30%-Bonusfensters auf, gültig bis 11. August (3 Min.)
- Wähle Setup A oder B und verkabel es (5 Min.)
- Schreibe ein überprüfbares Ziel für eine echte kleine Aufgabe: einen fehlschlagenden Test, einen Lint-Durchlauf (2 Min.)
- Führe 10 beaufsichtigte Runden aus, beobachte wie die Prüfung die Arbeit antreibt (4 Min.)
- Notiere die Kosten. Dann entscheide, wie groß der nächste Loop wird (1 Min.)
Der Loop ist die älteste Idee der Programmierung, angewendet auf das neueste Werkzeug. K3 hat ihn nur günstig genug gemacht, um ihn tatsächlich zu nutzen.
Danke fürs Lesen!
Ich teile tägliche Notizen zu KI & Vibe Coding in meinem Telegram-Kanal: https://t.me/zodchixquant 🧠






