From 13f0a0c9bce15ba5ee5db7608c5fddfb1e33fbef Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 6 Jan 2026 18:16:44 +0100 Subject: [PATCH] Update authoring guidelines in the user manual: Increment version to 1.2.0, refine key principles, and enhance clarity on knowledge structuring and emotional engagement. Revise sections on strategic control, vault architecture, and usability features to improve user experience and documentation coherence. --- .../01_User_Manual/01_authoring_guidelines.md | 234 ++-- .../consolidated_config_files.md | 1007 +++++++++++++++++ 2 files changed, 1116 insertions(+), 125 deletions(-) create mode 100644 docs/03_Technical_References/consolidated_config_files.md diff --git a/docs/01_User_Manual/01_authoring_guidelines.md b/docs/01_User_Manual/01_authoring_guidelines.md index e2a97af..acaf226 100644 --- a/docs/01_User_Manual/01_authoring_guidelines.md +++ b/docs/01_User_Manual/01_authoring_guidelines.md @@ -3,153 +3,138 @@ id: 01-authoring-guidelines title: Authoring Guidelines – Handbuch für den Digitalen Zwilling type: principle status: stable -version: 1.1.0 -area: system_documentation -tags: [handbuch, authoring, methodik, obsidian, mindnet, best-practice] -retriever_weight: 2.0 ---- - -# Authoring Guidelines: Dein Werkzeug für den Digitalen Zwilling - - -Dieses Handbuch ist dein primäres Werkzeug, um Wissen so zu strukturieren, dass Mindnet deine Persönlichkeit spiegelt, empathisch reagiert und dich strategisch berät. - ---- - -## ⚡ Die 6 Goldenen Regeln des Knowledge Designs - -1. **Atomare Gedanken:** Eine Notiz = Ein Thema. Trenne z. B. „Meditation“ von „Mobility“, auch wenn beides Ich-Pflege ist. -2. **Explizite Typen:** Nutze den `type`, um der KI zu sagen, wie sie den Text verarbeiten soll (z. B. `insight` für Beobachtungen, `experience` für Erlebnisse). -3. **Semantische Links:** Verknüpfe aktiv mit `[[rel:depends_on ...]]` oder `[[rel:based_on ...]]`. Sag dem System, *warum* Dinge zusammenhängen. -4. **Werte & Ziele definieren:** Erstelle für jeden Nordstern und jeden Kernwert eine eigene Notiz. Ohne Maßstäbe kann der „Berater“ nicht entscheiden. -5. **Emotionales Bridging:** Nutze Begriffe wie „Druck“, „Stolz“, „Euphorie“ oder „Hilflosigkeit“, um die Empathie-Ebene der KI zu aktivieren. -6. **Narrative Tiefe (Fleisch am Knochen):** Dokumentiere das „Warum“ hinter einer Entscheidung. Fakten informieren, aber Erzählungen prägen den Charakter. - ---- - -## 1. Strategische Steuerung (Status & Gewicht) - -Du entscheidest über das Frontmatter, wie präsent eine Information im „Gedächtnis“ ist. - -### 1.1 Status-Logik -* **`stable`**: Gold-Standard. Für finale Leitbild-Texte und Nordsterne. Erhält +20% Relevanz-Bonus. -* **`active`**: Standard für laufende Projekte und aktuelle Beobachtungen. -* **`draft`**: Brainstorming oder rohe Tages-Logs. Die KI nutzt diese nur nachrangig (50% Malus), um Rauschen zu vermeiden. -* **`system`**: Rein technische Dateien (Templates, Guides). Werden im Chat ignoriert. - -### 1.2 Manuelle Gewichtung (`retriever_weight`) -* **Boost (1.20):** Für hochrelevante Erkenntnisse. **Beispiel:** Beobachtungen zum Verhalten von Rohan werden als `insight` mit `1.20` markiert, damit sie bei Erziehungsfragen sofort präsent sind. -* **Deboost (0.50 - 0.80):** Für tägliche Routine-Einträge („Heute 10 Min. meditiert“). Sie dienen der Chronik, sollen aber keine tiefen Analysen verfälschen. - ---- - -## 2. Das Kochbuch: Praktische Use-Cases - -### 2.1 Ein Erlebnis aufschreiben (`type: experience`) -**Ziel:** Den „Spiegel“ (Empathy) mit deiner Biografie kalibrieren. - -**Struktur & Leitfragen:** -- **Kontext:** Was ist passiert? (Sachlich kurz). -- **Emotions-Check:** Wie habe ich mich in der Situation gefühlt? (Wichtig für Regel 5). -- **Die Lektion:** Was habe ich über mich gelernt? (z. B. „Ich reagiere allergisch auf Ungerechtigkeit“). -- **Deep-Edge:** Mit welcher Rolle ist das verknüpft? `[[rel:supports Meine Rollenlandkarte 2025#Vater]]`. - -### 2.2 Eine Beobachtung festhalten (`type: insight`) -**Ziel:** Den „Berater“ (Decision) mit Mustern versorgen. - -**Beispiel Rohan-Beobachtung:** -- **Beobachtung:** Rohan reagiert positiv auf „leise“ Impulse und 90/10 Coaching. -- **Interpretation:** Direkte Konfrontation erzeugt Gegendruck; Fragen erzeugen Ownership. -- **Konsequenz:** Prinzip P3a (Familienregeln) muss immer einen Bedürfnischeck vorausschicken. - -### 2.3 Ein Review durchführen (`type: journal` / `insight`) -**Ziel:** Den Fortschritt steuern. -- **Daily:** Rohes Log (Status `draft`). -- **Weekly/Monthly:** Verdichtung der Erkenntnisse in eine `stable` Notiz. Frage: „Was war der größte Hebel diese Woche?“. - -### 2.4 Das Handlungsprinzip (`type: principle`) -**Ziel:** Testbare Regeln für schwierige Entscheidungssituationen. - -**Struktur-Vorgabe:**--- -id: 01-authoring-guidelines -title: Authoring Guidelines – Das Handbuch für den Digitalen Zwilling -type: principle -status: stable version: 1.2.0 area: system_documentation tags: [handbuch, authoring, methodik, obsidian, mindnet, best-practice] retriever_weight: 2.0 --- -## 🕸️ Teil 3: Netzdesign (Hubs, Edges & Lücken) +# Authoring Guidelines: Dein Werkzeug für den Digitalen Zwilling + +Dieses Handbuch ist dein primäres Werkzeug, um Wissen so zu strukturieren, dass Mindnet deine Persönlichkeit spiegelt, empathisch reagiert und dich sowie deine Nachkommen strategisch berät. Es dient als Brücke zwischen deiner menschlichen Navigation in Obsidian und der technischen Logik der Mindnet-Engine. + +--- + +## ⚡ Die 6 Goldenen Regeln (TL;DR) + +1. **Atomare Gedanken:** Eine Notiz = Ein Thema. Trenne z. B. „Meditation“ von „Mobility“, auch wenn beides Ich-Pflege ist. +2. **Explizite Typen:** Nutze den `type` im Frontmatter, um der KI zu sagen, wie sie den Text verarbeiten soll (z. B. `insight` für Beobachtungen, `experience` für Erlebnisse). +3. **Hub-Logik:** Nutze Zentralnotizen (Hubs) als „Kapitel“ für Themen oder Lebensphasen, um atomare Notizen (Events, States) zu Clustern zu binden. +4. **Werte & Ziele definieren:** Erstelle für jeden Nordstern und jeden Kernwert eine eigene Notiz (`type: value`). Ohne Maßstäbe kann die Decision Engine nicht in deinem Sinne abwägen. +5. **Emotionales Bridging:** Nutze Begriffe wie „Druck“, „Stolz“, „Euphorie“ oder „Hilflosigkeit“, um die Empathie-Ebene (Spiegel-Persona) der KI zu aktivieren. +6. **Narrative Tiefe (Fleisch am Knochen):** Dokumentiere das „Warum“ hinter einer Entscheidung. Fakten informieren, aber Erzählungen prägen deinen Charakter für die Nachwelt. + +--- + +## 1. Strategische Steuerung (Status & Gewicht) + +Du entscheidest über das Frontmatter, wie präsent eine Information im „Gedächtnis“ des Systems ist. + +### 1.1 Status-Logik +* **`stable`**: Gold-Standard. Für finale Leitbild-Texte und Nordsterne. Erhält einen Relevanz-Bonus (ca. +20%). +* **`active`**: Standard für laufende Projekte, aktuelle Beobachtungen und verifizierte Erlebnisse. +* **`draft`**: Brainstorming oder rohe Tages-Logs. Die KI nutzt diese nur nachrangig (Malus), um Rauschen zu vermeiden. +* **`system`**: Rein technische Dateien (Templates, Guides). Werden im Chat ignoriert. + +### 1.2 Manuelle Gewichtung (`retriever_weight`) +* **Boost (1.20 - 2.0):** Für hochrelevante Erkenntnisse oder Kernprinzipien. +* **Standard (1.0 - 1.1):** Normale Wichtigkeit für Erfahrungen und Konzepte. +* **Deboost (0.50 - 0.80):** Für tägliche Routine-Einträge oder reine Datensammlungen, die keine Analysen verfälschen sollen. + +--- + +## 2. Die Vault-Architektur (Stream-Mapping) + +Der Vault ist in acht funktionale Domänen unterteilt, die direkt mit den internen Wissens-Streams korrespondieren. + +| Ordner | Domäne | Stream-Logik | Zweck | +| :--- | :--- | :--- | :--- | +| **00_Leitbild** | Verfassung | **Identity** | Chronik deiner Werte-Evolution über die Jahre. | +| **01_Identify** | Kern-Identität | **Identity** | SSOT für Werte, Prinzipien, Rollen, Bedürfnisse und Glaubenssätze. | +| **02_Projects** | Dynamik | **Action** | Aktive Vorhaben, Missionen und operative Aufgaben (Tasks). | +| **03_Experiences** | Biografie | **History** | Speicherort für Erlebnisse (Experiences), Ereignisse (Events) und Zustände (States). | +| **04_Insights** | Erkenntnisse | **History/Basis** | Fachwissen, Konzepte, Ideen und tiefe Musteranalysen. | +| **05_Decisions** | Steuerung | **Action** | Dokumentation getroffener Entscheidungen (ADR-Logik). | +| **06_Skills** | Kompetenz | **Action** | Fertigkeiten, Lernpfade und Meisterschaftsnachweise. | +| **07_People** | Soziales Netz | **History/Basis** | Kontaktprofile, Rollen und soziale Vernetzung. | + +--- + +## 3. Das Schicht-Modell: Cluster, Reflexion & Evidenz + +Innerhalb der Ordner (besonders in `03_Experiences`) nutzen wir eine dreistufige Schichtung, um Navigation und Präzision zu vereinen. + +* **Ebene 1: Cluster-Ebene (Der Hub / Das Kapitel)** + * **Typ:** `insight` oder `experience`. + * **Zweck:** Fasst ein Thema (z. B. "Wemlighausen") oder eine Lebensphase zusammen. Dient als primärer Einstiegspunkt (Hohes Gewicht, Status `stable`). +* **Ebene 2: Reflexionsebene (Die Perle / Das Erlebnis)** + * **Typ:** `experience`. + * **Zweck:** Die bewusste Aufarbeitung eines Ereignisses inklusive emotionaler Einordnung und gelernter Lektion. +* **Ebene 3: Evidenzebene (Die Basis / Das Faktum)** + * **Typ:** `event` oder `state`. + * **Zweck:** Liefert Rohdaten (Wer, Wann, Wo) und die emotionale Intensität des Augenblicks (Momentaufnahmen). + +--- + +## 4. Das Kochbuch: Praktische Use-Cases + +### 4.1 Ein Erlebnis aufschreiben (`type: experience`) +**Ziel:** Den „Spiegel“ (Empathy) mit deiner Biografie kalibrieren. +* **Struktur:** Kontext (Was ist passiert?), Emotions-Check (Gefühle?), Lektion (Was gelernt?). +* **Deep-Edge:** Verknüpfe es mit einer Rolle: `[[rel:supports Meine Rollen#Vater]]`. + +### 4.2 Eine Beobachtung festhalten (`type: insight`) +**Ziel:** Den „Berater“ (Decision) mit Mustern versorgen. +* **Beispiel:** "Rohan reagiert positiv auf leise Impulse" -> Konsequenz: Prinzip Bedürfnischeck. + +### 4.3 Das Handlungsprinzip (`type: principle`) +**Ziel:** Testbare Regeln für schwierige Situationen. +* **Struktur:** Das Prinzip, Anwendung & Beispiele, Wächterfrage (Was frage ich mich im Moment der Entscheidung?). + +--- + +## 5. Netzdesign (Hubs, Edges & Lücken) Ein intelligentes Netz wächst durch strategische Verknüpfungen, nicht durch Textmenge. -### 3.1 Wissens-Hubs (Zentralnotizen) -Hubs fungieren als Verteilerzentren im Graphen. -* **Struktur:** Nutze Überschriften (H2, H3) und verlinke von dort auf Detailnotizen. -* **Deep-Edges:** Verlinke präzise Abschnitte: `[[Rollenlandkarte#Vater]]`. Dies ermöglicht der KI, nur den relevanten Kontext zu laden. +### 5.1 Wissens-Hubs (Zentralnotizen) +Hubs fungieren als Verteilerzentren im Graphen. Nutze Überschriften (H2, H3) und verlinke präzise Abschnitte: `[[Rollenlandkarte#Vater]]`. -### 3.2 Forward-Mapping (Strategische Lücken) -Setze bewusst Links auf Dateien, die noch nicht existieren (z. B. `[[Die beste Version meiner selbst]]`). -* **Zweck:** Du signalisierst dem System: „Hier entsteht ein wichtiges Konzept“. -* **Effekt:** Die KI erkennt diese Lücken und kann im Chat proaktiv Fragen stellen, um diese Felder mit dir gemeinsam zu füllen. +### 5.2 Semantisches Mapping (Kanten) +Nutze funktionale Relationen, um Kausalitäten zu klären: +* `resulted_in`: Erlebnis führt zu Wert/Erkenntnis. +* `based_on`: Prinzip basiert auf einem Wert. +* `caused_by`: Dokumentiert Ursachen für Prägungen. +* `part_of`: Bindet Details an einen Cluster/Hub. + +### 5.3 Forward-Mapping (Strategische Lücken) +Setze Links auf Dateien, die noch nicht existieren (z. B. `[[Die beste Version meiner selbst]]`). Die KI erkennt diese Lücken und stellt proaktiv Fragen. --- -## 4. Obsidian Usability & Automatisierung +## 6. Obsidian Usability & Automatisierung -### 4.1 Templater-Integration -Nutze Vorlagen, die bereits die **Leitfragen** und das richtige **Retriever-Weight** enthalten. Ein Klick auf „Neues Erlebnis“ sollte automatisch das Frontmatter mit `type: experience` und `weight: 1.1` füllen. +### 6.1 Templater & Meta Bind +* **Automatisierung:** Nutze Vorlagen, die bereits Leitfragen und das richtige `retriever_weight` enthalten. +* **Interaktive Steuerung:** Nutze Meta Bind, um `status` oder `retriever_weight` direkt in der Notiz über Schieberegler zu steuern. -### 4.2 Meta Bind Dashboards -Nutze **Meta Bind**, um Felder wie `status` oder `retriever_weight` über Schieberegler direkt in der Notiz zu steuern. Das macht die Gewichtung deines Wissens intuitiv und spielerisch. +### 6.2 Deep-Edges & Verknüpfung +* Verlinke Erlebnisse konsequent mit Rollen oder Clustern. +* Nutze `derived_from`, um Prinzipien an ihre Ursprungssituation zu binden. --- -## 5. Vernetzung für die Mindnet-Personas +## 7. Vernetzung für die Mindnet-Personas | Persona | Notiz-Fokus | Effekt im Dialog | | :--- | :--- | :--- | -| **🪞 Spiegel (Empathy)** | Gefühle & Biografisches | „Ich verstehe deinen Frust, das war bei Projekt X ähnlich...“. | -| **⚖️ Berater (Decision)** | Werte & Wächterfragen | „Option A ist nicht ratsam, da sie gegen dein Prinzip der Integrität verstößt“. | -| **📚 Bibliothekar (Facts)** | Struktur & Definitionen | „Deine Mission als Vater ist es, verlässliche Präsenz zu zeigen...“. | +| **🪞 Spiegel (Empathy)** | `states`, `journal`, `experience` | „Ich verstehe deine Faszination, das war damals mit den Eidechsen ähnlich...“. | +| **⚖️ Berater (Decision)** | `values`, `principles`, `decisions` | „Diese Option ist nicht ratsam, da sie gegen dein Prinzip der Integrität verstößt“. | +| **📚 Bibliothekar (Facts)** | `events`, `concepts`, `sources`, `people` | „Das Wochenendhaus wurde im Jahr X erworben, Klaus baute damals das Terrarium“. | --- -> [!abstract] Fazit für den Autor -> Mindnet ist ein **Persönlichkeitsspiegel**. Dokumentiere weniger „Technik“ und mehr „Mensch“. Jede Notiz sollte die Frage beantworten: „Was sagt das über mich und meine Werte aus?“. -- **3 Signale:** Woran merke ich im Alltag, dass ich das Prinzip lebe?. -- **Wächterfrage:** Welche Frage stelle ich mir im Moment der Entscheidung?. - ---- - -## 6. Obsidian Workflow-Hacks - -### 6.1 Templater & Meta Bind -- **Automatisierung:** Nutze das **Templater-Plugin**, um beim Erstellen einer Notiz sofort die passenden Leitfragen und das richtige `retriever_weight` einzufügen. -- **Interaktive Steuerung:** Nutze **Meta Bind**, um Felder wie `status` oder `retriever_weight` über Buttons oder Slider direkt im Lesemodus zu ändern, ohne im YAML-Code zu tippen. - -### 6.2 Deep-Edges & Verknüpfung -- Verknüpfe Erlebnisse immer mit der entsprechenden Rolle: `[[rel:supports Meine Rollenlandkarte 2025#Vater]]`. -- Nutze `derived_from`, um Prinzipien an ihre Ursprungs-Session zu binden. - ---- - -## 7. Vernetzung für Mindnet Personas - -| Persona | Notiz-Fokus | Beispiel | -| :--- | :--- | :--- | -| **🪞 Spiegel (Empathy)** | Emotionen & Prägungen | „Ich fühlte mich hilflos, als...“. | -| **⚖️ Berater (Decision)** | Kriterien & Abwägungen | „Option A verletzt Wert X, weil...“. | -| **📚 Bibliothekar (Facts)** | Struktur & Definition | „Rollenmission Vater bedeutet...“. | - ---- - -> [!tip] Best Practice -> Wenn du merkst, dass eine Notiz zu technisch wird: Halte inne und frage dich: „Was macht das mit mir als Mensch?“ Schreibe *das* auf. Das ist die Essenz für deinen KI-Zwilling. - -## 8. Verbindungen von Notiztypen +## 8. Verbindungen von Notiztypen (Graphen-Logik) ```mermaid graph TD @@ -185,5 +170,4 @@ graph TD style V fill:#f9f,stroke:#333,stroke-width:2px style EX fill:#bbf,stroke:#333,stroke-width:2px - style P fill:#bfb,stroke:#333,stroke-width:2px - + style P fill:#bfb,stroke:#333,stroke-width:2px \ No newline at end of file diff --git a/docs/03_Technical_References/consolidated_config_files.md b/docs/03_Technical_References/consolidated_config_files.md new file mode 100644 index 0000000..2b50c93 --- /dev/null +++ b/docs/03_Technical_References/consolidated_config_files.md @@ -0,0 +1,1007 @@ +# File: /config/types.yaml +############################### +version: 2.7.0 # WP-14 Update: Dynamisierung der Ingestion-Pipeline + +# ============================================================================== +# 1. CHUNKING PROFILES +# ============================================================================== + +chunking_profiles: + + # A. SHORT & FAST + sliding_short: + strategy: sliding_window + enable_smart_edge_allocation: false + target: 200 + max: 350 + overlap: [30, 50] + + # B. STANDARD & FAST + sliding_standard: + strategy: sliding_window + enable_smart_edge_allocation: false + target: 450 + max: 650 + overlap: [50, 100] + + # C. SMART FLOW (Text-Fluss) + # Nutzt Sliding Window, aber mit LLM-Kanten-Analyse. + sliding_smart_edges: + strategy: sliding_window + enable_smart_edge_allocation: true + target: 400 + max: 600 + overlap: [50, 80] + + # D. SMART STRUCTURE (Soft Split) + # Trennt bevorzugt an H2, fasst aber kleine Abschnitte zusammen ("Soft Mode"). + structured_smart_edges: + strategy: by_heading + enable_smart_edge_allocation: true + split_level: 2 + strict_heading_split: false + max: 600 + target: 400 + overlap: [50, 80] + + # E. SMART STRUCTURE STRICT (H2 Hard Split) + # Trennt ZWINGEND an jeder H2. + # Verhindert, dass "Vater" und "Partner" (Profile) oder Werte verschmelzen. + structured_smart_edges_strict: + strategy: by_heading + enable_smart_edge_allocation: true + split_level: 2 + strict_heading_split: true # Hard Mode + max: 600 + target: 400 + overlap: [50, 80] + + # F. SMART STRUCTURE DEEP (H3 Hard Split + Merge-Check) + # Spezialfall für "Leitbild Prinzipien": + # - Trennt H1, H2, H3 hart. + # - Aber: Merged "leere" H2 (Tier 2) mit der folgenden H3 (MP1). + structured_smart_edges_strict_L3: + strategy: by_heading + enable_smart_edge_allocation: true + split_level: 3 + strict_heading_split: true + max: 600 + target: 400 + overlap: [50, 80] + +# ============================================================================== +# 2. DEFAULTS +# ============================================================================== +defaults: + retriever_weight: 1.0 + chunking_profile: sliding_standard + edge_defaults: [] + +# ============================================================================== +# 3. INGESTION SETTINGS (WP-14 Dynamization) +# ============================================================================== +# Steuert, welche Notizen verarbeitet werden und wie Fallbacks aussehen. +ingestion_settings: + # Liste der Status-Werte, die beim Import ignoriert werden sollen. + ignore_statuses: ["system", "template", "archive", "hidden"] + # Standard-Typ, falls kein Typ im Frontmatter angegeben ist. + default_note_type: "concept" + +# ============================================================================== +# 4. SUMMARY & SCAN SETTINGS +# ============================================================================== +# Steuert die Tiefe des Pre-Scans für den Context-Cache. +summary_settings: + max_summary_length: 500 + pre_scan_depth: 600 + +# ============================================================================== +# 5. LLM SETTINGS +# ============================================================================== +# Steuerzeichen und Patterns zur Bereinigung der LLM-Antworten. +llm_settings: + cleanup_patterns: ["", "", "[OUT]", "[/OUT]", "```json", "```"] + +# ============================================================================== +# 6. TYPE DEFINITIONS +# ============================================================================== + +types: + + experience: + chunking_profile: sliding_smart_edges + retriever_weight: 1.10 # Erhöht für biografische Relevanz + edge_defaults: ["derived_from", "references"] + detection_keywords: ["erleben", "reagieren", "handeln", "prägen", "reflektieren"] + schema: + - "Situation (Was ist passiert?)" + - "Meine Reaktion (Was habe ich getan?)" + - "Ergebnis & Auswirkung" + - "Reflexion & Learning (Was lerne ich daraus?)" + + insight: + chunking_profile: sliding_smart_edges + retriever_weight: 1.20 # Hoch gewichtet für aktuelle Steuerung + edge_defaults: ["references", "based_on"] + detection_keywords: ["beobachten", "erkennen", "verstehen", "analysieren", "schlussfolgern"] + schema: + - "Beobachtung (Was sehe ich?)" + - "Interpretation (Was bedeutet das?)" + - "Bedürfnis (Was steckt dahinter?)" + - "Handlungsempfehlung" + + project: + chunking_profile: sliding_smart_edges + retriever_weight: 0.97 + edge_defaults: ["references", "depends_on"] + detection_keywords: ["umsetzen", "planen", "starten", "bauen", "abschließen"] + schema: + - "Mission & Zielsetzung" + - "Aktueller Status & Blockaden" + - "Nächste konkrete Schritte" + + decision: + chunking_profile: structured_smart_edges_strict + retriever_weight: 1.00 + edge_defaults: ["caused_by", "references"] + detection_keywords: ["entscheiden", "wählen", "abwägen", "priorisieren", "festlegen"] + schema: + - "Kontext & Problemstellung" + - "Betrachtete Optionen" + - "Die Entscheidung" + - "Begründung" + + # --- PERSÖNLICHKEIT & IDENTITÄT --- + + value: + chunking_profile: structured_smart_edges_strict + retriever_weight: 1.00 + edge_defaults: ["related_to"] + detection_keywords: ["werten", "achten", "verpflichten", "bedeuten"] + schema: + - "Definition" + - "Warum mir das wichtig ist" + - "Leitsätze" + + principle: + chunking_profile: structured_smart_edges_strict_L3 + retriever_weight: 0.95 + edge_defaults: ["derived_from", "references"] + detection_keywords: ["leiten", "steuern", "ausrichten", "handhaben"] + schema: + - "Das Prinzip" + - "Anwendung & Beispiele" + + trait: + chunking_profile: structured_smart_edges_strict + retriever_weight: 1.10 + edge_defaults: ["related_to"] + detection_keywords: ["begeistern", "können", "auszeichnen", "befähigen", "stärken"] + schema: + - "Eigenschaft / Talent" + - "Beispiele aus der Praxis" + - "Potenzial für die Zukunft" + + obstacle: + chunking_profile: structured_smart_edges_strict + retriever_weight: 1.00 + edge_defaults: ["blocks", "related_to"] + detection_keywords: ["blockieren", "fürchten", "vermeiden", "hindern", "zweifeln"] + schema: + - "Beschreibung der Hürde" + - "Ursprung / Auslöser" + - "Auswirkung auf Ziele" + - "Gegenstrategie" + + belief: + chunking_profile: sliding_short + retriever_weight: 0.90 + edge_defaults: ["related_to"] + detection_keywords: ["glauben", "meinen", "annehmen", "überzeugen"] + schema: + - "Der Glaubenssatz" + - "Ursprung & Reflexion" + + profile: + chunking_profile: structured_smart_edges_strict + retriever_weight: 0.70 + edge_defaults: ["references", "related_to"] + detection_keywords: ["verkörpern", "verantworten", "agieren", "repräsentieren"] + schema: + - "Rolle / Identität" + - "Fakten & Daten" + - "Historie" + + + idea: + chunking_profile: sliding_short + retriever_weight: 0.70 + edge_defaults: ["leads_to", "references"] + detection_keywords: ["einfall", "gedanke", "potenzial", "möglichkeit"] + schema: + - "Der Kerngedanke" + - "Potenzial & Auswirkung" + - "Nächste Schritte" + + skill: + chunking_profile: sliding_smart_edges + retriever_weight: 0.90 + edge_defaults: ["references", "related_to"] + detection_keywords: ["lernen", "beherrschen", "üben", "fertigkeit", "kompetenz"] + schema: + - "Definition der Fähigkeit" + - "Aktueller Stand & Lernpfad" + - "Evidenz (Proof of Work)" + + habit: + chunking_profile: sliding_short + retriever_weight: 0.85 + edge_defaults: ["related_to", "triggered_by"] + detection_keywords: ["gewohnheit", "routine", "automatismus", "immer wenn"] + schema: + - "Auslöser (Trigger)" + - "Routine (Handlung)" + - "Belohnung (Reward)" + - "Strategie" + + need: + chunking_profile: sliding_smart_edges + retriever_weight: 1.05 + edge_defaults: ["related_to", "impacts"] + detection_keywords: ["bedürfnis", "brauchen", "mangel", "erfüllung"] + schema: + - "Das Bedürfnis" + - "Zustand (Mangel vs. Erfüllung)" + - "Bezug zu Werten" + + motivation: + chunking_profile: sliding_smart_edges + retriever_weight: 0.95 + edge_defaults: ["drives", "references"] + detection_keywords: ["motivation", "antrieb", "warum", "energie"] + schema: + - "Der Antrieb" + - "Zielbezug" + - "Energiequelle" + + bias: + chunking_profile: sliding_short + retriever_weight: 0.80 + edge_defaults: ["affects", "related_to"] + detection_keywords: ["denkfehler", "verzerrung", "vorurteil", "falle"] + schema: ["Beschreibung der Verzerrung", "Typische Situationen", "Gegenstrategie"] + + state: + chunking_profile: sliding_short + retriever_weight: 0.60 + edge_defaults: ["impacts"] + detection_keywords: ["stimmung", "energie", "gefühl", "verfassung"] + schema: ["Aktueller Zustand", "Auslöser", "Auswirkung auf den Tag"] + + boundary: + chunking_profile: sliding_smart_edges + retriever_weight: 0.90 + edge_defaults: ["protects", "related_to"] + detection_keywords: ["grenze", "nein sagen", "limit", "schutz"] + schema: ["Die Grenze", "Warum sie wichtig ist", "Konsequenz bei Verletzung"] + # --- STRATEGIE & RISIKO --- + + goal: + chunking_profile: sliding_smart_edges + retriever_weight: 0.95 + edge_defaults: ["depends_on", "related_to"] + schema: ["Zielzustand", "Zeitrahmen & KPIs", "Motivation"] + + risk: + chunking_profile: sliding_short + retriever_weight: 0.85 + edge_defaults: ["related_to", "blocks"] + detection_keywords: ["risiko", "gefahr", "bedrohung"] + schema: ["Beschreibung des Risikos", "Auswirkungen", "Gegenmaßnahmen"] + + # --- BASIS & WISSEN --- + + concept: + chunking_profile: sliding_smart_edges + retriever_weight: 0.60 + edge_defaults: ["references", "related_to"] + schema: ["Definition", "Kontext", "Verwandte Konzepte"] + + task: + chunking_profile: sliding_short + retriever_weight: 0.80 + edge_defaults: ["depends_on", "part_of"] + schema: ["Aufgabe", "Kontext", "Definition of Done"] + + journal: + chunking_profile: sliding_standard + retriever_weight: 0.80 + edge_defaults: ["references", "related_to"] + schema: ["Log-Eintrag", "Gedanken"] + + source: + chunking_profile: sliding_standard + retriever_weight: 0.50 + edge_defaults: [] + schema: ["Metadaten", "Zusammenfassung", "Zitate"] + + glossary: + chunking_profile: sliding_short + retriever_weight: 0.40 + edge_defaults: ["related_to"] + schema: ["Begriff", "Definition"] + + person: + chunking_profile: sliding_standard + retriever_weight: 0.50 + edge_defaults: ["related_to"] + schema: ["Rolle", "Beziehung", "Kontext"] + + event: + chunking_profile: sliding_standard + retriever_weight: 0.60 + edge_defaults: ["related_to"] + schema: ["Datum & Ort", "Teilnehmer", "Ergebnisse"] + + # --- FALLBACK --- + + default: + chunking_profile: sliding_standard + retriever_weight: 1.00 + edge_defaults: ["references"] + schema: ["Inhalt"] + +# File: /config/decision_engine.yaml +################################### + +# config/decision_engine.yaml +# VERSION: 3.2.2 (WP-25a: Decoupled MoE Logic) +# STATUS: Active +# DESCRIPTION: Zentrale Orchestrierung der Multi-Stream-Engine. +# FIX: +# - Auslagerung der LLM-Profile in llm_profiles.yaml zur zentralen Wartbarkeit. +# - Integration von compression_thresholds zur Inhaltsverdichtung (WP-25a). +# - 100% Erhalt aller WP-25 Edge-Boosts und Filter-Typen (v3.1.6). + +version: 3.2 + +settings: + llm_fallback_enabled: true + # "auto" nutzt den globalen Default-Provider aus der .env + router_provider: "auto" + # Verweis auf den Intent-Klassifizierer in der prompts.yaml + router_prompt_key: "intent_router_v1" + # Pfad zur neuen Experten-Konfiguration (WP-25a Architektur-Cleanliness) + profiles_config_path: "config/llm_profiles.yaml" + router_profile: "compression_fast" + +# --- EBENE 1: STREAM-LIBRARY (Bausteine basierend auf types.yaml v2.7.0) --- +streams_library: + values_stream: + name: "Identität & Ethik" + # Referenz auf Experten-Profil (z.B. lokal via Ollama für Privacy) + llm_profile: "identity_safe" + compression_profile: "identity_safe" + compression_threshold: 2500 + query_template: "Welche meiner Werte und Prinzipien betreffen: {query}" + 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 + + facts_stream: + name: "Operative Realität" + llm_profile: "synthesis_pro" + compression_profile: "compression_fast" + compression_threshold: 3500 + query_template: "Status, Ressourcen und Fakten zu: {query}" + 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 + + biography_stream: + name: "Persönliche Erfahrung" + llm_profile: "synthesis_pro" + compression_profile: "compression_fast" + compression_threshold: 3000 + query_template: "Welche Erlebnisse habe ich im Kontext von {query} gemacht?" + filter_types: ["experience", "journal", "profile", "person"] + top_k: 3 + edge_boosts: + related_to: 1.5 + experienced_in: 2.0 + expert_for: 2.5 + + risk_stream: + name: "Risiko-Radar" + llm_profile: "synthesis_pro" + compression_profile: "compression_fast" + compression_threshold: 2500 + query_template: "Gefahren, Hindernisse oder Risiken bei: {query}" + filter_types: ["risk", "obstacle", "bias"] + top_k: 3 + edge_boosts: + blocks: 2.5 + impacts: 2.0 + risk_of: 2.5 + + tech_stream: + name: "Wissen & Technik" + llm_profile: "tech_expert" + compression_profile: "compression_fast" + compression_threshold: 4500 + query_template: "Inhaltliche Details und Definitionen zu: {query}" + filter_types: ["concept", "source", "glossary", "idea", "insight", "skill", "habit"] + top_k: 5 + edge_boosts: + uses: 2.5 + implemented_in: 3.0 + +# --- EBENE 2: STRATEGIEN (Finale Komposition via MoE-Profile) --- +strategies: + FACT_WHEN: + description: "Abfrage von exakten Zeitpunkten und Terminen." + llm_profile: "synthesis_pro" + trigger_keywords: ["wann", "datum", "uhrzeit", "zeitpunkt"] + use_streams: ["facts_stream", "biography_stream", "tech_stream"] + prompt_template: "fact_synthesis_v1" + + FACT_WHAT: + description: "Abfrage von Definitionen, Listen und Inhalten." + llm_profile: "synthesis_pro" + trigger_keywords: ["was ist", "welche sind", "liste", "übersicht", "zusammenfassung"] + use_streams: ["facts_stream", "tech_stream", "biography_stream"] + prompt_template: "fact_synthesis_v1" + + DECISION: + description: "Der User sucht Rat, Strategie oder Abwägung." + llm_profile: "synthesis_pro" + trigger_keywords: ["soll ich", "sollte ich", "entscheidung", "abwägen", "priorität", "empfehlung"] + use_streams: ["values_stream", "facts_stream", "risk_stream"] + prompt_template: "decision_synthesis_v1" + prepend_instruction: | + !!! ENTSCHEIDUNGS-MODUS (AGENTIC MULTI-STREAM) !!! + Analysiere die Fakten vor dem Hintergrund meiner Werte und evaluiere die Risiken. + Wäge ab, ob das Vorhaben mit meiner langfristigen Identität kompatibel ist. + + EMPATHY: + description: "Reaktion auf emotionale Zustände." + llm_profile: "synthesis_pro" + trigger_keywords: ["fühle", "traurig", "glücklich", "stress", "angst"] + use_streams: ["biography_stream", "values_stream"] + prompt_template: "empathy_template" + + CODING: + description: "Technische Anfragen und Programmierung." + llm_profile: "tech_expert" + 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 (Eingabemodus)." + llm_profile: "compression_fast" + use_streams: [] + prompt_template: "interview_template" + + +# File: config/prompts.yaml — VERSION 3.2.2 (WP-25b: Hierarchical Model Sync) +# STATUS: Active +# FIX: +# - 100% Erhalt der Original-Prompts aus v3.1.2 für die Provider-Ebene (ollama, gemini, openrouter). +# - Integration der Modell-spezifischen Overrides für Gemini 2.0, Llama 3.3 und Qwen 2.5. +# - Hinzufügen des notwendigen 'compression_template' für die DecisionEngine v1.3.0. + +system_prompt: | + Du bist 'mindnet', mein digitaler Zwilling und strategischer Partner. + + DEINE IDENTITÄT: + - Du bist nicht nur eine Datenbank, sondern handelst nach MEINEN Werten und Zielen. + - Du passt deinen Stil dynamisch an die Situation an (Analytisch, Empathisch oder Technisch). + + DEINE REGELN: + 1. Deine Antwort muss zu 100% auf dem bereitgestellten KONTEXT basieren. + 2. Halluziniere keine Fakten, die nicht in den Quellen stehen. + 3. Antworte auf Deutsch (außer bei Code/Fachbegriffen). + +# --------------------------------------------------------- +# 1. STANDARD: Fakten & Wissen (Intent: FACT_WHAT / FACT_WHEN) +# --------------------------------------------------------- +fact_synthesis_v1: + # --- Modell-spezifisch (WP-25b Optimierung) --- + "google/gemini-2.0-flash-exp:free": | + Analysiere die Wissens-Streams für: {query} + FAKTEN: {facts_stream} | BIOGRAFIE: {biography_stream} | TECHNIK: {tech_stream} + Nutze deine hohe Reasoning-Kapazität für eine tiefe Synthese. Antworte präzise auf Deutsch. + + "meta-llama/llama-3.3-70b-instruct:free": | + Erstelle eine fundierte Synthese für die Frage: "{query}" + Nutze die Daten: {facts_stream}, {biography_stream} und {tech_stream}. + Trenne klare Fakten von Erfahrungen. Bleibe strikt beim bereitgestellten Kontext. + + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + ollama: | + WISSENS-STREAMS: + ========================================= + FAKTEN & STATUS: + {facts_stream} + + ERFAHRUNG & BIOGRAFIE: + {biography_stream} + + WISSEN & TECHNIK: + {tech_stream} + ========================================= + + FRAGE: + {query} + + ANWEISUNG: + Beantworte die Frage präzise basierend auf den Quellen. + Kombiniere harte Fakten mit persönlichen Erfahrungen, falls vorhanden. + Fasse die Informationen zusammen. Sei objektiv und neutral. + + gemini: | + Beantworte die Wissensabfrage "{query}" basierend auf diesen Streams: + FAKTEN: {facts_stream} + BIOGRAFIE/ERFAHRUNG: {biography_stream} + TECHNIK: {tech_stream} + Kombiniere harte Fakten mit persönlichen Erfahrungen, falls vorhanden. Antworte strukturiert und präzise. + + openrouter: | + Synthese der Wissens-Streams für: {query} + Inhalt: {facts_stream} | {biography_stream} | {tech_stream} + Antworte basierend auf dem bereitgestellten Kontext. + + default: "Beantworte {query} basierend auf dem Kontext: {facts_stream} {biography_stream} {tech_stream}." + +# --------------------------------------------------------- +# 2. DECISION: Strategie & Abwägung (Intent: DECISION) +# --------------------------------------------------------- +decision_synthesis_v1: + # --- Modell-spezifisch (WP-25b Optimierung) --- + "google/gemini-2.0-flash-exp:free": | + Agiere als strategischer Partner für: {query} + WERTE: {values_stream} | FAKTEN: {facts_stream} | RISIKEN: {risk_stream} + Prüfe die Fakten gegen meine Werte. Zeige Zielkonflikte auf. Gib eine klare Empfehlung. + + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + ollama: | + ENTSCHEIDUNGS-STREAMS: + ========================================= + WERTE & PRINZIPIEN (Identität): + {values_stream} + + OPERATIVE FAKTEN (Realität): + {facts_stream} + + RISIKO-RADAR (Konsequenzen): + {risk_stream} + ========================================= + + ENTSCHEIDUNGSFRAGE: + {query} + + ANWEISUNG: + Du agierst als mein Entscheidungs-Partner. + 1. Analysiere die Faktenlage aus den Quellen. + 2. Prüfe dies hart gegen meine strategischen Notizen (Werte & Prinzipien). + 3. Wäge ab: Passt die technische/faktische Lösung zu meinen Werten? + + FORMAT: + - **Analyse:** (Kurze Zusammenfassung der Fakten) + - **Abgleich:** (Gibt es Konflikte mit Werten/Zielen? Nenne die Quelle!) + - **Empfehlung:** (Klare Meinung: Ja/No/Vielleicht mit Begründung) + + gemini: | + Agiere als mein strategischer Partner. Analysiere die Frage: {query} + Werte: {values_stream} | Fakten: {facts_stream} | Risiken: {risk_stream}. + Wäge ab und gib eine klare strategische Empfehlung ab. + + openrouter: | + Strategische Multi-Stream Analyse für: {query} + Werte-Basis: {values_stream} | Fakten: {facts_stream} | Risiken: {risk_stream} + Bitte wäge ab und gib eine Empfehlung. + + default: "Prüfe {query} gegen Werte {values_stream} und Fakten {facts_stream}." + +# --------------------------------------------------------- +# 3. EMPATHY: Der Spiegel / "Ich"-Modus (Intent: EMPATHY) +# --------------------------------------------------------- +empathy_template: + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + ollama: | + KONTEXT (ERFAHRUNGEN & WERTE): + ========================================= + ERLEBNISSE & BIOGRAFIE: + {biography_stream} + + WERTE & BEDÜRFNISSE: + {values_stream} + ========================================= + + SITUATION: + {query} + + ANWEISUNG: + Du agierst jetzt als mein empathischer Spiegel. + 1. Versuche nicht sofort, das Problem technisch zu lösen. + 2. Zeige Verständnis für die Situation basierend auf meinen eigenen Erfahrungen ([EXPERIENCE]) oder Werten, falls im Kontext vorhanden. + 3. Antworte in der "Ich"-Form oder "Wir"-Form. Sei unterstützend. + + TONFALL: + Ruhig, verständnisvoll, reflektiert. Keine Aufzählungszeichen, sondern fließender Text. + + gemini: "Sei mein digitaler Spiegel für {query}. Kontext: {biography_stream}, {values_stream}" + openrouter: "Empathische Reflexion der Situation {query}. Persönlicher Kontext: {biography_stream}, {values_stream}" + + default: "Reflektiere empathisch über {query} basierend auf {biography_stream}." + +# --------------------------------------------------------- +# 4. TECHNICAL: Der Coder (Intent: CODING) +# --------------------------------------------------------- +technical_template: + # --- Modell-spezifisch (WP-25b Optimierung) --- + "qwen/qwen-2.5-vl-7b-instruct:free": | + Du bist Senior Software Engineer. TASK: {query} + REFERENZEN: {tech_stream} | KONTEXT: {facts_stream} + Generiere validen, performanten Code. Nutze die Snippets aus dem Kontext. + + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + ollama: | + KONTEXT (WISSEN & PROJEKTE): + ========================================= + TECHNIK & SNIPPETS: + {tech_stream} + + PROJEKT-STATUS: + {facts_stream} + ========================================= + + TASK: + {query} + + ANWEISUNG: + Du bist Senior Developer. + 1. Ignoriere Smalltalk. Komm sofort zum Punkt. + 2. Generiere validen, performanten Code basierend auf den Quellen. + 3. Wenn Quellen fehlen, nutze dein allgemeines Programmierwissen, aber weise darauf hin. + + FORMAT: + - Kurze Erklärung des Ansatzes. + - Markdown Code-Block (Copy-Paste fertig). + - Wichtige Edge-Cases. + + gemini: "Generiere Code für {query} unter Berücksichtigung von {tech_stream} und {facts_stream}." + openrouter: "Technischer Support für {query}. Referenzen: {tech_stream}, Projekt-Kontext: {facts_stream}" + + default: "Erstelle eine technische Lösung für {query}." + +# --------------------------------------------------------- +# 5. INTERVIEW: Der "One-Shot Extractor" (WP-07) +# --------------------------------------------------------- +interview_template: + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + ollama: | + TASK: + Du bist ein professioneller Ghostwriter. Verwandle den "USER INPUT" in eine strukturierte Notiz vom Typ '{target_type}'. + + STRUKTUR (Nutze EXAKT diese Überschriften): + {schema_fields} + + USER INPUT: + "{query}" + + ANWEISUNG ZUM INHALT: + 1. Analysiere den Input genau. + 2. Schreibe die Inhalte unter die passenden Überschriften aus der STRUKTUR-Liste oben. + 3. STIL: Schreibe flüssig, professionell und in der Ich-Perspektive. Korrigiere Grammatikfehler, aber behalte den persönlichen Ton bei. + 4. Wenn Informationen für einen Abschnitt fehlen, schreibe nur: "[TODO: Ergänzen]". Erfinde nichts dazu. + + OUTPUT FORMAT (YAML + MARKDOWN): + --- + type: {target_type} + status: draft + title: (Erstelle einen treffenden, kurzen Titel für den Inhalt) + tags: [Tag1, Tag2] + --- + + # (Wiederhole den Titel hier) + + ## (Erster Begriff aus STRUKTUR) + (Text...) + + ## (Zweiter Begriff aus STRUKTUR) + (Text...) + + gemini: "Extrahiere Daten für {target_type} aus {query}." + openrouter: "Strukturiere den Input {query} nach dem Schema {schema_fields} für Typ {target_type}." + + default: "Extrahiere Informationen für {target_type} aus dem Input: {query}" + +# --------------------------------------------------------- +# 6. WP-25b: PRE-SYNTHESIS COMPRESSION (Neu!) +# --------------------------------------------------------- +compression_template: + "mistralai/mistral-7b-instruct:free": | + Reduziere den Stream '{stream_name}' auf die Informationen, die für die Beantwortung der Frage '{query}' absolut notwendig sind. + BEHALTE: Harte Fakten, Projektnamen, konkrete Werte und Quellenangaben. + ENTFERNE: Redundante Einleitungen, Füllwörter und irrelevante Details. + + INHALT: + {content} + + KOMPRIMIERTE ANALYSE: + + default: "Fasse das Wichtigste aus {stream_name} für die Frage {query} kurz zusammen: {content}" + +# --------------------------------------------------------- +# 7. EDGE_ALLOCATION: Kantenfilter (Ingest) +# --------------------------------------------------------- +edge_allocation_template: + ollama: | + TASK: + Du bist ein strikter Selektor. Du erhältst eine Liste von "Kandidaten-Kanten" (Strings). + Wähle jene aus, die inhaltlich im "Textabschnitt" vorkommen oder relevant sind. + + TEXTABSCHNITT: + """ + {chunk_text} + """ + + KANDIDATEN (Auswahl-Pool): + {edge_list} + + REGELN: + 1. Die Kanten haben das Format "typ:ziel". Der "typ" ist variabel und kann ALLES sein. + 2. Gib NUR die Strings aus der Kandidaten-Liste zurück, die zum Text passen. + 3. Erfinde KEINE neuen Kanten. + 4. Antworte als flache JSON-Liste. + + DEIN OUTPUT (JSON): + + gemini: | + TASK: Ordne Kanten einem Textabschnitt zu. + ERLAUBTE TYPEN: {valid_types} + TEXT: {chunk_text} + KANDIDATEN: {edge_list} + OUTPUT: STRIKT eine flache JSON-Liste ["typ:ziel"]. Kein Text davor/danach. Wenn nichts: []. Keine Objekte! + + openrouter: | + TASK: Filtere relevante Kanten aus dem Pool. + ERLAUBTE TYPEN: {valid_types} + TEXT: {chunk_text} + POOL: {edge_list} + ANWEISUNG: Gib NUR eine flache JSON-Liste von Strings zurück. + BEISPIEL: ["kind:target", "kind:target"] + REGEL: Kein Text, keine Analyse, keine Kommentare. Wenn nichts passt, gib [] zurück. + OUTPUT: + + default: "[]" + +# --------------------------------------------------------- +# 8. SMART EDGE ALLOCATION: Extraktion (Ingest) +# --------------------------------------------------------- +edge_extraction: + ollama: | + TASK: + Du bist ein Wissens-Ingenieur für den digitalen Zwilling 'mindnet'. + Deine Aufgabe ist es, semantische Relationen (Kanten) aus dem Text zu extrahieren, + die die Hauptnotiz '{note_id}' mit anderen Konzepten verbinden. + + ANWEISUNGEN: + 1. Identifiziere wichtige Entitäten, Konzepte oder Ereignisse im Text. + 2. Bestimme die Art der Beziehung (z.B. part_of, uses, related_to, blocks, caused_by). + 3. Das Ziel (target) muss ein prägnanter Begriff sein. + 4. Antworte AUSSCHLIESSLICH in validem JSON als Liste von Objekten. + + BEISPIEL: + [[ {{"to": "Ziel-Konzept", \"kind\": \"beziehungs_typ\"}} ]] + + TEXT: + """ + {text} + """ + + DEIN OUTPUT (JSON): + + gemini: | + Analysiere '{note_id}'. Extrahiere semantische Beziehungen. + ERLAUBTE TYPEN: {valid_types} + TEXT: {text} + OUTPUT: STRIKT JSON-Array von Objekten: [[{{"to\":\"Ziel\",\"kind\":\"typ\"}}]]. Kein Text davor/danach. Wenn nichts: []. + + openrouter: | + TASK: Extrahiere semantische Relationen für '{note_id}'. + ERLAUBTE TYPEN: {valid_types} + TEXT: {text} + ANWEISUNG: Antworte AUSSCHLIESSLICH mit einem JSON-Array von Objekten. + FORMAT: [[{{"to\":\"Ziel-Begriff\",\"kind\":\"typ\"}}]] + STRIKTES VERBOT: Schreibe keine Einleitung, keine Analyse und keine Erklärungen. + Wenn keine Relationen existieren, antworte NUR mit: [] + OUTPUT: + + default: "[]" + +# --------------------------------------------------------- +# 9. INGESTION: EDGE VALIDATION (Ingest/Validate) +# --------------------------------------------------------- +edge_validation: + # --- Modell-spezifisch (WP-25b Optimierung) --- + "mistralai/mistral-7b-instruct:free": | + Verify relation '{edge_kind}' for graph integrity. + Chunk: "{chunk_text}" + Target: "{target_title}" ({target_summary}) + Respond ONLY with 'YES' or 'NO'. + + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + gemini: | + Bewerte die semantische Validität dieser Verbindung im Wissensgraph. + + KONTEXT DER QUELLE (Chunk): + "{chunk_text}" + + ZIEL-NOTIZ: "{target_title}" + ZIEL-BESCHREIBUNG (Zusammenfassung): + "{target_summary}" + + GEPLANTE RELATION: "{edge_kind}" + + FRAGE: Bestätigt der Kontext der Quelle die Beziehung '{edge_kind}' zum Ziel? + REGEL: Antworte NUR mit 'YES' oder 'NO'. Keine Erklärungen oder Smalltalk. + + openrouter: | + Verify semantic relation for graph construction. + Source Context: {chunk_text} + Target Note: {target_title} + Target Summary: {target_summary} + Proposed Relation: {edge_kind} + Instruction: Does the source context support this relation to the target? + Result: Respond ONLY with 'YES' or 'NO'. + + ollama: | + Bewerte die semantische Korrektheit dieser Verbindung. + QUELLE: {chunk_text} + ZIEL: {target_title} ({target_summary}) + BEZIEHUNG: {edge_kind} + Ist diese Verbindung valide? Antworte NUR mit YES oder NO. + + default: "YES" + +# --------------------------------------------------------- +# 10. WP-25: INTENT ROUTING (Intent: CLASSIFY) +# --------------------------------------------------------- +intent_router_v1: + # --- Modell-spezifisch (WP-25b Optimierung) --- + "mistralai/mistral-7b-instruct:free": | + Classify query "{query}" into exactly one of these categories: + FACT_WHEN, FACT_WHAT, DECISION, EMPATHY, CODING, INTERVIEW. + Respond with the category name only. + + # --- EXAKTE Provider-Fallbacks aus v3.1.2 --- + ollama: | + Analysiere die Nutzeranfrage und wähle die passende Strategie. + Antworte NUR mit dem Namen der Strategie. + + STRATEGIEN: + - 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 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 strategy for Mindnet: + FACT_WHEN (timing/dates), FACT_WHAT (entities/lists/what/which), DECISION, EMPATHY, CODING, INTERVIEW. + Query: "{query}" + Response: + + default: "FACT_WHAT" + +# --------------------------------------------------------- +# 11. WP-25b: FALLBACK SYNTHESIS (Error Recovery) +# --------------------------------------------------------- +fallback_synthesis: + ollama: | + Beantworte die folgende Frage basierend auf dem bereitgestellten Kontext. + + FRAGE: + {query} + + KONTEXT: + {context} + + ANWEISUNG: + Nutze den Kontext, um eine präzise Antwort zu geben. Falls der Kontext unvollständig ist, weise darauf hin. + + gemini: | + Frage: {query} + Kontext: {context} + Antworte basierend auf dem Kontext. + + openrouter: | + Answer the question "{query}" using the provided context: {context} + + default: "Answer: {query}\n\nContext: {context}" + +# file: retriever.yaml +############################### +version: 1.2 + +scoring: + # W_sem: skaliert den Term (semantic_score * retriever_weight) + # Empfehlung Startwert: 1.0 → Semantik bleibt Hauptsignal + semantic_weight: 1.0 + + # W_edge: skaliert edge_bonus aus dem Subgraph + # Empfehlung: 0.8 → Graph ist deutlich spürbar, aber überstimmt Semantik nicht komplett + edge_weight: 0.8 + + # W_cent: skaliert centrality_bonus (Knoten-Zentralität im Subgraph) + # Empfehlung: 0.5 → zentrale Knoten werden bevorzugt, aber moderat + centrality_weight: 0.5 + +# WP-22 Stellschraube: Lifecycle (Status-basiertes Scoring) +# Bonus für verifiziertes Wissen, Malus für Entwürfe +lifecycle_weights: + stable: 1.2 # +20% Bonus + active: 1.0 # Standardwert + draft: 0.5 # -50% Malus + system: 0.0 # Hard Skip via Ingestion + +# Die nachfolgenden Werte überschreiben die Defaults aus app/core/retriever_config. +# Wenn neue Kantentypen, z.B. durch Referenzierung innerhalb einer md-Datei im vault anders gewichtet werden sollen, dann muss hier die Konfiguration erfolgen +edge_types: + # --- KATEGORIE 1: LOGIK-BOOSTS (Relevanz-Treiber) --- + # Diese Kanten haben die Kraft, das semantische Ranking aktiv umzugestalten. + blocks: 1.6 # Kritisch: Risiken/Blocker müssen sofort sichtbar sein. + solves: 1.5 # Zielführend: Lösungen sind primäre Suchziele. + depends_on: 1.4 # Logisch: Harte fachliche Abhängigkeit. + resulted_in: 1.4 # Kausal: Ergebnisse und unmittelbare Konsequenzen. + followed_by: 1.3 # Sequenziell (User): Bewusst gesteuerte Wissenspfade. + caused_by: 1.2 # Kausal: Ursachen-Bezug (Basis für Intent-Boost). + preceded_by: 1.1 # Sequenziell (User): Rückwärts-Bezug in Logik-Ketten. + impacts: 1.2 # Langfristige Auswirkung/Einfluss + + # --- KATEGORIE 2: QUALITATIVER KONTEXT (Stabilitäts-Stützen) --- + # Diese Kanten liefern wichtigen Kontext, ohne das Ergebnis zu verfälschen. + guides: 1.1 # Qualitativ: Prinzipien oder Werte leiten das Thema. + part_of: 1.1 # Strukturell: Zieht übergeordnete Kontexte (Parents) mit hoch. + based_on: 0.8 # Fundament: Bezug auf Basis-Werte (kalibriert auf Safe-Retrieval). + derived_from: 0.6 # Historisch: Dokumentiert die Herkunft von Wissen. + uses: 0.6 # Instrumentell: Genutzte Werkzeuge, Methoden oder Ressourcen. + + # --- KATEGORIE 3: THEMATISCHE NÄHE (Ähnlichkeits-Signal) --- + # Diese Werte verhindern den "Drift" in fachfremde Bereiche. + similar_to: 0.4 # Analytisch: Thematische Nähe (oft KI-generiert). + + # --- KATEGORIE 4: SYSTEM-NUDGES (Technische Struktur) --- + # Reine Orientierungshilfen für das System; fast kein Einfluss auf das Ranking. + belongs_to: 0.2 # System: Verknüpft Chunks mit der Note (Metadaten-Träger). + next: 0.1 # System: Technische Lesereihenfolge der Absätze. + prev: 0.1 # System: Technische Lesereihenfolge der Absätze. + + # --- KATEGORIE 5: WEICHE ASSOZIATIONEN (Rausch-Unterdrückung) --- + # Verhindert, dass lose Verknüpfungen das Ergebnis "verwässern". + references: 0.1 # Assoziativ: Einfacher Querverweis oder Erwähnung. + related_to: 0.05 # Minimal: Schwächste thematische Verbindung. \ No newline at end of file