// Fallstudie
Zwei LLM-Wikis: eine Methode, zwei Domänen
Wie hält man Wissen aktuell, das ein Agent aus hunderten Quellen zusammenträgt? Indem man es wie Code behandelt: unveränderliche Quellen, ein Compiler, ein Build-Target und Tests.
Die übliche Art, mit einem Sprachmodell über Dokumente zu arbeiten, ist Retrieval: Bei jeder Frage sucht das System passende Stellen und leitet die Antwort neu her. Wissen sammelt sich dabei nicht an.
Das LLM-Wiki-Muster dreht das um. Ein Agent liest jede Quelle einmal und kompiliert sie in eine Wissensbasis aus verlinkten Markdown-Seiten. Neue Quellen ergänzen bestehende Seiten, statt neben ihnen zu liegen. Das Wissen wächst mit jeder Sitzung.
Ich habe das Muster in zwei sehr unterschiedlichen Domänen angewendet: in meinem Beruf für Kompetenzmodelle der Primarschulmathematik und privat für Forschung zu Diffusion Language Models (dLLMs). Gerade der Vergleich zeigt, was an der Methode trägt und was nicht.
Die Methode: ein Wiki wie ein Compiler
Beide Wikis folgen demselben Grundsatz, den das Systemprompt des Mathe-Wikis als Analogie festhält:
- Quellcode sind die Quellen, und sie sind read-only. Ist eine Quelle falsch, meldet der Agent das, statt sie still zu korrigieren.
- Der Compiler ist der Agent. Er extrahiert, normalisiert und verlinkt.
- Die Zwischenrepräsentation sind atomare Konzeptseiten, wiederverwendbar über alle Themen.
- Das Build-Target sind die Artefakte, für die das Wiki existiert: Kompetenzkarten im einen Fall, Design-Proposals im anderen.
- Die Test-Suite ist Lint.
Die Arbeitsteilung ist in beiden Wikis gleich: Ich kuratiere die Quellen, setze die Themen und treffe die fachlichen Entscheide. Der Agent übernimmt die Buchhaltung. Eine Regel steht in beiden Systemprompts fast wortgleich: Frag, bevor du etwas annimmst. Ein unbekannter Fakt wird als offene Frage markiert, nie erfunden.
Domäne 1: Kompetenzkarten für Lehrplan-21-Mathematik
Der Anlass ist mein Beruf. Als Projektleiter einer Mathematik-Lernplattform für die Primarschule brauche ich Kompetenzmodelle nach der Competence-based Knowledge Space Theory (CbKST). Sie sind die Grundlage der Lerndiagnose: Die Plattform schätzt daraus, was ein Kind schon kann, und schlägt vor, was es als Nächstes üben soll. Wie das technisch funktioniert, beschreibt die Fallstudie zur Lernplattform.
Die Fachdidaktik-Expertinnen und -Experten im Projekt arbeiten nicht mit CbKST. Die gesamte Modellierung liegt deshalb bei mir allein. Es geht um 234 Lehrplan-Kompetenzen über vier Schuljahre, aber die Zahl ist nicht der Grund für den Agent. Die Modellierung ist eine Aufgabe unter vielen neben der Gesamtprojektleitung, und von Hand würde ich sie auch bei 100 Kompetenzen nicht schaffen. Deshalb baue ich die Modelle mit einem Agent und klaren Regeln.
Eine Kompetenzkarte ist ein gerichteter azyklischer Graph von rund 15 bis 20 Fertigkeiten. Die Kanten sind Surmise-Beziehungen: Kann ein Kind B, darf man annehmen, dass es A kann. Kanten können UND (alle Voraussetzungen nötig) oder ODER (alternative Lernwege) sein.
// Quellen, Konzepte, Karten
Zwei Stufen, die mittlere wird nie übersprungen
Eine Karte wird aus bestehenden Konzepten zusammengesetzt, nie direkt aus einer Quelle geschrieben. So hat jede Fertigkeit genau eine Seite mit Herkunft.
Quelle kuratiert
- Quellen (read-only) Lehrplan 21 als JSON, Fachdokumente, 151 Web- und Buch-Snapshots
- concepts/ 364 atomare Fertigkeiten mit Herkunft, Fehlvorstellungen, Grundvorstellungen
- skill-maps/ 39 Kompetenzkarten als DAG, aus bestehenden Konzepten zusammengesetzt
- lint Python-Skript: Zyklen, Ebenen, Herkunft, Registry, Entwurfsregeln
- Exporte Deutsche Karten-Exporte, Frontend-Daten, Heft-Planung
Karte zur Prüfung bereit
Jede Konzeptseite hält fest, was ein Kind können muss, woran man Beherrschung erkennt, welche Fehlvorstellungen typisch sind und auf welche Lehrplan-Kompetenzen und Autoren sie sich stützt. Die Beziehungen sind durchgehend n:m: 70 Konzepte decken mehr als eine Lehrplan-Kompetenz ab, und ein Konzept gehört jeder Karte, die es braucht.
Zwei Karten sind final und als deutsche Exporte abgelegt. Die übrigen 37 hat ein Agent in einem einzigen Nachtlauf vom 15. auf den 16. September entworfen, von der Literaturrecherche bis zur Karte. Am Morgen lag ein Bericht bereit, der alle offenen Entscheidungen nach Art gruppierte. Diese 37 Karten sind Entwürfe. Die fachliche Prüfung steht noch aus.
// Das Systemprompt als Gedächtnis
Regeln, die aus Fehlern entstanden sind
Das Systemprompt ist auf 915 Zeilen gewachsen. Fast jede Regel verweist auf einen Fehler, der schon einmal passiert ist.
Drei Beispiele:
- Die Matrix wird immer ganz geprüft. Der Lehrplan 21 ordnet Kompetenzen in einer Matrix aus Kompetenzbereichen und Handlungsaspekten. Beim ersten Durchgang zum Thema Geld extrahierte der Agent nur die Rechen-Kompetenzen und schob «Preise grafisch darstellen» still einem späteren Daten-Thema zu. Seither muss jeder Ingest alle drei Handlungsaspekte jedes berührten Bereichs prüfen, und «gehört zu einem anderen Thema» gilt allein nicht als Begründung.
- Entscheidungen kommen als Tabelle. Rückfragen, die in Prosa steckten, habe ich übersehen. Heute bekommt jede Entscheidung eine eigene Tabelle mit Optionen, Trade-offs, Konsequenzen und genau einer Empfehlung.
- Entwürfe sind nie Expertenwissen. Wo kein fachdidaktisches Dokument existiert, darf der Agent einen Lernbaustein entwerfen. Er trägt dann die Kennung «Entwurf, Agent+Mensch», und das Lint-Skript bricht ab, sobald ein Entwurf «(Experten)» für sich beansprucht.
Zur Ehrlichkeit über die Herkunft: Jedes der 364 Konzepte führt neben Fachliteratur auch «Claude (agent expertise)» als Grundlage auf. Die Überlegungen des Agents prägen jede Seite mit, und das Wiki sagt das offen, statt es hinter Literaturzitaten zu verstecken.
// 0 Fehler, 16 Warnungen
Lint als Test-Suite
Ein Python-Skript prüft nach jedem Schritt Struktur, Herkunft und Entwurfsregeln. Was es nicht entscheiden kann, meldet es als Warnung an mich.
Das Lint-Skript prüft unter anderem: Jede Karte ist azyklisch und von der Wurzel aus erreichbar, Kanten zeigen nur aufwärts durch die Lernstufen, jede referenzierte Fertigkeit existiert, jede Lehrplan-ID gibt es wirklich, jede Quelle ist als Snapshot vorhanden und jede Autorenangabe ist in einer Registry aufgelöst.
Der letzte Lauf endet mit 0 Fehlern und 16 Warnungen. Die Warnungen sind bewusst keine Fehler: 11 davon betreffen Fertigkeiten, für die es nach den pädagogischen Regeln keinen zulässigen Weg zur Diagnose gibt. Das muss ein Mensch beurteilen, nicht ein Skript.
Rund um das Wiki sind weitere Build-Targets entstanden: ein Frontend in SvelteKit, das Themen, Karten mit ihren UND/ODER-Knoten und die offenen Entscheidungen als interaktiven Graphen zeigt. Die Daten erzeugt ein Skript direkt aus dem Repo. Das Container-Image baut Pokkum, das Base-Image ist per pokkum.lock gepinnt.
// adr
Urteilsfragen immer mit zwei Modellen parallel
finalcontext
Beim ersten Entwurf eines Lernbausteins bearbeiteten Haiku, Sonnet, Opus und Fable dieselbe Aufgabe mit identischem Prompt: Welche Grundvorstellungen braucht das Thema Geld?
decision
Audits gegen eine Spezifikation übernimmt Haiku. Die Suche nach Lücken bekommen immer Opus und Fable parallel, und beide wissen, dass Uneinigkeit erwünscht ist.
gains
- Haiku schlug null Ergänzungen vor. Richtig für ein Audit, falsch, wenn gerade die Lücke der Punkt ist.
- Drei der vier Modelle kritisierten unabhängig voneinander nicht die Einträge, sondern die Felddefinition selbst. Daraus wurden drei getrennte Felder. Das war das wertvollste Ergebnis, und niemand hatte danach gefragt.
costs
- Doppelte Kosten und mehr Lesearbeit beim Zusammenführen.
consequences
- Bei der strittigen Frage trugen drei von vier Modellen etwas zur finalen Formulierung bei. Kein einzelnes hätte sie geliefert. Entschieden habe ich.
Domäne 2: Forschung zu Diffusions-Sprachmodellen
Das zweite Wiki ist privat und älter. Es sammelt Forschung zu Diffusion Language Models (dLLMs). Diese erzeugen Text nicht Token für Token von links nach rechts, sondern verfeinern ganze Blöcke parallel. Das Ziel: optimierte Metal-Kernels für Apple Silicon, zuerst für das Modell LLaDA2.1.
Die Kette ist länger als im Mathe-Wiki. Aus Quellen werden Konzepte, aus mehreren Konzepten ein Proposal für ein Kernel-Design, und jedes Proposal braucht einen Validierungsplan, bevor es zum Experiment wird.
Paper im Inbox-Ordner
- Ingest 34 PDFs in 01-Inbox, unveränderlich
- Source-Notes 34 Notizen: Claims, Mechanismen, Hardware-Folgen
- Konzepte 118 Seiten mit Abschnitt «Apple Silicon implications»
- Proposals 2 Entwürfe, beide mit Validierungsplan
- Experimente Im Wiki: 0 Seiten. Gelaufen sind sie in einem separaten Repo
Ergebnis zurück ins Wiki
// sourced, inferred, speculative
Unsicherheit als Pflichtfeld
Jede Aussage in einem Proposal ist entweder belegt, abgeleitet oder spekulativ, und das steht dabei. Widersprüche zwischen Papern werden festgehalten, nicht aufgelöst.
Ein Beispiel aus dem ersten Proposal, einem Metal-Kernel nach dem Elastic-Cache-Verfahren:
- Sourced: Die Drift der KV-Caches nimmt über die Layers monoton zu. Das belegt das Paper, allerdings für andere Modelle, nicht für LLaDA2.1.
- Inferred: Auf CUDA-Hardware gefundene Parameter sind ein brauchbarer Startpunkt für Apple Silicon, müssen aber neu abgestimmt werden.
- Speculative: Eine feinere Prüfung pro Token könnte Veraltung erkennen, die das Verfahren übersieht, zu unbekannten Kosten.
Dazu die Regel, gescheiterte Ideen zu behalten: Zeigt ein Experiment keinen Nutzen, wird das als Ergebnis festgehalten, nicht gelöscht. 84 der 118 Konzeptseiten tragen diese Markierungen ausdrücklich, die übrigen 34 nicht. Diese Lücke ist offen.
// Lint ohne Skript
Ein Audit, der dem Index vertraute
Im dLLM-Wiki ist Lint eine Checkliste für den Agent. Ein Audit übersah fehlende Seiten, weil er gegen den Index prüfte statt gegen die Dateien.
Source-Notes verlinken auf die Konzepte, die sie begründen. Ein Audit sollte finden, welche dieser Seiten fehlen, und legte 20 an. Dann fiel mir eine weitere fehlende Seite auf, die der Audit hätte finden müssen.
Die Ursache: Der Agent hatte die Links gegen die Liste in index.md geprüft statt direkt gegen die Dateien. Was im Index fehlte, war für ihn unsichtbar. Der korrigierte Audit fand 29 weitere fehlende Seiten, die Nachkontrolle noch eine. Insgesamt 51 Seiten, auf die das Wiki verwies, die es aber nicht gab.
Im Mathe-Wiki ist Lint anders gelöst: Ein Skript liest die Dateien selbst, einen Index, dem es blind vertrauen könnte, gibt es für das Skript nicht.
// Ehrlicher Stand
Die offene Stelle: der Rückfluss
Die Experimente sind gelaufen, aber nicht im Wiki. Dort steht das erste Proposal immer noch auf «idea», obwohl das Experiment es inzwischen widerlegt hat.
Aus dem Wiki entstanden im Juli 2026 ein Konzept und ein Implementierungsleitfaden für eine eigene Inferenz-Engine in Swift und Metal. Gebaut und gemessen wurde sie in einem separaten Repo: 111 Commits vom 10. bis 19. Juli 2026, entwickelt auf einem MacBook Pro M1, Zielhardware ein Mac Studio M2 Ultra.
Dort sind echte Ergebnisse entstanden, auch negative. Das erste Proposal des Wikis ist widerlegt: Die Wiederverwendung des Caches im aktiven Block hat bei LLaDA2.x eine theoretische Obergrenze von rund 4 bis 5 %, in der Umsetzung praktisch null, und erhöht gleichzeitig die Zahl der Schritte. Die geplanten Folgephasen wurden deshalb gar nicht erst gestartet. Mein Fazit nach vielen negativen Resultaten: dLLMs passen schlecht zur Architektur von Apple Silicon. Gelohnt hat sich die Übung trotzdem, gerade wegen dieser Erkenntnis.
Im Wiki ist davon nichts angekommen. 05-Experiments/ ist leer, der letzte Log-Eintrag stammt vom 4. Juli, und das widerlegte Proposal steht weiterhin auf «idea». Im Engine-Repo liegen 14 fertige Wiki-Entwürfe für die Experimente, übertragen habe ich sie noch nicht. Ein Wiki, das seine eigenen Ergebnisse nicht kennt, führt den nächsten Agent in die Irre. Das ist der nächste Schritt, und danach will ich die Resultate veröffentlichen, gerade die negativen. Wer denselben Weg prüft, spart sich so die Sackgasse.
Was sich unterscheidet
Dieselbe Methode, aber zwei Umgebungen mit unterschiedlicher Reife:
- Versionierung: Das Mathe-Wiki ist ein Git-Repo (21 Commits), das ich zusätzlich in Obsidian öffne. Das dLLM-Wiki ist ein reiner Obsidian-Vault ohne Git. Seine Geschichte steht nur in einem append-only
log.md. - Agents: Im Mathe-Wiki arbeiten Claude Code mit einem Systemprompt von 915 Zeilen und Google Antigravity (Gemini 3.1 Pro und 3.8 Flash) mit eigenen Regeln, darunter: bei pädagogisch unsinnigen Vorschlägen widersprechen, statt sie umzusetzen. Am dLLM-Wiki haben Goose, Claude und Gemini geschrieben. Es hat ein kürzeres Systemprompt für Claude (115 Zeilen plus 368 Zeilen Wiki-Regeln) und eine Instruktionsdatei für Goose.
- Lint: Im Mathe-Wiki ein Python-Skript, im dLLM-Wiki eine Checkliste für den Agent.
- Build-Target: Im Mathe-Wiki Karten, Exporte und ein Frontend, also Artefakte, die andere nutzen. Im dLLM-Wiki Proposals, die erst ein Experiment bestätigt.
- Wer entscheidet: In beiden Fällen ich. Im Mathe-Wiki sind es didaktische Entscheide, im dLLM-Wiki Design-Entscheide, die der Agent vorher in einem Interview mit mir abgefragt hat.
Das Mathe-Wiki ist das jüngere und das strengere: versioniert, mit Lint als Skript und einem deutlich längeren Regelwerk.
Grenzen und offene Fragen
- Entwürfe sind keine geprüften Modelle. 37 von 39 Karten sind ungeprüfte Agent-Entwürfe. Die Abdeckung von 96 % zählt sie mit. Sie sagt, dass eine Kompetenz in einer Karte auf einer Lernstufe unterrichtet wird, nicht, dass die Karte fachlich stimmt.
- Ich bin der Engpass. Der Agent erzeugt in einer Nacht mehr Entscheidungsvorlagen, als ich in einer Woche prüfen kann. Die Tabellen helfen, lösen das Problem aber nicht.
- Spezifiziert ist mehr als gebaut. Die Checklisten-Operation, die aus den Konzepten Prüfpunkte für einzelne Aufgaben ableitet, ist beschrieben, eine fertige Checkliste gibt es noch nicht.
- Beide Systemprompts sind lang. 915 Zeilen sind viel Kontext, den jeder Agent bei jeder Sitzung lesen muss. Wann eine Regel ins Skript statt ins Prompt gehört, entscheide ich bisher von Fall zu Fall.
- Offene Frage: Wie gut funktioniert die Methode, wenn nicht ich allein kuratiere, sondern ein Team? Erprobt habe ich sie bisher nur als Einzelperson.
Fazit
Hat sich der Aufwand gelohnt? Für das Mathe-Wiki ja: Es liefert die Kompetenzmodelle für die Lerndiagnose, die ich sonst allein von Hand bauen müsste. Das dLLM-Wiki hat die Grundlagen für eine eigene Inferenz-Engine geliefert, seinen eigenen Kreislauf aber noch nicht geschlossen.
Was ich davon in ein Team mitbringe:
- Eine erprobte Methode, mit der Agents grosse Mengen Fachliteratur in eine nachvollziehbare, versionierte Wissensbasis überführen, inklusive Regelwerk und Lint.
- Disziplin bei Herkunft und Unsicherheit: Ich trenne Beleg, Ableitung und Spekulation, auch wenn ein Modell überzeugend klingt.
- Erfahrung darin, Agents so einzusetzen, dass Menschen die Entscheidungen behalten: Entscheidungsvorlagen, Review-Gates und mehrere Modelle als Gegenprobe.