7.8 KiB
MindNet v3.0.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-Antwortentech_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 Privacyembedding_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:
- Versucht primäres Profil (z.B.
synthesis_pro) - Bei Fehler →
fallback_profile(z.B.synthesis_backup) - Bei weiterem Fehler → nächster Fallback (z.B.
identity_safe) - Terminaler Endpunkt:
identity_safehat keinen Fallback (lokales Modell)
- Versucht primäres Profil (z.B.
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_fastfü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.pyv2.14.0app/core/ingestion/ingestion_validation.pyv2.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 Profilembedding_expert - Entfernung der Embedding-Konfiguration aus der
.envzugunsten 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.yamlunddecision_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.registryfür Text-Bereinigung und Registry-Lookups
🔧 Technische Änderungen
Konfigurationsdateien
Neue Datei:
config/llm_profiles.yamlv1.3.0: Zentrale Experten-Registry
Aktualisierte Dateien:
config/decision_engine.yamlv3.2.2: Decoupled MoE Logic, Integration voncompression_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 korrektprofile_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
-
Neue Konfigurationsdatei erstellen:
cp config/llm_profiles.yaml.example config/llm_profiles.yaml # Anpassen nach Bedarf -
Startup-Validierung prüfen:
# System startet nicht, wenn llm_profiles.yaml fehlt oder ungültig ist python3 -m app.main -
ENV-Variablen (optional): Die
.envVariablenMINDNET_LLM_PROVIDER,MINDNET_LLM_MODELetc. dienen nur noch als Fallback. Die primäre Steuerung erfolgt überllm_profiles.yaml.
Für Entwickler
API-Änderungen:
LLMService.generate_raw_response()unterstützt nunprofile_nameParameter- Fallback-Kaskade erfolgt automatisch bei Fehlern
visited_profiles-Tracking verhindert Zirkel-Referenzen
Konfiguration:
- Neue Profile können in
llm_profiles.yamldefiniert werden decision_engine.yamlreferenziert Profile überrouter_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).