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 |