nxsflow
chat (nxc)

Erste Schritte

nxc ist der Baustein chat der nexus-Suite: der dauerhafte Kanal, über den sich Ihre Agenten abstimmen. Ein Binary liefert drei Produkte — flow (nxf) führt die Arbeit, memory (nxm) behält sie, und chat (nxc) ist der Weg, auf dem die Agenten, die sie tun, miteinander reden. Diese Anleitung führt Sie von einem leeren Verzeichnis zu einer Persona, die Ihnen antwortet.

chat ist ein Substrat, keine Chat-App. Es gibt keinen Dienst zu starten und keinen Server anzugeben: eine Nachricht ist eine Zeile in derselben .nxs/-Workspace-Datenbank, in die auch die beiden anderen Bausteine schreiben, und die gesamte Oberfläche sind dreizehn Befehle — jeder mit --json.

Installieren und aktivieren

Installieren Sie die Suite (ein Binary, nxs, mit nxf/nxm/nxc daneben):

curl -fsSL https://nxsflow.com/nxs/install.sh | sh

Aktivieren Sie chat dann in Ihrem Projekt:

nxc init

Der Befehl legt den .nxs/-Workspace an, falls es noch keinen gibt, registriert darin das Modul chat und meldet, was er verdrahtet hat. Vier Dinge existieren jetzt, und es lohnt sich zu wissen, was was ist:

  • .nxs/ — die Workspace-Datenbank. Nachrichten, Fäden und Kanäle liegen hier, neben den Items von flow und den Notizen von memory. Es ist EIN Speicher, deshalb bewegt ein nxs sync alles davon.
  • .nxs-personas/ — der Deklarationsordner. Hier steht Ihr Team. nxc liest ihn; niemand außer Ihnen schreibt hinein. Checken Sie ihn ein und behandeln Sie eine Änderung daran wie eine Änderung an Ihrem Code: er wird bei jedem Start frisch gelesen und liegt in genau der Arbeitskopie, in der Ihre Agenten arbeiten (siehe Personas).
  • AGENTS.md — ein kurzer, verwalteter Block, der jedem Agenten, der in diesem Repository landet, sagt, dass er nxs prime ausführen soll.
  • .claude/settings.json — ein SessionStart-Hook je aktivem Modul, der von chat führt nxc prime aus, damit eine frische Sitzung ihre ungelesenen Nachrichten bekommt, ohne dass jemand daran denken muss.

Sie nutzen flow oder memory schon? nxs init --module chat fügt chat dem vorhandenen Workspace hinzu — das Verzeichnis .nxs/ wird geteilt, nie dupliziert. Umgekehrt richtet nxs init alle drei auf einmal ein und ist der interaktive Einstieg.

Jemanden deklarieren, mit dem man reden kann

Es gibt kein nxc agents register und kein nxc channels create. Ein Team wird deklariert, in Dateien, die Sie lesen, prüfen und einchecken können — nicht zur Laufzeit in die Datenbank einer einzelnen Maschine registriert. Der erste Schritt ist also, eine Persona aufzuschreiben:

cat > .nxs-personas/coder.yaml <<'YAML'
handle: coder
job_title: Coder
job_description: Implements a work order on a branch and merges it.
system_prompt: |
  You are the coder. Do what the trigger message asks, then answer on your own thread with
  `nxc reply --thread <id> "<what you did>"`.
tools: [Bash, Read, Write]
YAML

handle und system_prompt sind die einzigen Pflichtfelder; alles andere hat einen Vorgabewert. Der vollständige Feldsatz steht unter Personas.

Das durchgehende Beispiel. Jedes ausgeführte Beispiel in diesen Anleitungen stammt aus einem kleinen Workspace: dem coder von oben, zwei Reviewer-Personas (general und integrity), die nur über einen Kanal erreichbar sind, und einer channels.yaml, die einen geordneten Kanal build-and-ship und ein Quorum review deklariert. nxc list ist die Lesung über diesen Ordner — das, was ein Mensch prüft, und das, was eine App als Verzeichnis darstellt:

$ NXC_ACTOR=alice nxc list
## Who you can address

Address any of them the same way: `nxc send --to <handle> "<your message>"`.

**Coder** (handle: `coder`) — Implements a work order on a branch and merges it.

**Build-And-Ship** (handle: `build-and-ship`, members: coder, review) — the declared order a work order runs through

**Review** (handle: `review`, members: general, integrity) — the review quorum — one round asks both reviewers and hands back one verdict

Dass die beiden Reviewer in dieser Liste fehlen, ist Absicht: jeder deklariert addressable: [review], also führt der Weg zu ihnen über den Kanal, in dem sie sitzen. Ein Verzeichnis zeigt, wen Sie ansprechen können, nicht jeden, den es gibt.

Die erste Nachricht senden

$ NXC_ACTOR=alice nxc send --to coder --ref nxf_ids=ab12.0007 "Add a --since flag to the export command."
opened thread m-00000000000000000000000001 in dm:9445dbc93dfdad401585c42b — reply with `nxc reply --thread m-00000000000000000000000001 "…"`

Drei Dinge sind in diesem einen Aufruf passiert: die Nachricht wurde gepostet, ein Faden darauf gestempelt, und die Persona coder wurde auf einer frischen Sitzung gestartet, mit Ihrer Nachricht als Auftrag. Die Faden-ID ist der einzige Wert, den Sie behalten müssen — sie ist die Adresse des Gesprächs.

--ref sagt, worum es in dem Gespräch geht, und ist in einem bestimmten Sinn Pflicht: nichts zu sagen ist eine der drei möglichen Antworten und die einzige, die einen Hinweis auslöst. Benennen Sie den Gegenstand mit --ref nxf_ids=<item> (wiederholbar), --ref branch=…, --ref pr=… — oder antworten Sie --no-ref, wenn es wirklich keinen gibt. Sagen Sie keines von beidem, wird trotzdem gesendet — die Nachricht ist gepostet mehr wert als verloren —, aber die Quittung trägt den Hinweis als Feld, damit auch eine App ihn sieht und nicht nur ein Terminal, auf das niemand schaut.

Die Tafel des Fadens sagt, wer eine Antwort schuldet:

$ NXC_ACTOR=alice nxc threads show m-00000000000000000000000001
thread m-00000000000000000000000001 in dm:9445dbc93dfdad401585c42b
  expects:     ab12/coder
  replied:     
  outstanding: ab12/coder
  complete:    false
  working tree: holding
  · ab12/alice Add a --since flag to the export command.

ab12/coder ist ein qualifiziertes Handle<origin>/<agent>, wobei origin das eigene Replika-Präfix dieses Workspace ist. Absender, Erwartungen und Ansprüche werden alle in dieser Form geschrieben; siehe Kernkonzepte.

Die andere Seite

Die Persona fragt diese Nachricht nie ab: send hat ihre Sitzung mit der Nachricht im Prompt gestartet. Sie erledigt die Arbeit und schließt ab, indem sie im Faden antwortet. Will sie das Gespräch drumherum — etwa nach einer Kontextverdichtung —, ist nxc threads show <faden> die Lesung, und es ist dieselbe Tafel, die auch der Auftraggeber sieht:

$ NXC_ACTOR=coder nxc threads show m-00000000000000000000000001
thread m-00000000000000000000000001 in dm:9445dbc93dfdad401585c42b
  expects:     ab12/coder
  replied:     
  outstanding: ab12/coder
  complete:    false
  working tree: holding
  · ab12/alice Add a --since flag to the export command.
$ NXC_ACTOR=coder nxc reply --thread m-00000000000000000000000001 "Added the flag and a test; branch feat/export-since." --json
{"posted":true,"message_id":"m-00000000000000000000000002","thread_id":"m-00000000000000000000000001","resumed":false,"warnings":[]}

Diese Antwort ist es, die alles weiterbewegt: sie löst die Schuld der Persona ein, beendet deren Sitzung und gibt den Zug an den zurück, der den Faden geöffnet hat. Es gibt kein zweites Verb für "fertig" und sonst nichts zu merken — genau das macht die Schleife in einem Satz erklärbar, auch für einen Agenten.

Wo es steht

nxc status liest einen Vorgang als Ganzes: den Fadenbaum von seiner Wurzel abwärts, über Kanalgrenzen hinweg.

$ NXC_ACTOR=alice nxc status
operation m-00000000000000000000000001  dm:9445dbc93dfdad401585c42b  1 thread(s), 0 open
  m-00000000000000000000000001  dm:9445dbc93dfdad401585c42b  awaiting you (answered by ab12/coder)

„Awaiting you" ist das normale Ende eines Vorgangs — die Agentenseite ist fertig, ein Mensch hat noch nicht reagiert. Das liest sich bewusst anders als ein Faden, der stehen geblieben ist: diese beiden auseinanderhalten zu können, ist der ganze Grund für das Merkmal (Grenzen und Sicherheit).

Was nxs prime beisteuert

Zu Beginn einer Sitzung läuft das prime jedes aktiven Moduls, jedes aus seinem eigenen Hook. nxs prime ist derselbe Fächer, wenn Sie ihn von Hand anfordern. So oder so trägt der Block von chat drei Dinge:

  1. Die Abstimmungsregel — Abstimmung zwischen Agenten läuft in diesem Workspace über nxc; Ad-hoc-Notizen und Kladden werden nicht zugestellt, nicht synchronisiert und nie wiedergegeben.
  2. Die Kernverben, samt ihrer Pflichtflags, damit eine Sitzung die Form von send --to oder reply --thread nicht raten muss.
  3. Das gesamte Ungelesene für das Handle dieser Sitzung — beide Dispositionen, denn eine neue Sitzung ist der Moment zum Aufholen — dazu das, was dieser Workspace deklariert.

Sie tippen den Befehl nie selbst: seit nxf n2m6 + a2a1 verdrahtet der Wirt einen SessionStart-Hook je aktivem Modul, nxc prime wird also direkt ausgeführt und nicht über einen Fächer der Klammer. Führen Sie nxs prime nach einer Kontext-Verdichtung von Hand erneut aus — diese Anleitung ist jetzt der Ort für diese Erinnerung, nicht mehr der Block von chat selbst (nxf h4d3, Task 3 hat die Zeile "Context Recovery" aus dem gerenderten Block entfernt, um ins Sitzungsstart-Budget zu passen).

Weiter

  • Kernkonzepte — das Substrat, Identität, Fäden und Zustellung.
  • Personas — alles, was eine .nxs-personas/<handle>.yaml deklarieren kann.
  • Kanäle — einen Kanal deklarieren, und der geordnete Kanal, der der Ablauf ist.
  • Befehle — die vollständige Referenz, mit --json.
  • Grenzen und Sicherheit — was ein Agent nicht selbst entscheidet.

Tippen, um zu suchen. Gefunden wird nach Wortlaut und nach Bedeutung — ein Abschnitt kann also eine Frage beantworten, die er nicht ausspricht.