WP25 #19

Merged
Lars merged 8 commits from WP25 into main 2026-01-01 20:26:05 +01:00
Owner

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)



## 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]
# 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) ## 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] ```
Lars added 8 commits 2026-01-01 20:25:51 +01:00
Lars merged commit 3d2f3d12d9 into main 2026-01-01 20:26:05 +01:00
Lars deleted branch WP25 2026-01-01 20:26:05 +01:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Lars/mindnet#19
No description provided.