mindnet/docs/99_Archive/WP25b_release_notes.md

206 lines
8.1 KiB
Markdown

# MindNet v3.1.1 - Release Notes: WP-25b
**Release Date:** 2026-01-02
**Type:** Feature Release - Lazy-Prompt-Orchestration & Full Resilience
**Version:** 3.1.1 (WP-25b)
---
## 🎯 Überblick
Mit WP-25b wurde MindNet von statischer Prompt-Formatierung auf eine **hierarchische Lazy-Prompt-Orchestration** umgestellt. Prompts werden erst im Moment des Modellaustauschs geladen, basierend auf dem exakt aktiven Modell. Dies ermöglicht modell-spezifisches Tuning und maximale Resilienz bei Modell-Fallbacks.
Diese Version markiert einen weiteren Architektur-Sprung: Von vorformatierter Prompt-Strings hin zu einer dynamischen, modell-spezifischen Prompt-Auflösung mit vollständiger Traceability.
---
## ✨ Neue Features
### 1. Hierarchisches Prompt-Resolution-System
**Implementierung (`app/services/llm_service.py` v3.5.5):**
Dreistufige Auflösungs-Logik für maximale Präzision und Resilienz:
1. **Level 1 (Modell-ID):** Exakte Übereinstimmung für spezifische Modelle
* **Beispiel:** `google/gemini-2.0-flash-exp:free`, `meta-llama/llama-3.3-70b-instruct:free`
* **Vorteil:** Modell-spezifische Optimierungen für maximale Präzision
* **Logging:** `🎯 [PROMPT-TRACE] Level 1 Match: Model-specific`
2. **Level 2 (Provider):** Fallback auf Provider-Standards
* **Beispiel:** `openrouter`, `ollama`, `gemini`
* **Vorteil:** Bewährte Standards aus v3.1.2 bleiben erhalten
* **Logging:** `📡 [PROMPT-TRACE] Level 2 Match: Provider-fallback`
3. **Level 3 (Default):** Globaler Sicherheits-Satz
* **Fallback-Kette:** `default``gemini``ollama``""`
* **Vorteil:** Vermeidung von Fehlern bei unbekannten Konfigurationen
* **Logging:** `⚓ [PROMPT-TRACE] Level 3 Match: Global Default`
**Vorteile:**
* **Modell-spezifisches Tuning:** Jedes Modell kann optimierte Prompts erhalten
* **Maximale Resilienz:** Bei Modell-Fallbacks wird automatisch das passende Template geladen
* **Traceability:** Vollständige Transparenz über genutzte Instruktionen
### 2. Lazy-Prompt-Orchestration
**Implementierung (`app/services/llm_service.py` v3.5.5):**
* **Lazy Loading:** Prompts werden erst zur Laufzeit geladen, wenn das aktive Modell bekannt ist
* **Parameter:** `prompt_key` und `variables` statt vorformatierter Strings
* **Integration:** Vollständig in Chat, Ingestion und DecisionEngine integriert
**Vorteile:**
* **Dynamische Anpassung:** Prompt wird basierend auf aktivem Modell geladen
* **Fallback-Resilienz:** Bei Cloud → Local Fallback wird automatisch das passende Template verwendet
* **Wartbarkeit:** Zentrale Konfiguration in `prompts.yaml` statt verstreuter String-Formatierungen
### 3. Ultra-robustes Intent-Parsing
**Implementierung (`app/core/retrieval/decision_engine.py` v1.3.2):**
* **Regex-basierter Parser:** Bereinigt Modell-Artefakte zuverlässig
* **Beispiele:** `CODING[/S]``CODING`, `DECISION</s>``DECISION`
* **Robustheit:** Ignoriert Stop-Marker, Newlines oder Plaudereien des Modells
**Vorteile:**
* **Präzises Routing:** Strategie-Erkennung funktioniert auch bei freien Modellen mit Artefakten
* **Fehlerresistenz:** Systemabstürze durch fehlerhafte Modell-Antworten werden verhindert
### 4. Differenzierte Ingestion-Validierung
**Implementierung (`app/core/ingestion/ingestion_validation.py` v2.14.0):**
* **Fehler-Differenzierung:** Unterscheidung zwischen transienten und permanenten Fehlern
* **Transiente Fehler:** Timeout, Connection, Network → Kante wird erlaubt (Datenverlust vermeiden)
* **Permanente Fehler:** Config, Validation, Invalid Response → Kante wird abgelehnt (Graph-Qualität schützen)
**Vorteile:**
* **Datenintegrität:** Transiente Netzwerkfehler führen nicht zu Datenverlust
* **Graph-Qualität:** Permanente Konfigurationsfehler schützen vor fehlerhaften Kanten
### 5. PROMPT-TRACE Logging
**Implementierung (`app/services/llm_service.py` v3.5.5):**
* **Vollständige Transparenz:** Protokollierung der genutzten Prompt-Auflösungs-Ebene
* **Log-Format:** `[PROMPT-TRACE] Level X Match: ...`
* **Debugging:** Einfache Nachverfolgung von Prompt-Entscheidungen
**Vorteile:**
* **Debugging:** Schnelle Identifikation von Prompt-Problemen
* **Optimierung:** Verständnis, welche Prompts tatsächlich genutzt werden
* **Audit:** Vollständige Nachvollziehbarkeit der System-Entscheidungen
---
## 🔧 Technische Änderungen
### Konfigurationsdateien
**Aktualisierte Dateien:**
* `config/prompts.yaml` v3.2.2: Hierarchische Struktur mit Modell-spezifischen Overrides
* **Erhalt:** 100% der Original-Prompts aus v3.1.2 für die Provider-Ebene
* **Neu:** Modell-spezifische Overrides für Gemini 2.0, Llama 3.3, Qwen 2.5
* **Neu:** `compression_template` für DecisionEngine v1.3.0
### Code-Komponenten
| Komponente | Version | Änderungen |
| :--- | :--- | :--- |
| `app/services/llm_service.py` | v3.5.5 | Hierarchische Prompt-Resolution, Lazy-Loading, PROMPT-TRACE |
| `app/core/retrieval/decision_engine.py` | v1.3.2 | Ultra-robustes Intent-Parsing via Regex |
| `app/core/ingestion/ingestion_validation.py` | v2.14.0 | Lazy-Prompt-Integration, differenzierte Fehlerbehandlung |
| `app/routers/chat.py` | v3.0.3 | Lazy-Prompt-Loading für Chat-Synthese |
### API-Änderungen
**Neue Parameter:**
* `prompt_key`: Schlüssel für Lazy-Loading (statt vorformatierter Strings)
* `variables`: Daten-Dict für Prompt-Formatierung
**Veraltete Parameter:**
* Vorformatierte `prompt` Strings werden weiterhin unterstützt (Abwärtskompatibilität)
---
## 🐛 Behobene Probleme
-**Behoben:** Modell-Artefakte in Intent-Router (z.B. `CODING[/S]``CODING`)
-**Behoben:** Fehlende modell-spezifische Prompt-Optimierungen
-**Behoben:** Fehlerhafte Prompt-Auflösung bei Modell-Fallbacks
-**Behoben:** Undifferenzierte Fehlerbehandlung in Ingestion-Validierung
---
## 📚 Dokumentation
**Aktualisierte Dokumente:**
-`03_tech_chat_backend.md`: Hierarchisches Prompt-Resolution-System und Lazy-Prompt-Orchestration
-`03_tech_configuration.md`: prompts.yaml hierarchische Struktur dokumentiert
-`02_concept_ai_personality.md`: Lazy-Prompt-Orchestration Konzept
-`03_tech_ingestion_pipeline.md`: Differenzierte Validierung
-`00_glossary.md`: Neue Begriffe (Lazy-Prompt, PROMPT-TRACE, hierarchische Resolution)
-`05_developer_guide.md`: Lazy-Prompt-Orchestration für Entwickler
-`06_active_roadmap.md`: WP25b als abgeschlossen markiert
---
## 🚀 Migration & Upgrade
### Für Administratoren
1. **Keine Breaking Changes:**
* Vorformatierte Prompts werden weiterhin unterstützt
* System funktioniert ohne Änderungen
2. **Optional: Modell-spezifische Optimierungen:**
```yaml
# config/prompts.yaml
decision_synthesis_v1:
"google/gemini-2.0-flash-exp:free": |
# Modell-spezifische Optimierung
...
```
3. **PROMPT-TRACE aktivieren:**
* Logs zeigen automatisch die genutzte Auflösungs-Ebene
* Keine zusätzliche Konfiguration erforderlich
### Für Entwickler
**API-Änderungen:**
* `LLMService.generate_raw_response()` unterstützt nun `prompt_key` und `variables`
* Vorformatierte `prompt` Strings bleiben für Abwärtskompatibilität erhalten
**Best Practice:**
* Nutze `prompt_key` und `variables` für neue Implementierungen
* Lazy-Loading ermöglicht automatische Modell-Anpassung
**Konfiguration:**
* Neue Modell-spezifische Prompts können in `prompts.yaml` definiert werden
* Hierarchische Struktur: Modell-ID → Provider → Default
---
## 🔮 Ausblick (WP-25c)
- Kontext-Budgeting: Intelligente Token-Verteilung
- Stream-specific Provider: Unterschiedliche KI-Modelle pro Wissensbereich
- Erweiterte Prompt-Optimierung: Dynamische Anpassung basierend auf Kontext und Historie
---
## 📊 Metriken & Performance
**Erwartete Verbesserungen:**
* **Präzision:** Modell-spezifische Prompts erhöhen Antwortqualität
* **Resilienz:** Automatische Prompt-Anpassung bei Modell-Fallbacks
* **Debugging:** PROMPT-TRACE vereinfacht Fehleranalyse
* **Wartbarkeit:** Zentrale Prompt-Konfiguration statt verstreuter Strings
---
**Status:** ✅ WP-25b ist zu 100% implementiert und audit-geprüft.
**Nächster Schritt:** WP-25c (Kontext-Budgeting & Erweiterte Prompt-Optimierung).