chat

Der chat-Namespace ist der Dialog mit deinem Vault: ein lokal laufendes Sprachmodell beantwortet Fragen, indem es selbständig durch deine Notizen sucht — Volltext-, Bedeutungs- und Beziehungs­suche, das Lesen einzelner Notizen, das Auffinden von Pfaden im Beziehungs-Graph, das Aufspüren von Lücken. Folge­fragen werden verstanden; Quellen werden mit ihrer NanoID zitiert; die Antwort tickt Wort für Wort über die Konsole.

Eine Konversation ist eine geordnete Folge von Turns (deine Frage, die Antwort, ggf. zwischen­geschaltete Werkzeug-Aufrufe). Jeder neue Turn baut auf dem vorigen auf — das Modell sieht den vollen relevanten Verlauf. Der Verlauf liegt in einem vault-lokalen Speicher unter <vault>/.apparat/conversations.sqlite; er ist nicht Teil deiner Markdown-Wahrheit, sondern ephemer und jederzeit löschbar.

Bedien­kommandos

Dialog führen:

Konversationen verwalten:

Aus dem Dialog Wissen machen:

Diagnose:

Wie der Dialog funktioniert

Beim ersten Turn baut Apparat einen System-Prompt zusammen, der dem Modell den Vault-Kontext gibt, ohne dass es dafür einen Werkzeug-Aufruf verbrennt: Anzahl der Entitäten, häufigste Typen, dominante Sprache(n), die Verhaltens­regeln (Quellen zitieren, in der Sprache der Inhalte antworten, den Vault nicht verändern dürfen) und die Beschreibung der verfügbaren Werkzeuge.

Dieser Snapshot wird einmal beim Start einer Konversation eingefroren und über deren Lebens­dauer nicht geändert. Neue Notizen, die du zwischen Start und Folge-Turn anlegst, bleiben damit für diese Konversation unsichtbar, bis du eine neue startest. Das ist Absicht: das Modell­verhalten bliebe sonst zwischen Turns inkonsistent.

Während der Antwort­generierung darf das Modell sieben Werkzeuge aufrufen — alle nur lesend:

Welches Werkzeug das Modell einsetzt, entscheidet es selbst auf Basis der Frage. Du siehst auf der Konsole nur einen knappen [tool: <name>]-Marker; mit -v (--verbose) erscheint zusätzlich nach jedem Aufruf ein [tool: <name> → ok]- oder [tool: <name> → <fehler>]-Hinweis und am Ende ein [tokens: prompt=<n>, response=<m>]-Footer.

Read-Only-Verbot

Kein Werkzeug schreibt in deinen Vault. Schreib­vorschläge, die das Modell formuliert („soll ich diese Person als Entität anlegen?"), bekommst du als Antwort­text — die Umsetzung läuft dann über die regulären Vault-Kommandos wie entity new oder entity link. Auch chat export und chat synthesize gehen denselben Schreibpfad: sie bereiten eine Notiz vor und legen sie nach deiner Bestätigung über denselben Mechanismus an, den auch entity new benutzt.

Das ist eine bewusste, harte Trennung: das Sprachmodell darf vorschlagen, niemals ausführen. Damit bleibt deine Markdown-Sammlung die Wahrheit — auch dann, wenn du dem Dialog einmal zu sehr vertraust.

Voraussetzungen

chat ping bestätigt in einer Zeile, ob der Sprachmodell-Dienst läuft und das richtige Modell geladen ist.

Container-Delegation

Die Kommandos, die mit dem Sprachmodell sprechen — chat ping, chat start, chat continue, chat ask, chat synthesize und chat retitle — werden vom apparat-Wrapper automatisch im Container ausgeführt. Du tippst sie auf dem Host wie jedes andere Kommando; die Delegation ist transparent.

Die rein lokal arbeitenden Kommandos — chat list, chat show, chat delete und chat export — laufen direkt auf dem Host. Sie greifen nur auf die vault-lokale conversations.sqlite und (bei export) auf den Graph zu.

Privatsphäre

Konversations-Inhalte verlassen weder deinen Host noch dein LAN. Der Compose-Stack zieht keine Cloud-Endpunkte; wer den Sprachmodell-Dienst stattdessen auf einem dedizierten Inferenz-Host im LAN betreibt, bleibt in derselben Vertrauens­zone. Konversationen sind außerdem ephemer per Default — nur explizit exportierte oder synthetisierte Inhalte werden Teil des Vaults und damit Teil deiner Backup- und Sync-Kette.