Was noch kommt
Apparat ist nach dem Schichtenmodell aufgebaut — jede Schicht funktioniert für sich, jede höhere ergänzt die darunterliegende. Heute laufen die Schichten 0 bis 3 vollständig; die Web-Oberfläche der Schicht 4 ist in Teilen nutzbar — siehe Bedienung in der Web-Oberfläche. Diese Seite skizziert, was darüber hinaus noch kommt.
Status der Schichten
| Schicht | Thema | Status |
|---|---|---|
| 0 | Dateien und Kommandos | Fertig |
| 1 | Parser und Graph | Fertig |
| 2 | Semantische Suche | Fertig |
| 3 | KI-Dialog | Fertig |
| 4 | Web-Oberfläche | Teilweise nutzbar |
Jede Schicht funktioniert ohne die darüber liegenden. Wenn Schicht 2 nicht läuft, gibt es trotzdem Schicht 1. Wenn Schicht 1 nicht läuft, gibt es trotzdem Schicht 0. Die unterste Schicht verlangt nichts weiter als einen Texteditor und deinen Willen.
Schicht 1 — Parser und Graph (fertig)
Was da ist:
- Apparat parst CommonMark-Markdown und liest aus dem Frontmatter Beziehungen heraus. Daraus entsteht ein Graph aus Entitäten und Verbindungen.
- Der Graph wird pro Vault lokal gespeichert und ist jederzeit aus den Markdown-Dateien rekonstruierbar.
graph rebuildbaut den Index neu auf,graph watchhält ihn inkrementell aktuell,graph statszeigt die Zahlen auf einen Blick.vault validateprüft den Graph auf bekannte Inkonsistenzen — verwaiste Verlinkungen, defekte Beziehungen, hängengebliebene Asset-Verweise.- Mehrschritt-Operationen wie
entity renameundasset renamesichert ein Recovery-Mechanismus gegen Abbrüche ab. Beim nächsten Aufruf wird ein begonnener Vorgang sauber zu Ende geführt. - Beim Umbenennen einer Entität oder eines Assets schreibt Apparat die Verweise in anderen Notizen aktiv mit um — du musst nichts manuell nachziehen.
- Beim Speichern einer Notiz bringt
entity editeingebettete Pfade in die kanonische Form.
Der Graph ist die Grundlage für alles Folgende. Er muss jederzeit verlustfrei aus den Markdown-Dateien rekonstruierbar sein — das ist Teil der Zukunftssicherheits-Garantie.
Schicht 2 — Semantische Suche (fertig)
Was da ist:
- Jede Entität wird in einen Bedeutungs-Vektor übersetzt. Lange Notizen werden in Abschnitte zerlegt; auch Beziehungen und freie Frontmatter-Felder bekommen eigene Vektoren, sodass Fragen wie „wer arbeitet bei Tollwerk" oder „wer wohnt in Berlin" direkt im Bedeutungs-Raum gefunden werden, selbst wenn die Notiz die Antwort nicht wörtlich enthält.
- Der Vektor-Index wird pro Vault lokal gespeichert. Eine Ähnlichkeitssuche liegt im Millisekunden-Bereich.
- Den Embedding-Dienst stellt Apparat als Container mit. Auf Wunsch lässt er sich auch auf einem dedizierten Inferenz-Host im LAN betreiben (etwa auf einer NVIDIA-DGX-Spark-Box). Kein Datenabfluss, kein Cloud-Aufruf.
- Neue oder geänderte Notizen werden im Hintergrund nachindexiert, ohne dass du etwas tun musst.
entity searchbietet drei Suchmodi: Volltext (Standard), Bedeutungssuche (--semantic), eine Kombination aus beiden (--hybrid).entity similarfindet zu einer Notiz die thematisch nächsten Entitäten — ohne dass du einen Suchtext brauchst.- Wartung und Diagnose laufen über die
vector …-Kommandos.
Nützlich vor allem dann, wenn du viele Notizen hast und nicht mehr weißt, wie du sie benannt hast, dich aber an das Thema erinnerst.
Schicht 3 — KI-Dialog (fertig)
Schicht 3 besteht aus drei eigenständigen Komponenten, die unabhängig voneinander entwickelt werden und auch unabhängig voneinander ausfallen dürfen:
Schreibassistenz (fertig). Während du eine Notiz schreibst, identifiziert ein klassisches Spracherkennungs-Modell (kein Sprachmodell, kein Cloud-Aufruf) die genannten Personen, Orte und Organisationen und gleicht sie gegen den Vault ab. Das Ergebnis sind Vorschläge in drei Klassen: bekannter Treffer („das ist diese existierende Entität, verlinken?"), nahe Übereinstimmung („meinst du …?"), neuer Vorschlag („als person anlegen?"). Du entscheidest pro Vorschlag — Apparat führt nichts selbst aus. Im Terminal verfügbar als ner suggest; im Editor der Web-Oberfläche erscheinen die Vorschläge im Tab Beziehungen, während du schreibst — siehe Vorschläge beim Schreiben.
Vokabular-Konsolidierung (fertig). Wenn du einen neuen Beziehungstyp arbeitet_bei einführst, obwohl works_at bereits existiert, fragt Apparat: „Meinst du das selbe?" — analog für Entitätstypen und Tags. Das verhindert, dass dein Vokabular über Jahre zerfasert. Inline beim Anlegen oder Bearbeiten einer Notiz, oder explizit über die Audit-Kommandos consolidate type und consolidate relation. Mehr zu den Verfahren dahinter: Ähnlichkeit.
Chat (fertig). Der eigentliche Dialog mit dem Vault: ein lokales Sprachmodell beantwortet Fragen, indem es selbständig durch deine Notizen sucht — Suche, Ähnlichkeit, Beziehungs-Nachbarschaft, Lesen einer Notiz, Pfad-Suche im Graph („wie hängen X und Y zusammen"), Lücken-Suche („welche Personen haben keinen Arbeitgeber-Eintrag"). Folgefragen werden verstanden; Quellen werden mit ihrer NanoID zitiert; die Antwort kommt Wort für Wort. Die Bedienkommandos sind unter chat versammelt: chat start eröffnet eine Sitzung, chat continue setzt sie fort, chat ask ist der skript-taugliche Single-Shot.
Konversationen sind ephemer: sie liegen in einem vault-lokalen Speicher, nicht in den Markdown-Dateien. Wer einen Dialog behalten will, schreibt ihn mit chat export als Notiz vom Typ conversation in den Vault. Wer nur die fachliche Substanz einer einzelnen Antwort als eigene Notiz festhalten will, nutzt chat synthesize: das Modell formuliert die Antwort kontextfrei um, schlägt Titel und Typ vor und schreibt eine Notiz mit Quellenangaben — der eigentliche Akkumulations-Loop, in dem Dialog zu Wissen wird.
Das Sprachmodell läuft lokal oder im eigenen LAN — wahlweise im Container oder auf einem dedizierten Inferenz-Host. Kein Cloud-Aufruf, kein Datenabfluss. Lokale Souveränität ist hier nicht ein Feature, sondern Voraussetzung.
Erweiterungen, die offen bleiben. Die drei Säulen sind funktional fertig, einige Komfort- und Tiefen-Erweiterungen warten aber bewusst auf späteren Bedarf — etwa Beziehungs-Erkennung beim Schreiben („Maria arbeitet bei Tollwerk" als implizite Kante), Inverse-Pärchen-Vorschläge in der Konsolidierung („zu works_at gehört employs"), oder Schema-Lernen pro Typ („Personen tragen üblicherweise auch ein email-Feld"). Die vollständige Liste mit Begründung pro Punkt liegt im Backlog des Projekts, Abschnitt Schicht 3.
Schicht 4 — Web-Oberfläche
Was die Web-Oberfläche heute leistet, beschreibt das eigene Kapitel Bedienung in der Web-Oberfläche. Diese Skizze nennt, was über den heutigen Stand hinaus geplant ist:
- Ein größerer Markdown-Editor mit Live-Vorschau anstelle der heutigen Quellansicht.
- Eine KI-Seitenleiste im Editor, die während des Schreibens erkannte Entitäten zeigt, Verknüpfungsvorschläge macht und Konsolidierungs-Hinweise gibt.
- Ein Beziehungen-Tab, der ausgehende und eingehende Verbindungen einer Notiz auflistet, mit Klick zur Zielentität.
- Eine interaktive Visualisierung der Beziehungs-Nachbarschaft rund um eine Notiz.
- Eine browserseitige Suche über alle Notizen einer Sammlung — heute geht das über
entity search. - Direkter Zugriff auf den Chat aus dem Editor heraus — Fragen stellen, während du schreibst.
- Auto-Archivieren externer Quellen — eine URL, die du als externen Verweis anlegst, wird auf Wunsch zur Repräsentation, ohne dass du den Browser dazwischenschaltest.
- Apparat als installierbare App auf Mobilgeräten. Auf Android kommt Apparat dadurch ins System-Share-Sheet: Foto in der Galerie aufnehmen, „Teilen" wählen, Apparat antippen — die Datei landet im Anlage-Flow. Auf iOS-Geräten ist dieser Weg nicht möglich, weil Safari die nötige Technik nicht anbietet; dort bleibt der manuelle Weg über den Browser.
Schicht 4 ist die, in der sich Apparat für die meisten Nutzer „anfühlt". Sie ist aber auch die optionalste — wer die Kommandozeile oder einen externen Editor bevorzugt, kommt ohne Schicht 4 vollständig aus.
Offene Entwurfsfragen
Einige Themen warten auf höhere Schichten:
- Synchronisation zwischen mehreren Geräten — bisher Git, rsync, Syncthing in der Verantwortung des Nutzers.
- Geteilte Vaults für mehrere Nutzer mit Zugriffssteuerung.
Zum Projekt
Apparat ist ein rein privates, nicht-öffentliches Projekt. Der Quellcode samt Spezifikation liegt unter code.tollwerk.net/joschi-kuphal/apparat; das Repository ist nicht für Außenstehende zugänglich, Beiträge von außen sind nicht vorgesehen.