• v3.0.0 3d2f3d12d9

    Mindnet v3.0.0 (WP25)
    All checks were successful
    Deploy mindnet to llm-node / deploy (push) Successful in 5s
    Stable

    Lars released this 2026-01-01 20:26:54 +01:00 | 106 commits to main since this release

    Release Notes: Mindnet v3.0.0 (WP25)

    Release Date: 2026-01-01
    Type: Feature Release - Agentic Multi-Stream RAG Orchestration
    Branch: WP25


    🎯 Übersicht

    Diese Version markiert den Übergang von Mindnet von einer klassischen, linearen RAG-Architektur zu einer Agentic Multi-Stream Engine. Das System agiert nun als intelligenter Orchestrator, der Nutzeranfragen analysiert, in parallele Wissens-Streams aufteilt und diese zu einer kontextreichen, wertebasierten Antwort synthetisiert.


    Neue Features

    Agentic Multi-Stream RAG Orchestration

    Mindnet führt nun parallele Abfragen in spezialisierten Wissens-Streams aus, anstatt einer einzelnen Suche:

    Stream-Library:

    • Values Stream: Extrahiert Identität, Ethik und Prinzipien (value, principle, belief, trait, boundary, need, motivation).
    • Facts Stream: Liefert operative Daten zu Projekten, Tasks und Status (project, decision, task, goal, event, state).
    • Biography Stream: Greift auf persönliche Erfahrungen und Journal-Einträge zu (experience, journal, profile, person).
    • Risk Stream: Identifiziert Hindernisse und potenzielle Gefahren (risk, obstacle, bias).
    • Tech Stream: Bündelt technisches Wissen, Code und Dokumentation (concept, source, glossary, idea, insight, skill, habit).

    Vorteile:

    • Präzise Kontext-Ladung: Jeder Stream fokussiert auf spezifische Wissensbereiche.
    • Parallele Ausführung: Alle Streams werden gleichzeitig abgefragt (asyncio.gather).
    • Stream-Tracing: Jeder Treffer wird mit stream_origin markiert für Feedback-Optimierung.
    • Fehler-Resilienz: Einzelne Stream-Fehler blockieren nicht die gesamte Anfrage.

    Intent-basiertes Routing ("The Brain")

    Der Router wurde zu einem hybriden System erweitert, das Anfragen klassifiziert, bevor die Suche beginnt:

    Strategien:

    • FACT_WHAT: Wissen/Listen (z.B. "Was ist...", "Welche sind...").
    • FACT_WHEN: Zeitpunkte (z.B. "Wann...", "Datum...").
    • DECISION: Beratung (z.B. "Soll ich...", "Sollte ich...", "Empfehlung...").
    • EMPATHY: Reflexion (z.B. "Fühle...", "Stress...", "Angst...").
    • CODING: Technik (z.B. "Code...", "Python...", "Bug...").
    • INTERVIEW: Datenerfassung (z.B. "Neues Projekt...", "Erfahrung...").

    Hybrid-Modus:

    • Keyword Fast-Path: Sofortige Erkennung von Triggern wie "Soll ich" oder "Wann" ohne LLM-Call.
    • LLM Slow-Path: Komplexe semantische Analyse für unklare Anfragen.
    • Type Keywords: Automatische Erkennung von Objekt-Typen für Interview-Modus.

    Vorteil: Reduziert Latenz durch schnelle Keyword-Erkennung, nutzt LLM nur bei Bedarf.

    Wissens-Synthese

    Die Zusammenführung der Daten erfolgt über spezialisierte Templates in der prompts.yaml:

    Template-Struktur:

    • Explizite Variablen für jeden Stream (z.B. {values_stream}, {risk_stream}).
    • Pre-Initialization: Alle möglichen Stream-Variablen werden vorab initialisiert (verhindert KeyErrors).
    • Provider-spezifische Templates: Separate Versionen für Ollama, Gemini und OpenRouter.

    Synthese-Strategien:

    • FACT_WHAT/FACT_WHEN: Kombiniert Fakten, Biographie und Technik.
    • DECISION: Wägt Fakten gegen Werte ab, evaluiert Risiken.
    • EMPATHY: Fokus auf Biographie und Werte.
    • CODING: Technik und Fakten.

    Vorteil: Ermöglicht dem LLM eine differenzierte Abwägung zwischen Fakten und persönlichen Werten.


    🔧 Verbesserungen

    Stream-Konfiguration & Typ-Synchronisation

    Jeder Stream nutzt individuelle Edge-Boosts und Filter-Types, die strikt mit der types.yaml (v2.7.0) synchronisiert sind:

    Beispiele:

    • Values Stream: guides: 3.0, enforced_by: 2.5, based_on: 2.0.
    • Facts Stream: part_of: 2.0, depends_on: 1.5, implemented_in: 1.5.
    • Risk Stream: blocks: 2.5, impacts: 2.0, risk_of: 2.5.

    Vorteil: Präzise Gewichtung der Graph-Kanten je nach Wissensbereich.

    Template-Robustheit

    Pre-Initialization: Automatische Vor-Initialisierung aller Stream-Variablen in der DecisionEngine verhindert KeyError-Abstürze bei unvollständigen Konfigurationen.

    Fallback-Mechanismus: Bei Template-Fehlern wird ein vereinfachter Prompt mit allen verfügbaren Stream-Ergebnissen verwendet.

    Ollama Context-Throttling

    Vor der Übergabe an Ollama prüft der Chat-Router, ob der Kontext (RAG-Hits) die Grenze von MAX_OLLAMA_CHARS überschreitet (Standard: 10.000) und kürzt diesen ggf.

    Vorteil: Verhindert VRAM-Überlastung bei großen Kontexten.


    🐛 Bugfixes

    • Behoben: Vault-Import Performance - "Empty Response Guard" korrigiert, damit kurze Ingest-Antworten (YES/NO) nicht mehr fälschlicherweise langsame Fallbacks auslösen.
    • Behoben: Cloud-Resilienz - Sicherheitscheck für das choices-Array in _execute_openrouter implementiert, um JSON-Errors bei überlasteten APIs zu verhindern.
    • Behoben: Template-Robustheit - Automatische Vor-Initialisierung aller Stream-Variablen verhindert KeyError-Abstürze.
    • Behoben: Intent-Kollision - Generische Begriffe (wie "Projekt") wurden aus den Keyword-Triggern entfernt, um sicherzustellen, dass strategische Fragen (z.B. "Soll ich...?") korrekt als DECISION geroutet werden.

    ⚠️ Breaking Changes & Migration

    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-Änderungen

    Erweiterte DTOs

    QueryHit (erweitert):

    class QueryHit(BaseModel):
        # ... bestehende Felder ...
        stream_origin: Optional[str] = None  # Neu: Name des Ursprungs-Streams
    

    ChatResponse (erweitert):

    class ChatResponse(BaseModel):
        # ... bestehende Felder ...
        intent: Optional[str] = "FACT"  # Neu: Die gewählte WP-25 Strategie
        intent_source: Optional[str] = "LLM_Router"  # Neu: Quelle der Intent-Erkennung
    

    Impact für API-Consumer:

    • Frontend kann stream_origin für visuelle Kennzeichnung der Quellen nutzen.
    • intent und intent_source ermöglichen Debugging und Analytics.

    📖 Dokumentation

    Alle relevanten Dokumente wurden 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)

    🔄 Technische Details

    Geänderte Module

    Decision Engine:

    • app/core/retrieval/decision_engine.py: Multi-Stream Orchestrator (v1.0.3)
      • Paralleles Retrieval via _execute_parallel_streams()
      • Stream-Tracing mit stream_origin
      • Pre-Initialization der Stream-Variablen

    Chat Router:

    • app/routers/chat.py: Hybrid Router Integration (v3.0.2)
      • Keyword Fast-Path + LLM Slow-Path
      • Multi-Stream Orchestrierung
      • Ollama Context-Throttling

    LLM Service:

    • app/services/llm_service.py: Ingest-Stability Patch (v3.4.2)
      • Entfernung des <5-Zeichen Guards
      • Empty Response Guard für OpenRouter
      • Lazy Initialization der DecisionEngine

    DTOs:

    • app/models/dto.py: Stream-Tracing Support (v0.7.1)
      • stream_origin in QueryHit
      • intent und intent_source in ChatResponse

    Main:

    • app/main.py: Lifespan Management (v1.0.0)
      • Startup-Integritäts-Check
      • Ressourcen-Cleanup beim Shutdown
      • Globale Fehlerbehandlung

    Konfiguration:

    • config/decision_engine.yaml: Multi-Stream Konfiguration (v3.1.6)
    • config/prompts.yaml: Stream-Templates (v3.1.2)

    Versionsnummern

    • 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

    🚀 Upgrade-Pfad

    Für Administratoren

    1. Code aktualisieren:

      git pull origin main
      source .venv/bin/activate
      pip install -r requirements.txt
      
    2. Konfiguration prüfen:

      # Backup der alten Konfigurationen
      cp config/decision_engine.yaml config/decision_engine.yaml.backup
      cp config/prompts.yaml config/prompts.yaml.backup
      
      # Prüfen, ob neue Konfigurationen vorhanden sind
      ls -la config/decision_engine.yaml config/prompts.yaml
      
    3. Services neu starten:

      sudo systemctl restart mindnet-prod
      sudo systemctl restart mindnet-ui-prod
      

    Für Entwickler

    • Keine Code-Änderungen erforderlich, wenn nur API genutzt wird
    • Frontend kann neue Felder (stream_origin, intent, intent_source) optional nutzen
    • Stream-Tracing ermöglicht Feedback-Optimierung pro Wissensbereich

    📝 Bekannte Einschränkungen

    • Stream-Parallelität: Maximale Anzahl paralleler Streams ist durch asyncio-Limits begrenzt (typischerweise 5-10 Streams).
    • Kontext-Größe: Große Kontexte (>10.000 Zeichen) werden bei Ollama automatisch gekürzt.

    🔮 Ausblick (WP-25a: Agentic Refinement)

    Auf Basis des stabilen WP-25 Fundaments sind folgende Erweiterungen geplant:

    • Pre-Synthesis: LLM-basierte Komprimierung überlanger Streams vor der finalen Antwortgenerierung.
    • Kontext-Budgeting: Intelligente Verteilung der verfügbaren Token auf die aktivierten Streams.
    • Stream-specific Provider: Zuweisung unterschiedlicher KI-Modelle pro Wissensbereich (z.B. lokales Ollama für Identitäts-Werte, Gemini für technische Fakten).

    🙏 Danksagungen

    Diese Version wurde durch umfangreiche Architektur-Überarbeitung ermöglicht. Besonderer Fokus lag auf:

    • Transformation zu einer Agentic Multi-Stream Engine
    • Intelligente Intent-Erkennung mit Hybrid-Routing
    • Parallele Wissens-Synthese mit wertebasierter Abwägung
    • Robustheit und Fehler-Resilienz

    Vollständige Changelog: Siehe Git-Commits für detaillierte Änderungen
    Support: Bei Fragen siehe Admin Operations Guide

    Downloads