# Architektur und Vertrauensgrenzen ```text Lokale Knowledge-JSONs ──ro──┐ GLPI Knowledge Base ─────ro──┼──► Ingest ─► In-Memory Graph + Vectors Agent runs.jsonl ─────────ro──┘ │ ├──► Ollama Pool ├──► AI-THINK / Research ├──► SSE / Hierarchical LOD UI └──► Batched Persistence ├── staging drafts ├── GLPI cache └── graph-state.json ``` ## 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. ## Schreibmodell Produktive Knowledge-Dateien und GLPI sind read-only. AI-THINK wird nur in das konfigurierte Staging geschrieben. Alle Schreibzugriffe laufen durch einen Prozess-weiten Coordinator, der Dateien dedupliziert und seriell vor dem Graph-Snapshot schreibt. ## 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: ```text 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.