Files
nexa/docs/05-command-system.md
T
Claude 9b18e2710d Reorganize /docs with numbered TOC; deployment rewrite for actual homelab
- /docs/ now contains 12 numbered guides + index.md (navigator).
- Old duplicates removed: nexa-core/doc/, DEPLOYMENT.md, PLAN.md,
  config/{classification_logic,workflows_spec}.md.
- 09-deployment.md targets the running infra (LXC 104 docker host,
  Zoraxy at 192.168.1.4, existing Memos/n8n/LiteLLM/Nextcloud/Qdrant)
  rather than spinning a parallel stack; minimal-config approach.
- 11-open-questions.md tracks user-info-required blockers.
- 12-optimization-opportunities.md captures homelab tweaks.
- CLAUDE.md added so future agent runs know repo conventions and infra.
2026-05-04 21:18:28 +00:00

3.3 KiB

05 — Command System (#nexa:*)

Nexa "hört" auf folgende Kommandos in Memos-Kommentaren oder als Memo-Inhalt mit Hashtag:

🔧 Konfigurations-Kommandos

#nexa:config

  • Beschreibung: Triggert Autodiscovery aller Services (Nextcloud, Qdrant, etc.)
  • Antwort: Postet Report mit gefundenen Konfigurationen
  • Speichert: Settings in DynoDB / Qdrant Metadata (nicht in .env)
#nexa:config

Beispiel-Response:

✅ Autodiscovery abgeschlossen:
- Nextcloud Listen: Work (id=123), Personal (id=456), Shopping (id=789), Wishes (id=1011)
- Qdrant Collection: nexa_knowledge (1536 dims, Cosine)
- Nextcloud Mail: 3 Accounts erkannt (Office 365, Gmail, Privat)

#nexa:status

  • Beschreibung: Zeigt den aktuellen System-Status
  • Antwort: Uptime, verbundene Systeme, Memory-Stats
#nexa:status

#nexa:sync-obsidian

  • Beschreibung: Triggert sofortige Synchronisierung mit Obsidian Vault
  • Optional Parameter: --vault=/path/to/vault oder --force für Neuindexierung
#nexa:sync-obsidian --force

📊 Memory & RAG Kommandos

#nexa:ask [question]

  • Beschreibung: Semantische Suche in Qdrant (RAG) basierend auf Obsidian + Memos
  • Antwort: Top-3 Treffer mit Quellen
#nexa:ask Wie implementierten wir das JWT-Middleware-Pattern?

#nexa:learn [topic]

  • Beschreibung: Explizit neue Information in Qdrant speichern (mit Tags)
  • Optional: --tag=architecture --source=obsidian/notes/arch.md
#nexa:learn Das Routing-Schema unterscheidet Work vs. Personal via SAIA-Kontext-Analyse --tag=architecture

🎯 Workflow-Kommandos

#nexa:route-test [text]

  • Beschreibung: Testet die Klassifizierung (Work/Personal) ohne Task zu erstellen
#nexa:route-test Muss morgen die Präsentation für den Client fertigstellen

Response:

💬 Klassifizierung (Test-Mode):
- Kontext: WORK
- Vertrauen: 0.95
- Begründung: "Client-Präsentation → professioneller Kontext"

#nexa:email-digest

  • Beschreibung: Triggert sofortige Email-Zusammenfassung (sonst tägl. 7 Uhr)
#nexa:email-digest

🔐 Admin-Kommandos

#nexa:reset-config

  • Beschreibung: Löscht gespeicherte Konfiguration, triggert neuen Autodiscovery
  • Warnung: Alle benutzerdefinierten Settings werden vergessen
#nexa:reset-config

#nexa:export-state

  • Beschreibung: Exportiert aktuellen State als JSON (für Backups)
#nexa:export-state

📝 Implementierung in n8n

Ein Command Parser läuft immer mit:

  1. Memos Webhook empfängt alle Memos
  2. Regex Check: Sucht nach #nexa:command
  3. Router: Versendet an entsprechenden n8n-Workflow
  4. Antwort: Postet Reply als Kommentar/Edit

Command Parser Regex:

^#nexa:(\w+)(?:\s+([^\n]*?))?(?:$|\s*--)

Extrahiert: [command, parameters]


🎛️ Dynamische Konfigurationsspeicherung

Statt .env zu editieren:

  1. First Run: #nexa:config speichert zu lokalen Metadata

  2. Speich-Ziel:

    • Primary: Qdrant Metadata (als _config Namespace)
    • Fallback: nexa-core/config/runtime_config.json (gitignored)
    • Notfall: .env (nur initial)
  3. Reload-Logik: Bei jedem Workflow-Start werden Settings aus Qdrant geladen

Das macht Nexa vollständig selbstständig nach dem initialem Setup!