
Ich war wochenlang kaum erreichbar. Kein Urlaub. Ich habe ein Produktivsystem gebaut, das Fahrzeug-Logs versteht: von der ersten Codezeile bis in den Cluster, allein, mit Claude als Team an der Seite. Hier steht, was das Ding wirklich kann, wo überall KI drinsteckt, und was es an Blut, Schweiß, Tränen und Tokens gekostet hat. Kein Buzzword-Bingo. Lieferung.
$ 1 Entwickler + Claude + clevere Pipeline = massiver Output
Das Problem: ein Fehler im Auto hinterlässt Spuren — in Gigabytes
Wenn im Fahrzeug etwas zickt, schreibt jedes Steuergerät mit. Das Ergebnis sind riesige, proprietäre Trace-Logs über mehrere ECUs hinweg, oft mehrere Gigabyte pro Ticket, in Binärformaten, die kaum jemand von Hand liest.
Die Ursache dort herauszulesen ist Spezialwissen, Geduld und Stunden. Genau diese Arbeit macht der LogAnalyzer. Keine Blackbox, die eine Antwort ausspuckt, sondern ein Analyst, der jeden Schritt begründet und jede Aussage belegt.
Eine Pipeline, kein Prompt
Das Herz ist keine einzelne KI-Anfrage, sondern eine Kette. Rohdaten werden erst lesbar und geroutet, dann untersucht ein agentischer Investigator den Fall mit echten Werkzeugen, danach prüfen deterministische Wächter das Ergebnis.
- Rohlogs — Multi-GB, mehrere ECUs, plus Video & Fotos
- Konvertierung — Binär-Trace → Wallclock-Zeitachse
- Routing — wählt das entscheidende Log
- Zeitanker — Vorfall-Zeit, Zeitzonen-Abgleich
- Windowing — zitierbarer Slice aus dem GB-Log
- Investigator · KI — Senior-LLM mit Werkzeugen
- Selbstkorrektur · KI — Refuter, Spec, Beleg-Gate
- Belegte RCA — jedes Zitat verifiziert
Nur die mit · KI markierten Stufen sind KI. Der Rest ist deterministische Ingenieursarbeit, damit die KI auf sauberem Boden steht.
Zwei Ebenen KI: eine ist das Produkt, eine hat es gebaut
Der Teil, der die meisten überrascht: KI steckt nicht an einer Stelle, sondern auf zwei Ebenen gleichzeitig.
Ebene 1 — KI im Produkt
| Rolle | Aufgabe | Modell |
|---|---|---|
| Senior | Führt die Untersuchung end-to-end, schreibt eigene Python-Skripte in einer Sandbox, entscheidet den nächsten Schritt selbst | Claude · agentisch mit Werkzeugen |
| Junior | Macht die günstige Grunt-Arbeit: Zeilen extrahieren, Logs filtern, damit der Senior fokussiert bleibt | kleineres, billigeres Modell |
| Vision | Liest angehängte Videos und Fotos, extrahiert Frames, rekonstruiert Bedien-Sequenzen | multimodales Modell |
| Wissen | Findet ähnliche Fälle und Spec-Wissen über Embeddings in der Vektor-DB | Embedding-Modell · RAG · Qdrant |
Ebene 2 — KI im Bauen
- Code — Pipeline-Logik, Konnektoren, Frontend, Tests, im Paar mit einem Coding-Agenten (Claude Code)
- Infra — Kubernetes-Manifeste, Helm, Netzwerk-Policies, GitOps, gemeinsam gebaut und debuggt
- Deploys — Image-Bau, Tag-Bump, Rollout-Rezept, dreifach erprobt bis es glatt lief
- Reviews — adversariale Selbst-Reviews vor jedem Merge, harte Gates statt Bauchgefühl
Ich habe dirigiert: entschieden, priorisiert, verworfen, die Richtung gehalten. Der Agent hat ausgeführt, in einer Breite, die als Einzelner sonst nicht drin ist.
Was das Ding tatsächlich kann
- Trace-Konvertierung — proprietäre Binär-Traces werden zu einer sauberen Wallclock-Zeitachse, bevor überhaupt analysiert wird.
- Agentischer Investigator — ein Senior-LLM treibt die Analyse selbst voran, schreibt und führt eigene Skripte aus, delegiert Routine an ein günstigeres Junior-Modell.
- Multimodal — sieht die angehängten Videos und Fotos, extrahiert Frames und rekonstruiert, was der Tester auf dem Display wirklich beobachtet hat.
- Deterministisches Beleg-Gate — jeder Zeitstempel, jedes Zitat muss wortwörtlich im Log stehen. Was
grepnicht findet, gilt nicht und kappt die Confidence. Null LLM-Kosten. - Selbstkorrektur — ein adversarialer Refuter versucht die Analyse zu widerlegen, ein Spec-Grounding prüft Behauptungen gegen die Connectivity-Specs, ein Fail-vs-Healthy-Diff vergleicht den kaputten mit einem gesunden Zyklus.
- Incident-Windowing — aus einem 2-GB-Log wird ein schmaler, zitierbarer Slice um den Vorfall. Streaming statt Full-Read, damit die Pipeline nicht erstickt.
- Steuergeräte-Routing — bei Connectivity- und HMI-Symptomen zielt die Pipeline auf das Head-Unit-Log, dort wo der Stack läuft, statt auf ein Nebenlog.
- Zeitanker & Zeitzonen — findet den Vorfall-Zeitpunkt im Freitext, auch in krummen Formaten, und gleicht Zeitzonen-Drift gegen die Log-Abdeckung ab.
- Twin-Detection & RAG — findet historisch ähnliche Tickets und einschlägiges Wissen aus Confluence, Jira und Specs über eine Vektor-Datenbank.
- Ehrlichkeit & Kosten-Transparenz — sagt „unklar“ statt zu halluzinieren. Zeigt pro Lauf die echten Modell-Kosten und lässt das Modell frei wählen: Azure, Anthropic oder OpenRouter.
Von selbstbewusst falsch zu belegt korrekt
Der ehrlichste Teil ist ein Fehler des Systems selbst. An einem realen Fall lieferte die Pipeline zuerst eine Diagnose, die überzeugend klang und falsch war. Genau daran haben wir sie besser gemacht, in drei Ausbaustufen.
| Stufe | Zustand | Beleg-Gate |
|---|---|---|
| Vorher | Selbstbewusst falsch: „Kein Defekt, Systemverhalten.“ Hohe Sicherheit, sauber formuliert, aber erfunden — die teuerste aller Antworten, denn sie weist einen echten Bug ab. | confidence: high · Beleg: keiner |
| Zwischen | Richtig, aber unsicher: der Mechanismus stimmte, nur waren die entscheidenden Logs zu groß, um geprüft zu werden. Also galten echte Belege als „unbestätigt“. | geflaggt · Zeugen übersprungen |
| Jetzt · live | Belegt und korrekt: Vorfall-Fenster materialisiert, jede Aussage verifiziert, die entscheidende Trace-Zeile wörtlich zitiert. | bestanden · 11/11 verifiziert |
Derselbe Fall, dasselbe Modell, dieselben Logs. Nur drei Ausbaustufen. Der Weg von Stufe 1 nach Stufe 3 ist die eigentliche Arbeit: Beleg-Disziplin, richtiges Routing und die Ehrlichkeit, „unklar“ zu sagen.
Blut, Schweiß, Tränen, Tokens
Damit kein falscher Eindruck entsteht: Der glatte Endstand steht auf Monaten an Kämpfen. Ein Auszug aus dem Kampflog.
kremer@void-main ~/loganalyzer $ cat kampflog.txt
> gateway: /v1/chat/completions → 404. Azure spricht nur Responses-API.
Eigenen Transport gebaut. 200.
> egress: Cluster ist deny-by-default. Jeder LLM-Call gedroppt.
Network-Policy nachgezogen, Host freigeschaltet.
> deploy: ImagePullBackOff. Outage. 3× rollback.
Cache-Kohärenz zwischen API- und Worker-Pod gefixt.
> box: Norton-MITM blockt pip, npm, playwright.
Binaries vendored, Builds reproduzierbar.
> logs: 3-GB-Single-File. py7zr kotzt, Full-Read killt die Pipeline.
Streaming-Slicer gebaut.
> cluster: CFS-Throttling → Liveness-Probe killt den Pod mitten im Lauf.
Limits gehoben, RCA von der Event-Loop entkoppelt.
> pipeline: halluzinierte RCA. „Kein Defekt“, selbstbewusst, falsch.
Selbstkorrektur-Cluster nachgezogen.
> anchor: Zeit-Extraktor zu eng. Korpus-Scan über alle Tickets,
zwei blinde Fälle gefixt. live nachgewiesen.
> gates: kognitive Komplexität, Duplikat-Erkennung, statische Analyse.
Jeder Merge musste durch.
> repeat × dutzende Increments, über Monate, Token um Token. Endstand: live.
Kein Heldenepos. Nur der ehrliche Preis von „läuft in Produktion“.
Fünf Rollen, ein Mensch, ein Agent
Das Ungewöhnliche ist nicht ein einzelner Teil, sondern die vollständige Fläche, die sonst auf ein Team verteilt ist.
- Produkt & Analyse-Logik — die agentische RCA-Pipeline mit Selbstkorrektur: Konvertierung, Routing, Zeitanker, Windowing, Beleg-Gate, Fail-vs-Healthy. Der Kern.
- Build & Qualität — Test-Suites plus harte CI-Gates: statische Analyse, kognitive Komplexität, Duplikat-Erkennung, reproduzierbare Container-Builds.
- Cloud-Infrastruktur auf Azure — Kubernetes von Grund auf: Netzwerk-Policies, Ressourcen-Tuning, Storage, Secrets, ein dedizierter Worker für die Analyse-Last.
- Deployment & Ops — GitOps mit self-heal: Merge, Image, Tag-Bump, der Cluster gleicht sich selbst ab. War nicht immer glatt. Am Ende dreifach erprobt.
- Nutzer & Rollout — abteilungsübergreifender Testbetrieb mit Fachleuten aus mehreren Bereichen. Echtes Feedback aus echten Tickets, direkt zurück in die nächste Iteration.
Der neue Modus: Mensch dirigiert, KI skaliert
1 Entwickler + ein KI-Agent + eine clevere Pipeline ergibt den Output eines kleinen Teams. Nicht durch mehr Rechenleistung, sondern durch jemanden, der die Richtung hält und darauf besteht, dass „belegt“ schlägt „plausibel“.
Die eigentliche Erkenntnis dieser Wochen ist nicht, dass KI Code schreiben kann. Das war klar. Spannend ist, dass Verantwortung, Urteil und Anspruch beim Menschen bleiben, und genau das den Unterschied macht: beim Tool, das lieber „unklar“ sagt als selbstbewusst danebenzuliegen, und in der Arbeitsweise, die aus einer Person ein Team macht.
Wenn dich interessiert, wie aus Rohlogs belegte Diagnosen werden, oder wie sich „Einzelperson plus Agent“ in der Praxis anfühlt: Ich freue mich über den Austausch.