Zum Inhalt

Import & Export

Expert-Templates und Claude Code Profile können als JSON-Dateien exportiert und auf anderen Instanzen oder von anderen Usern wieder importiert werden. Die Funktion steht sowohl im Admin-Backend als auch im User-Portal zur Verfügung.

Übersicht

Was Wo (Admin) Wo (User) Dateiname
Expert-Templates /templates /user/templates expert_templates.json
Claude Code Profile /profiles /user/cc-profiles cc_profiles.json

Export-Prozess

Admin-Backend

/templates → Schaltfläche „Exportieren"
           → GET /api/expert-templates/export
           → Browser-Download: expert_templates.json

/profiles → Schaltfläche „Exportieren"
          → GET /api/profiles/export
          → Browser-Download: cc_profiles.json

User-Portal

/user/templates → Schaltfläche „Export"
               → GET /user/api/templates/export
               → Browser-Download: expert_templates.json

/user/cc-profiles → Schaltfläche „Export"
                 → GET /user/api/cc-profiles/export
                 → Browser-Download: cc_profiles.json

Import-Prozess

Import-Modi

Modus Verhalten bei gleichem Namen
merge Vorhandene Einträge werden übersprungen
replace Vorhandene Einträge werden überschrieben

Rückgabe

{
  "ok": true,
  "imported": 3,
  "skipped": 1
}

JSON-Schemas

Expert-Template Export-Datei

{
  "type": "expert_template",
  "scope": "admin",
  "version": "1.0",
  "exported_at": "2026-04-05T12:00:00.000Z",
  "items": [ ... ]
}

scope ist "admin" für Admin-Templates, "user" für User-Templates.

Expert-Template Item (vollständig)

{
  "name": "Full-Stack Developer",
  "description": "Optimiert für Code-Review, technischen Support und Datenanalyse",
  "planner_model": "qwen2.5:32b@RTX",
  "planner_prompt": "Du bist ein Router-LLM. Analysiere die Anfrage und entscheide welche Experten-Kategorien relevant sind.",
  "judge_model": "qwen2.5:32b@RTX",
  "judge_prompt": "Du bist ein Qualitätsprüfer. Synthetisiere die Experten-Antworten zu einer optimalen Gesamtantwort.",
  "experts": {
    "code_reviewer": {
      "system_prompt": "Du bist ein erfahrener Senior-Entwickler. Analysiere Code auf Qualität, Sicherheit und Performance.",
      "models": [
        {
          "model": "qwen2.5-coder:32b",
          "endpoint": "RTX",
          "required": true
        },
        {
          "model": "deepseek-coder:6.7b",
          "endpoint": "RTX",
          "required": false
        }
      ]
    },
    "technical_support": {
      "system_prompt": null,
      "models": [
        {
          "model": "qwen2.5:32b",
          "endpoint": "RTX",
          "required": true
        }
      ]
    }
  }
}

Felder-Referenz: Expert-Template Item

Feld Typ Pflicht Beschreibung
name string Eindeutiger Name
description string Freitext-Beschreibung
planner_model string modell:tag@endpunkt oder null
planner_prompt string System-Prompt für Planner-LLM
judge_model string modell:tag@endpunkt oder null
judge_prompt string System-Prompt für Judge-LLM
experts object Map: Kategorie-ID → Experten-Config
experts.{cat}.system_prompt string/null Kategorie-spezifischer System-Prompt
experts.{cat}.models array Liste der LLMs für diese Kategorie
experts.{cat}.models[].model string Modellname (ohne Endpunkt)
experts.{cat}.models[].endpoint string Inferenz-Server-Name
experts.{cat}.models[].required boolean true = verpflichtend, false = optional

Claude Code Profile Export-Datei

{
  "type": "cc_profile",
  "scope": "admin",
  "version": "1.0",
  "exported_at": "2026-04-05T12:00:00.000Z",
  "items": [ ... ]
}

CC-Profil Item (vollständig)

{
  "name": "Production – Claude Sonnet",
  "accepted_models": [
    "claude-sonnet-4-6",
    "claude-opus-4-6",
    "claude-haiku-4-5"
  ],
  "tool_model": "qwen2.5:32b",
  "tool_endpoint": "RTX",
  "moe_mode": "moe_orchestrated",
  "tool_choice": "auto",
  "tool_max_tokens": 8192,
  "reasoning_max_tokens": 16384,
  "system_prompt_prefix": "Du bist ein hilfreicher KI-Assistent in einer Unternehmensumgebung. Antworte immer auf Deutsch.",
  "stream_think": true
}

Felder-Referenz: CC-Profil Item

Feld Typ Pflicht Beschreibung
name string Eindeutiger Profilname
accepted_models array Claude-Modell-IDs die akzeptiert werden
tool_model string LLM für Tool-Calls (modell:tag)
tool_endpoint string Inferenz-Server-Name
moe_mode string native / moe_reasoning / moe_orchestrated
tool_choice string auto (Standard) oder required
tool_max_tokens integer Max. Tokens für Tool-Antworten (Standard: 8192)
reasoning_max_tokens integer Max. Tokens für Reasoning (Standard: 16384)
system_prompt_prefix string Präfix für alle System-Prompts
stream_think boolean MoE-Pipeline-Fortschritt streamen (Standard: true)

Skeleton-Vorlagen

Minimales Expert-Template (Single-Model)

{
  "type": "expert_template",
  "scope": "admin",
  "version": "1.0",
  "exported_at": "2026-04-05T00:00:00.000Z",
  "items": [
    {
      "name": "Mein Template",
      "description": "",
      "planner_model": null,
      "planner_prompt": null,
      "judge_model": null,
      "judge_prompt": null,
      "experts": {
        "general": {
          "system_prompt": null,
          "models": [
            {
              "model": "qwen2.5:32b",
              "endpoint": "RTX",
              "required": true
            }
          ]
        }
      }
    }
  ]
}

Vollständiges Expert-Template mit Planner & Judge

{
  "type": "expert_template",
  "scope": "admin",
  "version": "1.0",
  "exported_at": "2026-04-05T00:00:00.000Z",
  "items": [
    {
      "name": "Enterprise Full-Stack",
      "description": "Vollständig konfiguriertes Multi-Expert-Template",
      "planner_model": "qwen2.5:32b@RTX",
      "planner_prompt": "Analysiere die Anfrage. Entscheide welche der folgenden Kategorien relevant sind: code_reviewer, technical_support, data_analyst. Antworte mit JSON: {\"categories\": [\"...\"], \"rationale\": \"...\"}",
      "judge_model": "qwen2.5:32b@RTX",
      "judge_prompt": "Du erhältst mehrere Experten-Antworten. Synthetisiere sie zu einer einzigen, optimalen Antwort ohne Wiederholungen.",
      "experts": {
        "code_reviewer": {
          "system_prompt": "Du bist ein erfahrener Senior-Entwickler. Prüfe Code auf Korrektheit, Sicherheit (OWASP), Performance und Lesbarkeit.",
          "models": [
            { "model": "qwen2.5-coder:32b", "endpoint": "RTX", "required": true },
            { "model": "deepseek-coder:6.7b", "endpoint": "RTX", "required": false }
          ]
        },
        "technical_support": {
          "system_prompt": null,
          "models": [
            { "model": "qwen2.5:32b", "endpoint": "RTX", "required": true }
          ]
        },
        "data_analyst": {
          "system_prompt": "Analysiere Daten präzise. Verwende Python-Code-Blocks für Berechnungen.",
          "models": [
            { "model": "qwen2.5:32b", "endpoint": "RTX", "required": true }
          ]
        }
      }
    }
  ]
}

Minimales CC-Profil

{
  "type": "cc_profile",
  "scope": "admin",
  "version": "1.0",
  "exported_at": "2026-04-05T00:00:00.000Z",
  "items": [
    {
      "name": "Standard",
      "accepted_models": ["claude-sonnet-4-6"],
      "tool_model": "qwen2.5:32b",
      "tool_endpoint": "RTX",
      "moe_mode": "native",
      "tool_choice": "auto",
      "tool_max_tokens": 8192,
      "reasoning_max_tokens": 16384,
      "system_prompt_prefix": null,
      "stream_think": false
    }
  ]
}

CC-Profil mit vollständiger MoE-Pipeline

{
  "type": "cc_profile",
  "scope": "admin",
  "version": "1.0",
  "exported_at": "2026-04-05T00:00:00.000Z",
  "items": [
    {
      "name": "MoE Orchestrated – High Quality",
      "accepted_models": [
        "claude-opus-4-6",
        "claude-sonnet-4-6"
      ],
      "tool_model": "devstral:24b",
      "tool_endpoint": "RTX",
      "moe_mode": "moe_orchestrated",
      "tool_choice": "auto",
      "tool_max_tokens": 16384,
      "reasoning_max_tokens": 32768,
      "system_prompt_prefix": "Du arbeitest in einem Unternehmensumfeld. Alle Antworten müssen professionell und auf Deutsch sein.",
      "stream_think": true
    }
  ]
}

Validierungsregeln beim Import

Prüfung Fehlerverhalten
type stimmt mit Endpunkt überein HTTP 400
version == "1.0" HTTP 400
items ist ein Array HTTP 400
name ist nicht leer Eintrag wird übersprungen
Duplikat + Modus merge Eintrag wird übersprungen (kein Fehler)
Duplikat + Modus replace Eintrag wird überschrieben