Update decision_engine.yaml and prompts.yaml for WP-25: Bump version to 3.1.5, enhance stream definitions with stricter type usage from types.yaml, and refine strategy descriptions for clarity. Introduce new trigger keywords for improved intent classification and ensure compatibility with multi-stream retrieval strategies.

This commit is contained in:
Lars 2026-01-01 09:12:31 +01:00
parent ed3f3e5588
commit 5ab01c5150
2 changed files with 81 additions and 41 deletions

View File

@ -1,100 +1,133 @@
# config/decision_engine.yaml
# VERSION: 3.1.3 (WP-25: Multi-Stream Sync Fix)
# VERSION: 3.1.5 (WP-25: Multi-Stream Agentic RAG)
# STATUS: Active
# DoD: Harmonisierung der Streams mit prompts.yaml zur Vermeidung von KeyErrors.
# DoD: Strikte Nutzung der Typen aus types.yaml (v2.7.0).
# Fix für Projekt-Klassifizierung via Keyword-Fast-Path.
version: 3.1
settings:
llm_fallback_enabled: true
router_provider: "auto"
# "auto" nutzt den in MINDNET_LLM_PROVIDER gesetzten Standard.
router_provider: "auto"
# Verweist auf das Template in prompts.yaml
router_prompt_key: "intent_router_v1"
# --- EBENE 1: STREAM-LIBRARY ---
# --- EBENE 1: STREAM-LIBRARY (Bausteine basierend auf types.yaml) ---
streams_library:
values_stream:
name: "Identität & Ethik"
query_template: "Welche meiner Werte und Prinzipien betreffen: {query}"
filter_types: ["value", "principle", "belief"]
# Nur Typen aus types.yaml
filter_types: ["value", "principle", "belief", "trait", "boundary", "need", "motivation"]
top_k: 5
edge_boosts: {guides: 3.0, enforced_by: 2.5, based_on: 2.0}
edge_boosts:
guides: 3.0
enforced_by: 2.5
based_on: 2.0
facts_stream:
name: "Operative Realität"
query_template: "Status, Ressourcen und Fakten zu: {query}"
filter_types: ["project", "decision", "resource", "task", "milestone"]
# Nur Typen aus types.yaml
filter_types: ["project", "decision", "task", "goal", "event", "state"]
top_k: 5
edge_boosts: {part_of: 2.0, depends_on: 1.5, implemented_in: 1.5}
edge_boosts:
part_of: 2.0
depends_on: 1.5
implemented_in: 1.5
biography_stream:
name: "Persönliche Erfahrung"
query_template: "Welche Erlebnisse habe ich im Kontext von {query} gemacht?"
filter_types: ["experience", "journal"]
# Nur Typen aus types.yaml
filter_types: ["experience", "journal", "profile", "person"]
top_k: 3
edge_boosts: {related_to: 1.5, experienced_in: 2.0}
edge_boosts:
related_to: 1.5
experienced_in: 2.0
risk_stream:
name: "Risiko-Radar"
query_template: "Gefahren, Hindernisse oder Risiken bei: {query}"
filter_types: ["risk", "obstacle"]
# Nur Typen aus types.yaml
filter_types: ["risk", "obstacle", "bias"]
top_k: 3
edge_boosts: {blocks: 2.5, impacts: 2.0, risk_of: 2.5}
edge_boosts:
blocks: 2.5
impacts: 2.0
risk_of: 2.5
tech_stream:
name: "Technische Referenz"
query_template: "Technische Dokumentation und Code-Beispiele für: {query}"
filter_types: ["snippet", "reference", "source"]
name: "Wissen & Technik"
query_template: "Inhaltliche Details und Definitionen zu: {query}"
# Nur Typen aus types.yaml
filter_types: ["concept", "source", "glossary", "idea", "insight", "skill", "habit"]
top_k: 5
edge_boosts: {uses: 2.5, implemented_in: 3.0}
edge_boosts:
uses: 2.5
implemented_in: 3.0
# --- EBENE 2: STRATEGIEN ---
# --- EBENE 2: STRATEGIEN (Komposition & Routing) ---
strategies:
# Spezialisierte Fact-Strategie für zeitliche Fragen
FACT_WHEN:
description: "Abfrage von Zeitpunkten und Historie."
description: "Abfrage von exakten Zeitpunkten und Terminen."
preferred_provider: "openrouter"
# FAST PATH: Harte Keywords für zeitliche Fragen
trigger_keywords: ["wann", "datum", "uhrzeit", "zeitpunkt"]
use_streams:
- "facts_stream"
- "biography_stream"
- "tech_stream" # Hinzugefügt für Kompatibilität mit fact_synthesis_v1
prompt_template: "fact_synthesis_v1"
FACT_WHAT:
description: "Abfrage von Definitionen und Wissen."
preferred_provider: "openrouter"
use_streams:
- "facts_stream"
- "biography_stream" # Hinzugefügt für Kompatibilität mit fact_synthesis_v1
- "tech_stream"
prompt_template: "fact_synthesis_v1"
# Spezialisierte Fact-Strategie für inhaltliche Fragen & Listen (FIX für Projekt-Frage)
FACT_WHAT:
description: "Abfrage von Definitionen, Listen und Inhalten."
preferred_provider: "openrouter"
# FAST PATH: Zwingt "Welche Projekte" in diese Strategie
trigger_keywords: ["was", "welche", "projekt", "projekte", "liste", "übersicht"]
use_streams:
- "facts_stream"
- "tech_stream"
- "biography_stream"
prompt_template: "fact_synthesis_v1"
# Entscheidungs-Frage
DECISION:
description: "Rat, Strategie oder Abwägung."
description: "Der User sucht Rat, Strategie oder Abwägung."
preferred_provider: "gemini"
trigger_keywords: ["soll ich", "entscheidung", "abwägen", "priorität"]
use_streams:
- "values_stream"
- "facts_stream"
- "risk_stream"
prompt_template: "decision_synthesis_v1"
prepend_instruction: "!!! ENTSCHEIDUNGS-MODUS (AGENTIC MULTI-STREAM) !!!"
prepend_instruction: |
!!! ENTSCHEIDUNGS-MODUS (AGENTIC MULTI-STREAM) !!!
Analysiere die Fakten vor dem Hintergrund meiner Werte und evaluiere die Risiken.
EMPATHY:
description: "Reaktion auf emotionale Zustände."
preferred_provider: "openrouter"
trigger_keywords: ["fühle", "traurig", "glücklich", "stress", "angst"]
use_streams:
- "biography_stream"
- "values_stream"
prompt_template: "empathy_template" # Erwartet nur {context_str} oder spezifische Felder
prompt_template: "empathy_template"
CODING:
description: "Technische Anfragen und Programmierung."
preferred_provider: "gemini"
trigger_keywords: ["code", "python", "script", "bug", "syntax"]
use_streams:
- "tech_stream"
- "facts_stream"
prompt_template: "technical_template"
INTERVIEW:
description: "Der User möchte Wissen erfassen."
description: "Der User möchte Wissen erfassen (Eingabemodus)."
preferred_provider: "openrouter"
use_streams: []
use_streams: []
prompt_template: "interview_template"

View File

@ -337,20 +337,27 @@ intent_router_v1:
Antworte NUR mit dem Namen der Strategie.
STRATEGIEN:
- FACT_WHEN: Fragen nach "Wann", Daten, Historie.
- FACT_WHAT: Fragen nach "Was", Definitionen, Wissen.
- DECISION: Rat, Meinung, "Soll ich?", Abwägung.
- EMPATHY: Emotionen, Reflexion, "Ich fühle mich...".
- CODING: Programmierung, Skripte, Debugging.
- INTERVIEW: Dokumentation von Gedanken, Notizen erstellen.
- FACT_WHEN: Nur für explizite Fragen nach einem exakten Datum, Uhrzeit oder dem "Wann" eines Ereignisses.
- FACT_WHAT: Fragen nach Inhalten, Listen von Objekten/Projekten, Definitionen oder "Was/Welche" Anfragen (auch bei Zeiträumen).
- DECISION: Rat, Meinung, "Soll ich?", Abwägung gegen Werte.
- EMPATHY: Emotionen, Reflexion, Befindlichkeit.
- CODING: Programmierung, Skripte, technische Syntax.
- INTERVIEW: Dokumentation neuer Informationen, Notizen anlegen.
NACHRICHT: "{query}"
STRATEGIE:
gemini: |
Classify query intent for Mindnet. Options: [FACT_WHEN, FACT_WHAT, DECISION, EMPATHY, CODING, INTERVIEW].
Classify intent:
- FACT_WHEN: Exact dates/times only.
- FACT_WHAT: Content, lists of entities (projects, etc.), definitions, "What/Which" queries.
- DECISION: Strategic advice/values.
- EMPATHY: Emotions.
- CODING: Tech/Code.
- INTERVIEW: Data entry.
Query: "{query}"
Result (One word only):
openrouter: |
Select the best Mindnet strategy for: "{query}".
Strategies: FACT_WHEN, FACT_WHAT, DECISION, EMPATHY, CODING, INTERVIEW.
Select strategy for Mindnet:
FACT_WHEN (timing/dates), FACT_WHAT (entities/lists/what/which), DECISION, EMPATHY, CODING, INTERVIEW.
Query: "{query}"
Response: