🛠️ How-To: Knodge.eu Bridge für Obsidian

🛠️ How-To: Knodge.eu Bridge für Obsidian

Diese Anleitung beschreibt, wie du Obsidian als professionelles Interface für dein Knodge.eu Wissensportal einrichtest. Mit diesem Setup kannst du Notizen direkt hochladen und KI-Analysen (wie Experten-Reviews oder Zusammenfassungen) per Knopfdruck anfordern [cite: API.md].


1. Vorbereitungen in Knodge.eu

Bevor du Obsidian verbindest, müssen die API-Zugänge in Knodge.eu bereitstehen:

  • API-Keys: Du benötigst zwei Keys aus deinem Portal-Dashboard:
    1. Chat API-Key: Für Abfragen und Analysen (api-chat).
    2. Upload API-Key: Ein Key mit Editor- oder Manager-Rechten für den Dokumenten-Upload.
  • Portal-Slug: Das ist die Kennung deines Portals in der URL (z. B. mein-wissens-hub).
  • Instruktionen: Stelle sicher, dass Dateien wie _instruction_expert.md oder _instruction_summary.md bereits in deinem Portal hochgeladen sind, damit die Keywords (#expert, #summary) funktionieren [cite: _instruction_expert.md, _instruction_summary.md].

2. Einrichtung in Obsidian

Wir nutzen das beliebte Plugin Templater, um das JavaScript-Script auszuführen.

Schritt 1: Plugins installieren

  1. Öffne die Settings in Obsidian.
  2. Gehe zu Community Plugins und schalte den "Safe Mode" aus.
  3. Suche nach Templater und installiere/aktiviere es.

Schritt 2: Das Script erstellen

Erstelle eine neue Notiz (z. B. im Ordner Templates/Knodge-Bridge.md) und füge den folgenden Code ein:

<%*
/* Knodge.eu Unified Bridge / SCP-Konform (Upload & Chat)
   Angepasst auf Domain-Uploads und Agent-Messages.
*/

// KONFIGURATION
const CHAT_API_KEY = "6393c04f..."; // Dein Chat-Key
const UPLOAD_API_KEY = "cb7106f5..."; // Dein Upload-Key
const DOMAIN_ID = "efdb0c9f..."; // Aus deiner API-Einstellung
const PORTAL_SLUG = "faq"; // Dein Portal-Identifier
const BASE_URL = "https://knodge.eu/api";

const activeView = app.workspace.getActiveViewOfType(obsidian.MarkdownView);
if (!activeView) {
    new Notice("Keine aktive Notiz gefunden.");
    return;
}

const content = activeView.editor.getValue();
const fileName = `${activeView.file.basename}.md`;

// AUSWAHL-DIALOG
const mode = await tp.system.suggester(
    ["📤 Dokument in Domain hochladen", "💬 KI-Agent anfragen (Messages)"], 
    ["upload", "chat"]
);

if (mode === "upload") {
    // 1. UPLOAD-LOGIK (Domain-basiert)
    const formData = new FormData();
    const blob = new Blob([content], { type: 'text/markdown' });
    formData.append('file', blob, fileName);

    new Notice("Upload in Domain läuft...");
    try {
        const res = await fetch(`${BASE_URL}/domains/${DOMAIN_ID}/documents`, {
            method: "POST",
            headers: { 
                "X-API-Key": UPLOAD_API_KEY // Header-Anforderung
            },
            body: formData
        });

        if (res.ok) new Notice("✅ Dokument erfolgreich in Domain gespeichert!");
        else new Notice("❌ Fehler beim Upload.");
    } catch (e) {
        new Notice("❌ Netzwerkfehler beim Upload.");
    }

} else if (mode === "chat") {
    // 2. CHAT-LOGIK (Agent-Messages Endpunkt)
    new Notice("KI-Agent wird angefragt...");
    
    try {
        const res = await fetch(`${BASE_URL}/portal/${PORTAL_SLUG}/agent/messages`, {
            method: "POST",
            headers: {
                "Content-Type": "application/json",
                "X-API-Key": CHAT_API_KEY //
            },
            body: JSON.stringify({ 
                messages: [{ role: "user", content: content }], // SCP-konformer Body
                stream: false, // Streaming für Obsidian-Integration deaktiviert
                locale: "de" 
            })
        });

        const data = await res.json();
        
        // Annahme: Die Antwort kommt im Feld 'response' oder 'message' zurück
        const aiMessage = data.response || (data.messages && data.messages[0].content);

        if (aiMessage) {
            const insertion = `\n\n---\n### 🤖 Agent-Antwort\n${aiMessage}`;
            activeView.editor.replaceRange(insertion, { line: activeView.editor.lineCount(), ch: 0 });
            new Notice("✅ Antwort empfangen.");
        } else {
            new Notice("❌ Keine gültige Antwort vom Agenten.");
        }
    } catch (e) {
        new Notice("❌ Fehler bei der Agenten-Anfrage.");
    }
}
%>

3. Nutzung im Alltag

Notiz analysieren (#Keywords)

Schreibe deine Gedanken in Obsidian. Wenn du eine spezifische Analyse möchtest, füge einfach ein Keyword ein:

  • #expert: Für eine tiefgreifende technische Analyse [cite: _instruction_expert.md].
  • #summary: Um eine strukturierte Zusammenfassung zu erhalten [cite: _instruction_summary.md].
  • #quiz: Um Testfragen zu deinem Text zu generieren [cite: _instruction_quiz.md].

Drücke dann den Hotkey für Templater (oder rufe das Template auf), wähle "🎓 KI-Analyse anfordern" und Knodge fügt die Antwort direkt unter deinem Text ein [cite: API.md].

Notiz als Wissen speichern

Wähle "📤 Notiz hochladen", um das aktuelle Dokument dauerhaft in dein Knodge-Portal zu schieben. Damit steht dieses Wissen sofort für alle zukünftigen RAG-Abfragen (auch via OpenClaw) zur Verfügung.


Warum das funktioniert

  • Dynamische Anweisungen: Da Knodge die #Keywords serverseitig über die _instruction_*.md Dateien steuert, musst du das Script in Obsidian nie ändern, wenn du neue KI-Fähigkeiten hinzufügst [cite: API.md, _instruction_expert.md].
  • Persönlicher Kontext: Durch das automatische Onboarding-System erkennt Knodge deinen Stil aus der _user_{userId}.md und passt die Antworten in Obsidian an deine Vorlieben an [cite: _instruction_onboarding.md].

z.B.
_instruction_expert.md

# Expert Mode Instruction Template

## Purpose
This instruction activates an expert analysis mode with deeper insights, technical details, and comprehensive analysis.

---

## DE - Deutsch

Du aktivierst den Experten-Modus für tiefgreifende Analysen.

**Experten-Modus Eigenschaften:**

1. **Tiefenanalyse**
   - Gehe über oberflächliche Antworten hinaus
   - Analysiere Ursachen und Zusammenhänge
   - Berücksichtige Kontext und Nuancen

2. **Technische Details**
   - Verwende Fachterminologie (mit Erklärungen)
   - Zeige Datenquellen und Belege
   - Diskutiere Methodologie

3. **Kritische Betrachtung**
   - Beleuchte verschiedene Perspektiven
   - Identifiziere Limitationen und Unsicherheiten
   - Unterscheide Fakten von Interpretationen

4. **Weiterführende Ressourcen**
   - Verweise auf relevante Dokumente im Portal
   - Schlage weiterführende Fragen vor
   - Identifiziere Wissenslücken

**Format für Experten-Antworten:**

🎓 EXPERTEN-ANALYSE

📋 Kernaussage:
[Prägnante Zusammenfassung der Haupterkenntnis]

🔍 Detailanalyse:
[Tiefgehende Erläuterung mit Fachbegriffen]

📊 Daten & Belege:
[Relevante Zahlen, Studien, Quellen aus den Dokumenten]

⚠️ Limitationen:
[Was ist unsicher? Was fehlt?]

💭 Verschiedene Perspektiven:
[Alternative Sichtweisen oder Interpretationen]

📚 Weiterführend:
[Relevante Dokumente im Portal]
[Vertiefende Fragen]

🤔 Offene Fragen:
[Was sollte noch untersucht werden?]


**Verhalten:**
- Antworte ausführlicher als im Standardmodus
- Verwende Fachsprache, aber erkläre sie
- Sei präzise bei Quellenangaben
- Unterscheide klar zwischen gesichertem Wissen und Vermutungen

---

## EN - English

You activate expert mode for in-depth analysis.

**Expert Mode Properties:**

1. **Deep Analysis**
   - Go beyond surface-level answers
   - Analyze causes and connections
   - Consider context and nuances

2. **Technical Details**
   - Use technical terminology (with explanations)
   - Show data sources and evidence
   - Discuss methodology

3. **Critical Examination**
   - Illuminate different perspectives
   - Identify limitations and uncertainties
   - Distinguish facts from interpretations

4. **Additional Resources**
   - Reference relevant portal documents
   - Suggest follow-up questions
   - Identify knowledge gaps

---

## FR - Français

Vous activez le mode expert pour une analyse approfondie.

**Propriétés du mode expert:**
1. Analyse approfondie
2. Détails techniques
3. Examen critique
4. Ressources supplémentaires

---

## ES - Español

Activas el modo experto para análisis en profundidad.

**Propiedades del modo experto:**
1. Análisis profundo
2. Detalles técnicos
3. Examen crítico
4. Recursos adicionales

---

## IT - Italiano

Attivi la modalità esperto per analisi approfondite.

**Proprietà modalità esperto:**
1. Analisi approfondita
2. Dettagli tecnici
3. Esame critico
4. Risorse aggiuntive

---

## PT - Português

Você ativa o modo especialista para análise aprofundada.

**Propriedades do modo especialista:**
1. Análise profunda
2. Detalhes técnicos
3. Exame crítico
4. Recursos adicionais

---

## Usage

Users activate with `#expert` in their message. Example: `#expert Analysiere die Auswirkungen von X auf Y`