• V3.1.0 d41da670fc

    MindNet v3.1.0 - WP-25a LLM-Profil basierte Steuerung
    All checks were successful
    Deploy mindnet to llm-node / deploy (push) Successful in 3s
    Stable

    Lars released this 2026-01-02 13:56:17 +01:00 | 98 commits to main since this release

    MindNet v3.1.0 - Release Notes: WP-25a

    Release Date: 2026-01-02
    Type: Feature Release - Mixture of Experts (MoE) & Fallback-Kaskade
    Version: 3.1.0 (WP-25a)


    🎯 Überblick

    Mit WP-25a wurde MindNet von einer provider-basierten Steuerung auf eine profilbasierte Experten-Architektur (Mixture of Experts) umgestellt. Jede Systemaufgabe (Synthese, Ingestion-Validierung, Routing, Kompression) wird nun einem dedizierten Profil zugewiesen, das Modell, Provider und Parameter unabhängig von der globalen Konfiguration definiert.

    Diese Version markiert einen fundamentalen Architektur-Sprung: Von einer monolithischen LLM-Konfiguration hin zu einer modularen, aufgabenspezifischen Experten-Steuerung mit automatischer Resilienz.


    Neue Features

    1. Mixture of Experts (MoE) Architektur

    Zentrale Experten-Steuerung (llm_profiles.yaml v1.3.0):

    • Einführung von Experten-Profilen für spezifische Aufgaben:
      • synthesis_pro: Hochwertige Synthese für Chat-Antworten
      • tech_expert: Fachspezialist für Code & Technik (Claude 3.5 Sonnet)
      • compression_fast: Schnelle Kompression & Routing (Mistral 7B)
      • ingest_validator: Deterministische Validierung (Temperature 0.0)
      • identity_safe: Lokaler Anker (Ollama/Phi-3) für maximale Privacy
      • embedding_expert: Zentrale Steuerung des Embedding-Modells

    Vorteile:

    • Aufgabenspezifische Optimierung: Jede Aufgabe nutzt das optimale Modell
    • Hardware-Optimierung: Lokaler Anker für kleine Hardware-Umgebungen
    • Wartbarkeit: Zentrale Konfiguration statt verstreuter ENV-Variablen

    2. Rekursive Fallback-Kaskade

    Implementierung (app/services/llm_service.py v3.5.2):

    • Automatische Fallback-Logik bei Provider-Fehlern:
      1. Versucht primäres Profil (z.B. synthesis_pro)
      2. Bei Fehler → fallback_profile (z.B. synthesis_backup)
      3. Bei weiterem Fehler → nächster Fallback (z.B. identity_safe)
      4. Terminaler Endpunkt: identity_safe hat keinen Fallback (lokales Modell)

    Schutzmechanismen:

    • Zirkuläre Referenzen: visited_profiles-Tracking verhindert Endlosschleifen
    • Background-Semaphore: Parallele Tasks werden gedrosselt (konfigurierbar via BACKGROUND_LIMIT)

    3. Pre-Synthesis Kompression (Module A)

    Implementierung (app/core/retrieval/decision_engine.py v1.2.1):

    • Wissens-Streams, die den Schwellenwert (compression_threshold) überschreiten, werden asynchron verdichtet, bevor sie die Synthese erreichen
    • Konfigurierbar pro Stream: Z.B. 2500 Zeichen für Values Stream, 3500 für Facts Stream
    • Profil-gesteuert: Nutzt compression_profile (z.B. compression_fast für schnelle Zusammenfassung)
    • Parallelisierung: Mehrere Streams können gleichzeitig komprimiert werden

    Vorteile:

    • Reduziert Token-Verbrauch bei langen Streams
    • Beschleunigt Synthese durch kürzere Kontexte
    • Erhält Relevanz durch intelligente Zusammenfassung

    4. Profilgesteuerte Ingestion (Wissens-Gatekeeper)

    Implementierung:

    • app/core/ingestion/ingestion_processor.py v2.14.0
    • app/core/ingestion/ingestion_validation.py v2.13.0

    Features:

    • Semantische Kanten-Validierung erfolgt zwingend über das MoE-Profil ingest_validator (Temperature 0.0 für Determinismus)
    • Embedding-Konsolidierung: Der EmbeddingsClient (v2.6.0) bezieht Modellvorgaben und Dimensionen direkt aus dem Profil embedding_expert
    • Entfernung der Embedding-Konfiguration aus der .env zugunsten zentraler Profil-Registry

    5. Startup-Schutz & Audit-Fixes

    Implementierung (app/main.py v1.1.0):

    • Verifiziert beim Booten die Existenz und Validität von llm_profiles.yaml und decision_engine.yaml
    • Audit-Fix: Behebung einer Sicherheitslücke in der DecisionEngine, durch die Fallback-Aufrufe bei Template-Fehlern die Profilsteuerung umgangen hätten
    • Circular Import Fix: Ingestion-Module nutzen nun die neutrale app.core.registry für Text-Bereinigung und Registry-Lookups

    🔧 Technische Änderungen

    Konfigurationsdateien

    Neue Datei:

    • config/llm_profiles.yaml v1.3.0: Zentrale Experten-Registry

    Aktualisierte Dateien:

    • config/decision_engine.yaml v3.2.2: Decoupled MoE Logic, Integration von compression_thresholds

    Code-Komponenten

    Komponente Version Änderungen
    app/services/llm_service.py v3.5.2 Rekursive Fallback-Kaskade, Profil-Auflösung
    app/core/retrieval/decision_engine.py v1.2.1 Profile-Driven Orchestration, Pre-Synthesis Kompression
    app/core/ingestion/ingestion_processor.py v2.14.0 Profilgesteuerte Validierung
    app/core/ingestion/ingestion_validation.py v2.13.0 MoE-Profil ingest_validator
    app/services/embeddings_client.py v2.6.0 Profil-basierte Modell-Auflösung
    app/main.py v1.1.0 Startup-Validierung der YAML-Dateien

    Environment-Variablen

    Neue Variable:

    • MINDNET_LLM_PROFILES_PATH: Pfad zur Profil-Registry (Default: config/llm_profiles.yaml)

    Legacy (nur noch Fallback):

    • MINDNET_LLM_PROVIDER, MINDNET_LLM_MODEL, etc. dienen nur noch als Fallback, wenn kein Profil angegeben wird

    🐛 Behobene Probleme

    • Behoben: Sicherheitslücke in der DecisionEngine - Fallback-Aufrufe nutzen nun korrekt profile_name
    • Behoben: Circular Import zwischen Ingestion-Modulen und Registry
    • Behoben: Fehlende Startup-Validierung der YAML-Konfigurationen

    📚 Dokumentation

    Aktualisierte Dokumente:

    • 03_tech_configuration.md: llm_profiles.yaml Dokumentation
    • 03_tech_chat_backend.md: MoE Architektur und Fallback-Kaskade
    • 02_concept_ai_personality.md: Mixture of Experts Konzept
    • 03_tech_ingestion_pipeline.md: Profilgesteuerte Validierung
    • 00_glossary.md: Neue Begriffe (MoE, Profile, Fallback-Kaskade)
    • 05_developer_guide.md: Teach-the-AI mit Profilen
    • 04_admin_operations.md: Konfigurations-Updates
    • 06_active_roadmap.md: WP25a als abgeschlossen markiert

    🚀 Migration & Upgrade

    Für Administratoren

    1. Neue Konfigurationsdatei erstellen:

      cp config/llm_profiles.yaml.example config/llm_profiles.yaml
      # Anpassen nach Bedarf
      
    2. Startup-Validierung prüfen:

      # System startet nicht, wenn llm_profiles.yaml fehlt oder ungültig ist
      python3 -m app.main
      
    3. ENV-Variablen (optional):
      Die .env Variablen MINDNET_LLM_PROVIDER, MINDNET_LLM_MODEL etc. dienen nur noch als Fallback. Die primäre Steuerung erfolgt über llm_profiles.yaml.

    Für Entwickler

    API-Änderungen:

    • LLMService.generate_raw_response() unterstützt nun profile_name Parameter
    • Fallback-Kaskade erfolgt automatisch bei Fehlern
    • visited_profiles-Tracking verhindert Zirkel-Referenzen

    Konfiguration:

    • Neue Profile können in llm_profiles.yaml definiert werden
    • decision_engine.yaml referenziert Profile über router_profile, llm_profile, compression_profile

    🔮 Ausblick (WP-25b: Prompt-Orchestration & Model-Specific Tuning)

    • Pre-Synthesis: LLM-basierte Komprimierung überlanger Streams ( bereits implementiert)
    • Kontext-Budgeting: Intelligente Token-Verteilung
    • Stream-specific Provider: Unterschiedliche KI-Modelle pro Wissensbereich
    • Prompt-Orchestration: Dynamische Prompt-Anpassung basierend auf Profil und Kontext

    📊 Metriken & Performance

    Erwartete Verbesserungen:

    • Resilienz: Automatische Fallback-Kaskade reduziert Ausfallzeiten
    • Token-Effizienz: Pre-Synthesis Kompression reduziert Token-Verbrauch bei langen Streams
    • Determinismus: Profilgesteuerte Validierung (Temperature 0.0) erhöht Konsistenz
    • Wartbarkeit: Zentrale Profil-Registry vereinfacht Konfigurations-Management

    Status: WP-25a ist zu 100% implementiert und audit-geprüft.
    Nächster Schritt: WP-25b (Prompt-Orchestration & Model-Specific Tuning).

    Downloads