Endlich habe ich Karpathys LLM Wiki Gist gelesen (ja, ich bin spÀt zum Hype-Zug aufgesprungen XD).
Und ehrlich gesagt, lĂ€uft die ganze Idee auf etwas ziemlich Einfaches hinaus: âaktualisierbares RAG".
1. Das Problem
Wenn LLMs mit Dokumenten arbeiten, sammelt sich nichts an. Bei jeder Abfrage ruft das Modell Textabschnitte ab, synthetisiert von Grund auf neu, vergisst. Wissen wird nie kompiliert. Und meiner Meinung nach noch wichtiger: Aus den Dialogen selbst wird fast keine nĂŒtzliche Information extrahiert.
RAG hilft teilweise (im weiteren Sinne â ein Ordner mit .md-Dateien ist auch RAG), aber die Standard-Pipeline (die jeder verwendet) hat keine eingebaute Aktualisierung, Destillation oder Selbstbereinigung. Wissen landet einmal im Index und liegt dann einfach ungenutzt herum. Diese LĂŒcke schlieĂt LLM Wiki genau.
Karpathys Umkehrung: Zwischen den Rohquellen und dir liegt ein Markdown-Wiki, das der Agent schrittweise schreibt und pflegt. Einmal kompilieren, aktuell halten.
2. Architektur: 3 Schichten

- raw/ â Quellen, unverĂ€nderlich. Der Agent schreibt hier nicht hinein.
- wiki/ â das Herz des Systems; Markdown-Seiten (EntitĂ€ten, Konzepte), die das LLM selbst schreibt und verlinkt. Im Grunde graphförmiges Wissen.
- CLAUDE.md â nur das Handbuch, wie LLM Wiki ausgefĂŒhrt wird. EnthĂ€lt: Seitenformat, Link-Konventionen, Ingest-Ablauf, Lint-Regeln. Das Ding, das Claude von einem Chatbot zu einem disziplinierten Wiki-Verwalter macht.
Ausreichend fĂŒr Hunderte von Seiten ohne zusĂ€tzliches Feintuning:

3. Operationen

Drei Operationen â man möchte sie sofort als API-Funktionen darstellen:
- Ingest -> add(source: file | list[file]). Eine Quelle ablegen -> Agent liest -> diskutiert mit dir -> schreibt Zusammenfassung -> aktualisiert Index -> bearbeitet verwandte EntitĂ€tsseiten -> hĂ€ngt an Log an. Eine Quelle berĂŒhrt 10â15 Seiten.
- Query -> search(prompt: str). Die wichtigste Operation. Beantwortet deine Frage + (DER ENTSCHEIDENDE PUNKT) speichert die Synthese automatisch wieder im Wiki als neue Seiten. Exploration summiert sich, statt in der Chat-Historie zu sterben. Im Grunde ist es add(source=dialogue) unter der Haube.
- Lint -> lint(). Keine Argumente. DurchlĂ€uft regelmĂ€Ăig das Wiki: WidersprĂŒche, verwaiste Seiten, veraltete Fakten, fehlende Querverweise. Auslöser â alle N Benutzernachrichten oder ein ZĂ€hler fĂŒr geĂ€nderte Zeilen. Einfach per /schedule anzuhĂ€ngen.
Erinnert stark an Claude Dreaming â ich denke, Dreaming ist teilweise von diesem Pattern inspiriert (obwohl der Funktionsumfang etwas anders ist).
4. Indizierung

Zwei spezielle Dateien machen das Wiki navigierbar:
- index.md â aktueller Zustand. Katalog jeder Seite mit einem Einzeiler. Der Agent liest ihn bei jeder Abfrage zuerst â das ist der minimale Kontext âWas gibt es ĂŒberhaupt in diesem Wiki?".
- log.md â Log aller Ereignisse, freiformatig. Nur-AnhĂ€ngen-Zeitleiste. Wenn die Zeilen eine konsistente Form haben (z.B. \
## [YYYY-MM-DD] ingest | titel\), lĂ€sst sich das Log sauber mit einfachen Unix-Tools durchsuchen â praktisch fĂŒr Audits.
index.md kann weiter skaliert werden (Vektorindex, BM25, GraphDB, ...) â das behandle ich in einem separaten Beitrag.
5. Zusammenfassung
So wĂŒrde ich es einordnen: Es ist keine Wahl zwischen RAG und LLM Wiki â sie sind zwei Punkte auf derselben Achse des âsich akkumulierenden GedĂ€chtnisses".
RAG muss keine Vektordatenbank sein â ein Ordner mit Markdown-Dateien ist auch RAG.
Man kann LLM Wiki also als RAG mit drei zusÀtzlichen Komponenten umformulieren:
- Eine Zusammenfassungsschicht.
- (Nahezu) freies Verfassen der Struktur auf dieser Zusammenfassungsebene.
- RegelmĂ€Ăige strukturelle ĂberprĂŒfung + Selbstverbesserung (CRON).





