# Branch Merge Commit Message: WP25 ``` feat: Agentic Multi-Stream RAG Orchestration (v3.0) ## Architektur-Transformation (WP-25) ### Agentic Multi-Stream RAG Orchestration - Übergang von linearer RAG-Architektur zu paralleler Multi-Stream Engine - Parallele Abfragen in spezialisierten Wissens-Streams (Values, Facts, Biography, Risk, Tech) - Stream-Tracing: Jeder Treffer wird mit `stream_origin` markiert - Fehler-Resilienz: Einzelne Stream-Fehler blockieren nicht die gesamte Anfrage **Geänderte Dateien:** - `app/core/retrieval/decision_engine.py`: Multi-Stream Orchestrator (v1.0.3) - `app/routers/chat.py`: Hybrid Router Integration (v3.0.2) - `app/models/dto.py`: Stream-Tracing Support (v0.7.1) ### Intent-basiertes Routing ("The Brain") - Hybrid-Modus: Keyword Fast-Path + LLM Slow-Path - Strategien: FACT_WHAT, FACT_WHEN, DECISION, EMPATHY, CODING, INTERVIEW - Sofortige Erkennung von Triggern wie "Soll ich" oder "Wann" ohne LLM-Call - Komplexe semantische Analyse für unklare Anfragen **Geänderte Dateien:** - `app/routers/chat.py`: Hybrid Router mit Keyword-Fast-Path (v3.0.2) - `app/core/retrieval/decision_engine.py`: LLM-basiertes Routing (v1.0.3) ### Wissens-Synthese - Spezialisierte Templates in `prompts.yaml` mit expliziten Stream-Variablen - Pre-Initialization aller Stream-Variablen (verhindert KeyErrors) - Provider-spezifische Templates für Ollama, Gemini und OpenRouter - Differenzierte Abwägung zwischen Fakten und persönlichen Werten **Geänderte Dateien:** - `config/prompts.yaml`: Stream-Templates (v3.1.2) - `app/core/retrieval/decision_engine.py`: Synthese-Logik (v1.0.3) ## Stream-Konfiguration & Typ-Synchronisation ### Stream-Library (decision_engine.yaml v3.1.6) - **Values Stream:** Identität, Ethik und Prinzipien (filter_types: value, principle, belief, etc.) - **Facts Stream:** Operative Daten (filter_types: project, decision, task, etc.) - **Biography Stream:** Persönliche Erfahrungen (filter_types: experience, journal, profile) - **Risk Stream:** Hindernisse und Gefahren (filter_types: risk, obstacle, bias) - **Tech Stream:** Technisches Wissen (filter_types: concept, source, glossary, etc.) **Edge-Boosts pro Stream:** - Values: `guides: 3.0`, `enforced_by: 2.5`, `based_on: 2.0` - Facts: `part_of: 2.0`, `depends_on: 1.5`, `implemented_in: 1.5` - Risk: `blocks: 2.5`, `impacts: 2.0`, `risk_of: 2.5` **Geänderte Dateien:** - `config/decision_engine.yaml`: Multi-Stream Konfiguration (v3.1.6) ## Bugfixes & Optimierungen ### Vault-Import Performance - "Empty Response Guard" korrigiert: Kurze Ingest-Antworten (YES/NO) lösen nicht mehr fälschlicherweise langsame Fallbacks aus - Entfernung des <5-Zeichen Guards ermöglicht YES/NO Validierungen **Geänderte Dateien:** - `app/services/llm_service.py`: Ingest-Stability Patch (v3.4.2) ### Cloud-Resilienz - Sicherheitscheck für das `choices`-Array in `_execute_openrouter` implementiert - Verhindert JSON-Errors bei überlasteten APIs **Geänderte Dateien:** - `app/services/llm_service.py`: Empty Response Guard (v3.4.2) ### Template-Robustheit - Automatische Vor-Initialisierung aller Stream-Variablen in der `DecisionEngine` - Verhindert `KeyError`-Abstürze bei unvollständigen Konfigurationen - Fallback-Mechanismus bei Template-Fehlern **Geänderte Dateien:** - `app/core/retrieval/decision_engine.py`: Pre-Initialization (v1.0.3) ### Intent-Kollision - Generische Begriffe (wie "Projekt") wurden aus den Keyword-Triggern entfernt - Sicherstellt, dass strategische Fragen (z.B. "Soll ich...?") korrekt als `DECISION` geroutet werden **Geänderte Dateien:** - `config/decision_engine.yaml`: Keyword-Fix (v3.1.6) ## Ollama Context-Throttling - Vor der Übergabe an Ollama prüft der Chat-Router, ob der Kontext die Grenze von `MAX_OLLAMA_CHARS` überschreitet (Standard: 10.000) - Automatische Kürzung bei großen Kontexten **Geänderte Dateien:** - `app/routers/chat.py`: Context-Throttling (v3.0.2) ## Lifespan Management - FastAPI-Anwendung implementiert Lifespan-Management für sauberen Startup und Shutdown - Integritäts-Check der WP-25 Konfiguration beim Startup - Ressourcen-Cleanup beim Shutdown - Globale Fehlerbehandlung für asynchrone Prozesse **Geänderte Dateien:** - `app/main.py`: Lifespan Management (v1.0.0) ## Impact & Breaking Changes ### Keine Migration erforderlich **WICHTIG:** Diese Version ist **rückwärtskompatibel**. Bestehende Vaults funktionieren ohne Re-Import. **Konfigurations-Updates:** - `decision_engine.yaml` wurde auf v3.1.6 aktualisiert (Multi-Stream Struktur) - `prompts.yaml` wurde auf v3.1.2 aktualisiert (Stream-Templates) - **Empfehlung:** Backup der alten Konfigurationsdateien vor dem Update ### API-Erweiterungen - `QueryHit.stream_origin`: Name des Ursprungs-Streams (optional) - `ChatResponse.intent`: Die gewählte WP-25 Strategie (optional) - `ChatResponse.intent_source`: Quelle der Intent-Erkennung (optional) ## Dokumentation Alle relevanten Dokumente aktualisiert: - `03_tech_chat_backend.md`: Agentic Multi-Stream RAG, Intent-basiertes Routing, Wissens-Synthese - `03_tech_configuration.md`: decision_engine.yaml, prompts.yaml (Stream-Struktur) - `03_tech_api_reference.md`: Erweiterte DTOs (stream_origin, intent) ## Versionen - Decision Engine: v1.0.3 - Chat Router: v3.0.2 - LLM Service: v3.4.2 - DTOs: v0.7.1 - Main: v1.0.0 - decision_engine.yaml: v3.1.6 - prompts.yaml: v3.1.2 Closes #[issue-number] ```