Neural Knowledge Brain
Eigenständiger Go-Dienst für deine beiden GLPI-Projekte. Er liest die produktive Wissensbasis und Agent-Audits read-only, erzeugt einen dynamischen Wissensgraphen und rendert dessen Aktivität als fullscreen „Gehirn“. Neue KI-Synthesen werden ausschließlich als AI-THINK in das vorhandene Knowledgebase-Staging geschrieben.
Was bereits implementiert ist
- Fullscreen Canvas-Rendering in Gehirnform, ohne Frontend-Framework oder externe CDN-Abhängigkeit.
- Echtzeitaktivierung über Server-Sent Events: Nodes glühen, Edges leuchten, Partikel laufen entlang verwendeter Verbindungen.
- Direkter Ingest der vorhandenen Knowledge-JSONs einschließlich Kategorien, Keywords, Quellen und Staging-Status.
- Read-only Tailing von
runs.jsonldes Agents; neue Agent-Läufe erscheinen als Hirnaktivität. - Optionale, nicht blockierende Telemetrie-Patches für Agent- und Knowledgebase-Suchanfragen.
- Embeddings über Ollama
embeddinggemma; lokaler Feature-Hash-Fallback, falls Ollama gerade nicht erreichbar ist. - Suchanfragen über Agent, Knowledgebase oder API: Retrieval, aktivierte Nodes/Edges und strukturierte Verarbeitung durch
qwen3:8b. Die Webansicht bleibt bewusst eine reine Visualisierung ohne Eingabefeld. - Sequenzielle, automatische Verknüpfungsanalyse. Es wird immer nur ein Kandidatenpaar gleichzeitig geprüft.
- KI-Edges mit Herkunft, Confidence, Erklärung und Evidenz. Abgelehnte Paare werden intern markiert, damit sie nicht endlos erneut geprüft werden.
- Optional kontrollierte Recherche über eine eigene SearXNG-Instanz.
- Automatische AI-THINK-Beiträge im bestehenden Staging-JSON-Format, stets mit
auto_reply: false.
Automatische Visualzustände
Die Fullscreen-Ansicht wechselt selbstständig zwischen drei Darstellungsstufen:
- LIVING: ruhige Eigenaktivität mit langsamer Atmung semantischer Cortex-Areale, vereinzelten internen Impulsen und sanfter Kamerabewegung. Diese Mikroaktivität wird nicht als wichtiges Feed-Ereignis protokolliert.
- ACTIVATION: Agent-Suchen, Knowledgebase-Suchen und Graph-Updates fokussieren automatisch den betroffenen Wissensbereich. Aktive Regionen dehnen sich leicht aus; relevante Edges transportieren Partikel.
- AI-THINK / RESEARCH: Beziehungsanalyse und Recherche erhalten einen stärkeren visuellen Modus mit fokussierter Kamera, konzentrischen Wellen, Synapsen-Bursts und statusabhängigen Farben.
Die Themenstruktur wird nicht nur aus dem ersten Kategorie-Feld abgeleitet. Kategorien bilden feste Anker; Konzepte, Quellen und externe Recherche-Nodes übernehmen über gewichtete Nachbarschafts-Propagation das stärkste verbundene Themengebiet. Verwandte Bereiche ziehen sich an, nicht verwandte Bereiche stoßen sich ab. Die zwölf stärksten Cortex-Areale erhalten bewusst deutlich getrennte Farben.
Der Aktivitätsfeed zeigt nur relevante Ereignisse und ergänzt – sofern vorhanden – Cortex-Bereich, Trefferzahl, verwendete Quellen, Laufzeit, semantische Nähe, Relationstyp, Konfidenz, Recherchequellen, Ticket-ID und Staging-Pfad.
Schutz der Basisprojekte
Das Brain bekommt nur:
knowledge/read-onlydata/runs.jsonlread-onlystaging/read-write
Der Agent erhält weiterhin keinen Zugriff auf das Staging. Im integrierten Compose-Stack erhält auch kb-search nur ein leeres, flüchtiges Staging; ausschließlich der Prüf-Editor und das Brain sehen die echten Entwürfe. Die bestehende Knowledgebase nimmt AI-THINK erst nach deiner Freigabe in den produktiven Bestand. Damit kann das Brain die Entwürfe bereits darstellen und beim Denken berücksichtigen, während Agent und produktive Suche sie noch nicht sehen.
Schnellstart nativ
cp .env.example .env
# Pfade in .env anpassen
ollama pull qwen3:8b
ollama pull embeddinggemma
set -a; . ./.env; set +a
go run ./cmd/brain
Windows PowerShell:
Copy-Item .env.example .env
# Variablen aus .env setzen oder direkt in der Sitzung definieren
go run ./cmd/brain
Oberfläche: http://localhost:8090
Ohne Ollama startet die Visualisierung trotzdem. Retrieval verwendet dann einen deterministischen lokalen Fallback; Qwen-Synthesen und belastbare AI-Inferenz benötigen Ollama.
Docker
Passe in docker-compose.yml die drei Host-Pfade an und starte:
docker compose up -d --build
Auf Linux ist host.docker.internal über extra_hosts eingebunden. Alternativ kann das Brain in dasselbe Docker-Netz wie Ollama aufgenommen und OLLAMA_URL=http://ollama:11434 gesetzt werden.
Ablauf einer sichtbaren Anfrage
- Die Anfrage erzeugt eine Wahrnehmungswelle.
- EmbeddingGemma bewertet passende Knowledge- und AI-THINK-Nodes.
- Treffer leuchten nacheinander auf.
- Vorhandene Verbindungen werden durchlaufen und mit Partikeln dargestellt.
- Qwen3:8b erhält ausschließlich den ausgewählten Kontext.
- Die final verwendeten Nodes und Edges pulsieren bei der Antwortsynthese.
Automatische Anreicherung
Der Enrichment-Loop arbeitet bewusst seriell:
- ähnlichstes noch ungeprüftes Wissenspaar auswählen;
- Qwen-Beziehungsanalyse mit festem JSON-Schema;
- Edge als
stagingoder intern alsrejectedspeichern; - bei Unklarheit optional SearXNG-Recherche durchführen;
- externe Quellen als eigene Nodes mit Evidence-Edges anlegen;
- AI-THINK-JSON atomar in
BRAIN_STAGING_DIRSschreiben; - beim nächsten Scan den neuen Beitrag als sichtbaren und durchsuchbaren Staging-Node aufnehmen.
Ein erzeugter Entwurf enthält zusätzlich ein ai_think-Objekt mit Quell-Nodes, Relation, Confidence, Forschungsstatus und Evidenz. Die vorhandene Editor-Raw-JSON-Ansicht kann diese Daten bereits anzeigen.
Minimale optionale Integrationen
Die Patches unter integrations/ senden echte Suchanfragen und Treffer an POST /api/events:
# im jeweiligen Projekt-Root
git apply /pfad/glpi-neural-brain/integrations/agent/glpi-ai-agent-neural-brain.patch
git apply /pfad/glpi-neural-brain/integrations/knowledgebase/glpi-ai-knowledgebase-neural-brain.patch
Danach optional setzen:
BRAIN_ACTIVITY_URL=http://brain:8090/api/events
BRAIN_ACTIVITY_API_KEY=
Ist BRAIN_ACTIVITY_URL leer, ist die Integration vollständig deaktiviert. Das Senden ist asynchron, fail-open, auf drei Sekunden begrenzt und kann weder Ticketverarbeitung noch KB-Suche blockieren. Der Agent funktioniert zusätzlich auch ohne Patch: Das Brain beobachtet weiterhin sein runs.jsonl.
HTTP-Endpunkte
| Methode | Pfad | Zweck |
|---|---|---|
GET |
/api/status |
Zustand, Modelle und Zähler |
GET |
/api/graph |
kompletter aktueller Graph |
GET |
/api/analysis |
Komponenten, Hubs, AI-Edges, Widersprüche und unverknüpftes Wissen |
GET |
/api/stream |
SSE-Aktivitätsstrom |
POST |
/api/query |
sichtbare Wissensanfrage |
POST |
/api/events |
optionale Agent-/KB-Telemetrie |
POST |
/api/reindex |
Scan und Embedding-Abgleich |
POST |
/api/enrich |
genau einen AI-THINK-Schritt ausführen |
Mit BRAIN_API_KEY werden alle POST-Endpunkte über Authorization: Bearer … oder X-Brain-Key geschützt. Die Webansicht ruft keine Query-POSTs mehr auf. Der API-Key schützt weiterhin Integrationen, Reindex, Enrichment und externe Query-Aufrufe; produktiv sollte der Dienst lokal oder hinter einem authentifizierenden Reverse Proxy betrieben werden.
Grenzen des Prototyps
- Der Graphspeicher ist eine atomar geschriebene JSON-Datei und für einen einzelnen Brain-Prozess ausgelegt. Für sehr große Bestände wäre eine spätere Migration auf einen spezialisierten Graph-/Vektorspeicher sinnvoll.
- Webrecherche ist absichtlich nur über eine explizit konfigurierte SearXNG-Instanz aktiv.
- KI-Edges bleiben Hypothesen. Erst eine Freigabe des AI-THINK-Beitrags macht daraus produktives Knowledge; die Edge selbst trägt weiterhin ihre KI-Herkunft.
- Das System löst Widersprüche nicht stillschweigend auf.
contradictsist ein eigener Edge-Typ und bleibt sichtbar.