chat start

chat start öffnet eine neue Konversation und führt sie als interaktive Schleife: Du tippst eine Frage, Apparat streamt die Antwort Wort für Wort, anschließend kommt der nächste Prompt. Eine leere Eingabe (nur Enter) schließt die Konversation.

Wofür ist das?

Aufruf

apparat chat start
apparat chat start --vault=demo
apparat chat start -v
Option Bedeutung
`--vault=<name path
-v, --verbose Werkzeug-Returns als [tool: <name> → ok] anzeigen und nach jedem Turn einen [tokens: prompt=<n>, response=<m>]-Footer ausgeben.

Braucht einen interaktiven Terminal — --no-interaction ist hier ohne Sinn. Für Skripte und Pipes ist chat ask das richtige Werkzeug.

Verlauf einer Sitzung

$ apparat chat start --vault=demo

 ┌ You ──────────────────────────────────────────────
 │ Welche Personen kennt der Vault?
 └─────────────────────────────────────────────────────

Conversation: V1StGXAA
[tool: list_entities_by_type]
Im Vault sind aktuell zehn Personen erfasst, darunter
[Maria Beispiel](./2024-02-14--maria-beispiel--V1StGXAA.md),
[Anna Schmidt](./2024-03-02--anna-schmidt--Bx7tYu3v.md) …

 ┌ You ──────────────────────────────────────────────
 │ Was hat Maria mit WCAG zu tun?
 └─────────────────────────────────────────────────────

[tool: read_entity]
[tool: graph_path]
Maria Beispiel ist über das Projekt …

 ┌ You ──────────────────────────────────────────────
 │
 └─────────────────────────────────────────────────────

✅ Conversation closed.

Die NanoID der Konversation (V1StGXAA) erscheint einmalig nach dem ersten echten Turn — du kannst dir diese ID notieren und die Konversation später mit chat continue wieder aufmachen. Wenn du den ersten Prompt direkt mit Enter schließt, wird keine leere Konversations-Hülle angelegt.

Zitate werden im Stream live aufgelöst: nennt die Antwort eine Entität, erscheint im Terminal ein Markdown-Link der Form [Titel](./<dateiname>.md). Im Plain-Terminal ist das Literal-Text (genauso wie die **Fettung** aus Modellantworten); ein nachgeschalteter Markdown-Renderer (mdcat, bat -l md) oder der Chat der Web-Oberfläche macht daraus einen klickbaren Link auf die Datei. Dieselbe Form landet auch nach chat synthesize und chat export in der Vault-Notiz — was du hier siehst, ist byte-identisch zu dem, was später auf der Platte steht. Eine NanoID, die im Vault keiner Datei mehr entspricht, bleibt als roher [Titel](nano_id)-Link sichtbar, damit kaputte Verweise nicht verschwinden.

Was Apparat im Hintergrund tut

Beim ersten echten Turn baut Apparat einen System-Prompt zusammen, der dem Sprach­modell den Vault-Kontext gibt — Anzahl der Entitäten, häufigste Typen, dominante Sprache(n), die Verhaltens­regeln und die Beschreibung der verfügbaren Werkzeuge. Dieser Snapshot wird eingefroren und ändert sich über die Lebens­dauer der Konversation nicht. Auch das Modell, mit dem die Konversation startet, bleibt erhalten — wenn du APPARAT_LLM_MODEL zwischendrin umstellst, wirkt das erst in einer neuen Konversation.

Während der Antwort­generierung darf das Modell auf eine kleine Werkzeug­palette zurückgreifen (siehe Übersicht) — Suche, Lesen einer Notiz, Beziehungen, Pfade, Lücken. Welches Werkzeug es einsetzt, entscheidet es selbst; alles, was es tut, ist nur lesend.

Direkt nach der ersten Antwort vergibt Apparat in einem zweiten, kurzen Sprachmodell-Pass automatisch einen Titel für die Konversation, der in chat list erscheint. Der Pass läuft synchron im Anschluss an den Stream und bleibt unsichtbar; schlägt er fehl, bleibt der Titel leer und chat retitle holt das Naming jederzeit nach.

Voraussetzungen

chat start wird vom apparat-Wrapper transparent in den Container delegiert (Sprachmodell läuft dort).

Exit-Codes

Code Bedeutung
0 Du hast die Konversation mit einem leeren Prompt sauber geschlossen.
1 Vault-Auflösung fehlgeschlagen, das Kommando wurde ohne interaktiven Terminal aufgerufen, oder ein Turn ist im Streaming-Pfad fehlgeschlagen.

Verwandt