2026-05-26 · StudioMeyer
Wie wir neun KIs sechzig Tage am Leben halten, ohne dass alles crasht
Wie LangGraph die Runden plant, Temporal das Ganze trotz Ausfällen am Leben hält, und Langfuse uns zeigt, was wirklich passiert ist.
Eine einzelne Polis-Saison sind siebenhundertzwanzig Monate Spielzeit. Jeder Monat beinhaltet neun Bürger, die je vier Entscheidungen treffen, plus einen Chronisten, der am Ende eine kurze Geschichte schreibt. Das sind etwa dreiunddreißigtausend Entscheidungs-Calls pro Saison, und jeder Call ist ein echtes Gespräch mit einem Claude-Modell, das zehn Sekunden dauern oder komplett ins Timeout laufen kann. Wenn nur einer dieser Calls still crasht, kann die ganze Saison aus dem Rhythmus geraten.
Drei Software-Bausteine halten das Ganze am Leben und beobachtbar. LangGraph plant die Runden. Temporal hält den Run durch Ausfälle hindurch am Laufen. Langfuse zeichnet alles auf, damit wir sehen können was wirklich passiert ist.
LangGraph plant die Runden
LangGraph ist eine kleine Bibliothek zum Schreiben von Workflows, die durch einen Graph aus Schritten laufen. Jeder Schritt nimmt den aktuellen Weltzustand, macht etwas damit und reicht einen neuen Zustand an den nächsten Schritt weiter.
Für Polis ist der Graph von der Form her simpel. Zuerst passiert Decay, bei dem die Pool-Ressourcen ein bisschen schrumpfen und die Stimmung kippt. Dann feuern Krisen- oder Besucher-Events, falls die Bedingungen passen. Dann ist jeder der fünf aktiven Bürger nacheinander dran, mit eigener Persönlichkeit und eigenem Gedächtnis. Dann schaut der Chronist drüber, was passiert ist, und vergibt einen Score. Dann startet der nächste Monat.
LangGraph lässt uns jeden dieser Schritte als kleine Funktion schreiben und verbindet sie automatisch. Wenn der Graph läuft, streamt er nach jedem Schritt den neuen Zustand raus, und genau das ist es, was den Live-Feed auf der Website das zeigen lässt, was gerade passiert, während es passiert.
Temporal hält den Run am Leben
Eine sechzigtägige Simulation ist eine lange Zeit für irgendwas, durchgehend zu laufen. Server rebooten. Netzwerk-Verbindungen brechen ab. Claude-Calls dauern gelegentlich zu lang und werden gekillt. Wenn wir den LangGraph-Workflow einfach als nacktes Node-Skript laufen lassen würden, würde jeder einzelne dieser Fälle den Run beenden.
Temporal ist eine Workflow-Engine, die lang laufende Prozesse durable macht. Jeder Polis-Run wird zu einem Temporal-Workflow. Der Workflow ruft die LLMs nicht direkt auf. Stattdessen bittet er Temporal, eine Activity laufen zu lassen, und die Activity ist es, die die LLMs anruft. Wenn die Activity scheitert oder ins Timeout läuft, wiederholt Temporal sie automatisch mit Backoff. Wenn der Server mitten im Run rebootet, macht Temporal genau da weiter, wo es aufgehört hat, sobald er wieder da ist.
Für Polis im Besonderen ist jeder Polis-Run als eine große Activity verpackt, mit einer Stunde Zeitlimit und einem fünfminütigen Heartbeat. Der Heartbeat ist die Activity, die Temporal sagt "ich lebe noch, wiederhole mich nicht". Wenn fünf Minuten ohne Heartbeat vergehen, nimmt Temporal an, die Activity ist tot, und startet einen neuen Versuch. Maximal zwei Versuche, dann gibt es auf und markiert den Run als gescheitert. Dieses letzte Geländer verhindert, dass wir Rechenzeit auf einen wirklich kaputten Run verbrennen.
Temporal hat auch eine Schedule-API, um Runs auf einer Kadenz zu triggern. Statt sich auf den System-Cron zu verlassen, lebt der Schedule selbst innerhalb von Temporal und überlebt Server-Reboots. Aktuell starten wir eine neue Saison manuell, aber der Weg zu vollständig unbeaufsichtigt ist nur ein Schalter umlegen.
Langfuse zeichnet alles auf
Wenn in einem Run mit dreiunddreißigtausend Calls etwas schiefgeht, ist der genaue schlechte Call ohne Tooling unmöglich zu finden. Langfuse ist das Tool, das wir dafür nutzen. Jeder einzelne Claude-Call wird geloggt, mit vollem Prompt, voller Antwort, Latenz, Token-Zahl, Kosten. Wir können nach Bürger suchen, nach Monat, nach Fehlertyp. Wir können genau sehen, was einem Bürger gesagt wurde, und was er sich daraufhin entschieden hat zu tun.
Genau so werden wir irgendwann auch die Forschungsfrage beantworten, ob größere Modelle wirklich bessere Leben führen. Langfuse hält alle Daten nebeneinander, also ist ein Vergleich der drei Opus-Bürger mit den drei Sonnet- und den drei Haiku-Bürgern nur eine Datenbank-Abfrage.
Warum drei Tools statt einem
Jedes Tool macht etwas, was die anderen nicht können. LangGraph denkt auf der Ebene von Game-Logik, welcher Schritt kommt nach welchem. Temporal denkt auf der Ebene von Überleben, welche Retry-Policy gilt wann. Langfuse denkt auf der Ebene von Beobachtung, was hat das Modell um drei Uhr siebenunddreißig morgens am Tag zwölf eigentlich gesagt. Alle drei mit einem Tool zu machen würde bei jedem Kompromisse bedeuten.
Der ganze Stack läuft auf einem einzelnen kleinen Server in Deutschland. Die Polis-Engine selbst sind ein paar hundert Zeilen TypeScript. Die Orchestrierung ist das, was die kleine Engine wie eine ernsthafte Simulation wirken lässt, die tatsächlich zwei Monate laufen kann, ohne dass jemand zuschaut.