143 lines
4.7 KiB
YAML
143 lines
4.7 KiB
YAML
# config/decision_engine.yaml
|
|
# Steuerung der Decision Engine (WP-06 + WP-07)
|
|
# Hybrid-Modus: Keywords (Fast) + LLM Router (Smart Fallback)
|
|
version: 1.3
|
|
|
|
settings:
|
|
llm_fallback_enabled: true
|
|
|
|
# Few-Shot Prompting für bessere SLM-Performance
|
|
# Erweitert um INTERVIEW Beispiele
|
|
llm_router_prompt: |
|
|
Du bist ein Klassifikator. Analysiere die Nachricht und wähle die passende Strategie.
|
|
Antworte NUR mit dem Namen der Strategie.
|
|
|
|
STRATEGIEN:
|
|
- INTERVIEW: User will Wissen strukturieren, Notizen anlegen, Projekte starten ("Neu", "Festhalten").
|
|
- DECISION: Rat, Strategie, Vor/Nachteile, "Soll ich".
|
|
- EMPATHY: Gefühle, Frust, Freude, Probleme, "Alles ist sinnlos", "Ich bin traurig".
|
|
- CODING: Code, Syntax, Programmierung, Python.
|
|
- FACT: Wissen, Fakten, Definitionen.
|
|
|
|
BEISPIELE:
|
|
User: "Wie funktioniert Qdrant?" -> FACT
|
|
User: "Soll ich Qdrant nutzen?" -> DECISION
|
|
User: "Ich möchte ein neues Projekt anlegen" -> INTERVIEW
|
|
User: "Lass uns eine Entscheidung festhalten" -> INTERVIEW
|
|
User: "Schreibe ein Python Script" -> CODING
|
|
User: "Alles ist grau und sinnlos" -> EMPATHY
|
|
User: "Mir geht es heute gut" -> EMPATHY
|
|
|
|
NACHRICHT: "{query}"
|
|
|
|
STRATEGIE:
|
|
|
|
strategies:
|
|
# 1. Fakten-Abfrage (Fallback & Default)
|
|
FACT:
|
|
description: "Reine Wissensabfrage."
|
|
trigger_keywords: []
|
|
inject_types: []
|
|
prompt_template: "rag_template"
|
|
prepend_instruction: null
|
|
|
|
# 2. Entscheidungs-Frage
|
|
DECISION:
|
|
description: "Der User sucht Rat, Strategie oder Abwägung."
|
|
trigger_keywords:
|
|
- "soll ich"
|
|
- "meinung"
|
|
- "besser"
|
|
- "empfehlung"
|
|
- "strategie"
|
|
- "entscheidung"
|
|
- "wert"
|
|
- "prinzip"
|
|
- "vor- und nachteile"
|
|
- "abwägung"
|
|
inject_types: ["value", "principle", "goal"]
|
|
prompt_template: "decision_template"
|
|
prepend_instruction: |
|
|
!!! ENTSCHEIDUNGS-MODUS !!!
|
|
BITTE WÄGE FAKTEN GEGEN FOLGENDE WERTE, PRINZIPIEN UND ZIELE AB:
|
|
|
|
# 3. Empathie / "Ich"-Modus
|
|
EMPATHY:
|
|
description: "Reaktion auf emotionale Zustände."
|
|
trigger_keywords:
|
|
- "ich fühle"
|
|
- "traurig"
|
|
- "glücklich"
|
|
- "gestresst"
|
|
- "angst"
|
|
- "nervt"
|
|
- "überfordert"
|
|
inject_types: ["experience", "belief", "profile"]
|
|
prompt_template: "empathy_template"
|
|
prepend_instruction: null
|
|
|
|
# 4. Coding / Technical
|
|
CODING:
|
|
description: "Technische Anfragen und Programmierung."
|
|
trigger_keywords:
|
|
- "code"
|
|
- "python"
|
|
- "script"
|
|
- "funktion"
|
|
- "bug"
|
|
- "syntax"
|
|
- "json"
|
|
- "yaml"
|
|
inject_types: ["snippet", "reference", "source"]
|
|
prompt_template: "technical_template"
|
|
prepend_instruction: null
|
|
|
|
# 5. Interview / Datenerfassung (WP-07)
|
|
INTERVIEW:
|
|
description: "Der User möchte strukturiertes Wissen erfassen (Projekt, Notiz, Idee)."
|
|
trigger_keywords:
|
|
- "neue notiz"
|
|
- "neues projekt"
|
|
- "neue entscheidung"
|
|
- "neues ziel"
|
|
- "festhalten"
|
|
- "entwurf erstellen"
|
|
- "interview"
|
|
- "dokumentieren"
|
|
- "erfassen"
|
|
- "idee speichern"
|
|
inject_types: [] # Keine RAG-Suche, reiner Kontext-Dialog
|
|
prompt_template: "interview_template"
|
|
prepend_instruction: null
|
|
|
|
# LATE BINDING SCHEMAS:
|
|
# Definition der Pflichtfelder pro Typ (korrespondiert mit types.yaml)
|
|
# Wenn ein Typ hier fehlt, wird 'default' genutzt.
|
|
schemas:
|
|
default:
|
|
fields: ["Titel", "Thema/Inhalt", "Tags"]
|
|
hint: "Halte es einfach und übersichtlich."
|
|
|
|
project:
|
|
fields: ["Titel", "Zielsetzung (Goal)", "Status (draft/active)", "Wichtige Stakeholder", "Nächste Schritte"]
|
|
hint: "Achte darauf, Abhängigkeiten zu anderen Projekten mit [[rel:depends_on]] zu erfragen."
|
|
|
|
decision:
|
|
fields: ["Titel", "Kontext (Warum entscheiden wir?)", "Getroffene Entscheidung", "Betrachtete Alternativen", "Status (proposed/final)"]
|
|
hint: "Wichtig: Frage explizit nach den Gründen gegen die Alternativen."
|
|
|
|
goal:
|
|
fields: ["Titel", "Zeitrahmen (Deadline)", "Messkriterien (KPIs)", "Verbundene Werte"]
|
|
hint: "Ziele sollten SMART formuliert sein."
|
|
|
|
experience:
|
|
fields: ["Titel", "Situation (Kontext)", "Erkenntnis (Learning)", "Emotionale Keywords (für Empathie-Suche)"]
|
|
hint: "Fokussiere dich auf die persönliche Lektion."
|
|
|
|
value:
|
|
fields: ["Titel (Name des Werts)", "Definition (Was bedeutet das für uns?)", "Anti-Beispiel (Was ist es nicht?)"]
|
|
hint: "Werte dienen als Entscheidungsgrundlage."
|
|
|
|
principle:
|
|
fields: ["Titel", "Handlungsanweisung", "Begründung"]
|
|
hint: "Prinzipien sind härter als Werte." |