Files
glpi-neural-brain/ARCHITECTURE.md
jbergner 440423c5b6
All checks were successful
release-tag / release-image (push) Successful in 2m43s
RC-3
2026-08-09 11:29:13 +02:00

5.7 KiB
Raw Permalink Blame History

Architektur und Vertrauensgrenzen

Lokale Knowledge-JSONs ──ro──┐
GLPI Knowledge Base ─────ro──┼──► Ingest ─► In-Memory Graph + Float32 Vectors
Agent runs.jsonl ─────────ro──┘                       │
                                                    ├──► Ollama Pool
                                                    ├──► Relation Thinking
                                                    ├──► Knowledge Consolidation / Research / Synthesis
                                                    ├──► SSE / Hierarchical LOD UI
                                                    └──► Batched Persistence
                                                          ├── staging drafts
                                                          ├── article metadata sidecars
                                                          ├── GLPI cache
                                                          └── SQLite/WAL graph.db

Edge-Klassen

  • categorized_as, mentions, derived_from: deterministisch aus lokalen oder GLPI-Daten.
  • research_evidence: aus explizit kontrollierter Recherche, weiterhin staging.
  • related_to, depends_on, supports, contradicts, extends, same_topic, caused_by: Qwen-Inferenz mit Confidence und Evidence.
  • rejected: intern gespeicherte Prüfung ohne sichtbare Beziehung.

Mehrstufiges Thinking und adaptive Artikelsynthese

Kandidatenpaar
  └── Relation Thinking
        ├── rejected edge
        └── staging edge
              ├── Relationsrecherche nur bei Unsicherheit; Graphmaterialisierung erst nach akzeptierter Relation
              └── Cluster/Fast: kompatible Relationen eines Zyklus bündeln
                    └── Quellenverbund (38 Quellen)
                          ├── persistenter Work-Fingerprint → unveränderte Arbeit sofort überspringen
                          └── Artikelplanung: create / update / merge / skip
                                └── Aktualitätsrouting
                                      ├── zeitabhängig → kleine offene SearXNG-Runde
                                      └── statisch → Gemma intern-first
                                            ├── Autor meldet Evidenzlücke → gezielte kleine SearXNG-Runde
                                            └── Qwen Claim-Review
                                                  ├── akzeptiert → Staging
                                                  └── fehlende Claims → gezielte Repair-Recherche + Revision

Relation Thinking schreibt keine Artikel. Die sichtbare KB-Datei enthält ausschließlich das reguläre KB-Schema. Interne Planung, Bewertung, Confidence, Quellen-IDs und Rechercheprotokolle werden getrennt unter BRAIN_DATA_DIR/article-metadata/ gespeichert. Frisch geladenes Artikel-Webmaterial wird zunächst nur unter research-evidence/ persistiert. Erst eine vom finalen Reviewer tatsächlich für einen supported/partially_supported Claim verwendete Quelle wird als externer Graph-Node materialisiert, eingebettet und über grounded_by mit dem Staging-Artikel verbunden. Dadurch erzeugt bloßes Suchen keinen dauerhaften Graph-Fan-out.

Details: ADAPTIVE-ARTICLE-WORKFLOW.md.

Schreibmodell

Produktive Knowledge-Dateien und GLPI sind read-only. AI-THINK wird nur in das konfigurierte Staging geschrieben. Ein prozessweiter Coordinator dedupliziert Dateischreibvorgänge und schreibt sie seriell vor der Graphtransaktion.

Der Graph Store verwendet modernc.org/sqlite über database/sql. Nodes, Edges und binäre Float32-Vektoren werden nur bei Änderungen geschrieben. WAL erlaubt eine kompakte laufende Journaldatei; der Export-Endpunkt erzeugt mit VACUUM INTO eine portable Einzeldatei ohne WAL-Sidecars.

Ollama-Pool

Chat- und Embeddingaufrufe werden als vollständige Requests geroutet. Healthchecks prüfen Erreichbarkeit und Modelle. Ein Per-Node-Inflight-Limit verhindert lokale Überlastung. Failover verändert keine produktiven Daten, da Schreiboperationen erst nach erfolgreicher Inferenz deterministisch ausgeführt werden.

Hierarchische Render-Schicht

Der persistierte Wissensgraph bleibt vollständig. Das Frontend leitet eine temporäre LOD-Struktur ab:

Full Graph
└── Cortex-Region
    └── Themenwolke
        └── lokale Gruppe
            └── einzelner Wissensknoten

Außenkanten werden nach sichtbaren Endpunkten, Relationstyp, Richtung, Herkunft und Status aggregiert. Aktivität öffnet nur den betroffenen Hierarchiepfad.

Distributed Source-Agent runtime

BRAIN_MODE selects one of two startup graphs in the same executable. brain initializes the Graph, Ollama, knowledge scanner, article pipeline, Source Agent registry and Source Inbox. agent initializes only the source-poller runner, local dedupe/config cache and a minimal health/status HTTP server.

Remote discovery follows Agent -> authenticated batch ingest -> Source Inbox -> embedding/ANN relevance classification -> candidate archive. Article evidence acquisition follows internal KB -> Source Inbox -> SearXNG, and permanent graph materialization happens only after claim-level grounding.

Startup-Gate und kausale Telemetrie

Der HTTP-Server bleibt während des Startups erreichbar. GPU-/Graph-schwere autonome Workflows warten jedoch auf den initialen Knowledge-/Embedding-Bootstrap. Ein fataler Knowledge-Scan hält den Gate geschlossen und wird periodisch erneut versucht. Workflow-Telemetrie verwendet explizite MutationStats; globale Graph-Deltas dienen nur noch der chronologischen Timeline.