Protokoll #31558

ID31558
Zeitstempel2025-12-31 04:30:12.147940
Clientroot
IP145.224.72.245
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens2,241 (Input: 28, Output: 2,213)
Dauer80 ms
Request-Zeit2025-12-31 04:30:12.147940
Response-Zeit2025-12-31 04:30:12.228217

Request

{
    "event": "PreToolUse",
    "tool_name": "mcp__mcp-docs__docs_get",
    "tool_input": {
        "path": "\/ki-system\/ki-content"
    }
}

Response

{
    "tool_response": [
        {
            "type": "text",
            "text": "{\n  \"success\": true,\n  \"doc\": {\n    \"id\": 26,\n    \"parent_id\": 16,\n    \"slug\": \"ki-content\",\n    \"path\": \"\/ki-system\/ki-content\",\n    \"title\": \"Content\",\n    \"description\": \"Strukturierte Content-Erstellung mit Autorenprofilen, Contracts und Kritikersystem.\",\n    \"content\": \"<nav class=\\\"breadcrumb\\\">\\n    <a href=\\\"\/docs\\\">Dokumentation<\/a> &raquo; <a href=\\\"\/docs\/content-studio\\\">Content Studio<\/a> &raquo; Architektur\\n<\/nav>\\n\\n<h1>Content-Studio Architektur<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-29<\/p>\\n\\n<p>Strukturierte Content-Erstellung mit Autorenprofilen, Contracts und Kritikersystem.<\/p>\\n\\n<table>\\n    <tr><th>Tool<\/th><td><a href=\\\"\/content\\\">\/content<\/a><\/td><\/tr>\\n    <tr><th>Dokumentation<\/th><td><a href=\\\"\/docs\/content-studio\\\">\/docs\/content-studio<\/a><\/td><\/tr>\\n    <tr><th>API-Referenz<\/th><td><a href=\\\"\/docs\/api\/content\\\">\/docs\/api\/content<\/a><\/td><\/tr>\\n    <tr><th>LLM<\/th><td>Claude Opus 4.5<\/td><\/tr>\\n    <tr><th>Kritiker-Durchläufe<\/th><td>Max. 3<\/td><\/tr>\\n    <tr><th>Datenbank<\/th><td>ki_content<\/td><\/tr>\\n<\/table>\\n\\n<h2>Web-UI (RESTful)<\/h2>\\n<table>\\n    <tr><th>URL<\/th><th>Beschreibung<\/th><\/tr>\\n    <tr><td><a href=\\\"\/content\\\">\/content<\/a><\/td><td>Auftrags-Liste<\/td><\/tr>\\n    <tr><td><a href=\\\"\/content\/new\\\">\/content\/new<\/a><\/td><td>Neuer Auftrag<\/td><\/tr>\\n    <tr><td>\/content\/{id}<\/td><td>Details anzeigen<\/td><\/tr>\\n    <tr><td>\/content\/{id}\/edit<\/td><td>Bearbeiten<\/td><\/tr>\\n<\/table>\\n\\n<h2>Komponenten<\/h2>\\n<pre><code>Content-Erstellungsauftrag\\n├── Briefing (Was soll erstellt werden)\\n├── Autorenprofil (Wer\/Wie schreibt) → aus content_config\\n├── Contract (Qualitätsanforderungen) → aus content_config\\n├── Strukturdatei (Format\/Gliederung) → aus content_config\\n├── Quellen (RAG-Kontext)\\n└── Kritikersystem (Review-Prozess)<\/code><\/pre>\\n\\n<h2>Workflow<\/h2>\\n<pre><code>1. BRIEFING\\n   - Thema eingeben\\n   - Zielgruppe wählen\\n   - Umfang definieren\\n\\n2. KONFIGURATION\\n   - Autorenprofil wählen (aus content_config type=author_profile)\\n   - Contract wählen (aus content_config type=contract)\\n   - Struktur wählen (aus content_config type=structure)\\n   - Quellen auswählen (RAG)\\n\\n3. GENERIERUNG\\n   - Kapitel-für-Kapitel\\n   - Fortschrittsanzeige\\n\\n4. CRITIQUE (max 3x)\\n   - Kritiker analysieren sequenziell\\n   - Automatische Revision\\n\\n5. VALIDATE\\n   - Contract-Prüfung\\n\\n6. APPROVE\\n   - Menschliches OK\\n\\n7. PUBLISH\\n   - Export, Archivierung<\/code><\/pre>\\n\\n<h2>Autorenprofile<\/h2>\\n<p>Gespeichert in <code>content_config<\/code> mit <code>type='author_profile'<\/code>:<\/p>\\n<pre><code>{\\n  \\\"name\\\": \\\"Akademischer Autor\\\",\\n  \\\"stimme\\\": {\\n    \\\"ton\\\": \\\"sachlich, präzise\\\",\\n    \\\"perspektive\\\": \\\"dritte Person\\\"\\n  },\\n  \\\"stil\\\": {\\n    \\\"fachsprache\\\": true,\\n    \\\"zitate\\\": \\\"häufig, APA 7\\\"\\n  },\\n  \\\"tabus\\\": [\\n    \\\"Umgangssprache\\\",\\n    \\\"Unbelegte Behauptungen\\\"\\n  ]\\n}<\/code><\/pre>\\n\\n<h3>Verfügbare Profile<\/h3>\\n<table>\\n    <tr><th>Profil<\/th><th>Use-Case<\/th><\/tr>\\n    <tr><td>Akademisch<\/td><td>Fachartikel, Studien<\/td><\/tr>\\n    <tr><td>Didaktisch<\/td><td>Lernmaterialien<\/td><\/tr>\\n    <tr><td>Journalistisch<\/td><td>Blog, News<\/td><\/tr>\\n    <tr><td>Therapeutisch<\/td><td>Klientenmaterial<\/td><\/tr>\\n<\/table>\\n\\n<h2>Contracts<\/h2>\\n<p>Gespeichert in <code>content_config<\/code> mit <code>type='contract'<\/code>:<\/p>\\n<pre><code>{\\n  \\\"name\\\": \\\"Fachartikel-Standard\\\",\\n  \\\"anforderungen\\\": {\\n    \\\"länge\\\": {\\\"min\\\": 1500, \\\"max\\\": 3000},\\n    \\\"struktur\\\": [\\\"abstract\\\", \\\"einleitung\\\", \\\"hauptteil\\\", \\\"fazit\\\"],\\n    \\\"quellenangaben\\\": 5\\n  },\\n  \\\"validierung\\\": {\\n    \\\"automatisch\\\": [\\\"wortanzahl\\\", \\\"struktur_check\\\"],\\n    \\\"manuell\\\": [\\\"inhaltliche_korrektheit\\\"]\\n  }\\n}<\/code><\/pre>\\n\\n<h2>Kritikersystem<\/h2>\\n<table>\\n    <tr><th>Kritiker<\/th><th>Fokus<\/th><\/tr>\\n    <tr><td>Faktenprüfer<\/td><td>Quellen, Logik, Statistik<\/td><\/tr>\\n    <tr><td>Stilist<\/td><td>Sprache, Lesbarkeit<\/td><\/tr>\\n    <tr><td>Strukturanalyst<\/td><td>Roter Faden, Gliederung<\/td><\/tr>\\n<\/table>\\n\\n<h2>Export-Formate<\/h2>\\n<ul>\\n    <li>Markdown (Technische Docs)<\/li>\\n    <li>HTML (Web-Publishing)<\/li>\\n    <li>DOCX (Word)<\/li>\\n    <li>PDF (Finale Dokumente)<\/li>\\n<\/ul>\\n\\n<h2>Pipeline-Scripts<\/h2>\\n<p>Backend-Implementierung der Content-Generierung:<\/p>\\n<pre><code>\/var\/www\/scripts\/pipeline\/\\n├── generate.py       → Content-Generierung Kernlogik\\n└── web_generate.py   → Web-API Wrapper<\/code><\/pre>\\n\\n<h3>generate.py<\/h3>\\n<p>Hauptmodul für RAG-basierte Content-Generierung mit Kritikersystem.<\/p>\\n<table>\\n    <tr><th>RAG-Context<\/th><td>Qdrant (documents Collection)<\/td><\/tr>\\n    <tr><th>LLM Primary<\/th><td>Claude (Anthropic API)<\/td><\/tr>\\n    <tr><th>LLM Fallback<\/th><td>Mistral (Ollama lokal)<\/td><\/tr>\\n    <tr><th>Versionierung<\/th><td>content_versions Tabelle<\/td><\/tr>\\n<\/table>\\n\\n<h4>Hauptfunktionen<\/h4>\\n<table>\\n    <tr><th>Funktion<\/th><th>Beschreibung<\/th><\/tr>\\n    <tr><td><code>generate_content(order_id, model, collection, context_limit)<\/code><\/td><td>Generiert Content basierend auf Order<\/td><\/tr>\\n    <tr><td><code>run_critique_round(version_id, model)<\/code><\/td><td>Führt alle aktiven Kritiker aus<\/td><\/tr>\\n    <tr><td><code>revise_content(version_id, model)<\/code><\/td><td>Erstellt Revision basierend auf Feedback<\/td><\/tr>\\n    <tr><td><code>run_critic(content, critic_id, model)<\/code><\/td><td>Einzelner Kritiker-Durchlauf<\/td><\/tr>\\n<\/table>\\n\\n<h4>Hilfsfunktionen<\/h4>\\n<table>\\n    <tr><th>Funktion<\/th><th>Beschreibung<\/th><\/tr>\\n    <tr><td><code>get_rag_context(briefing, collection, limit)<\/code><\/td><td>Holt relevanten Kontext aus Qdrant<\/td><\/tr>\\n    <tr><td><code>get_author_profile(profile_id)<\/code><\/td><td>Lädt Autorenprofil aus content_config<\/td><\/tr>\\n    <tr><td><code>get_contract(contract_id)<\/code><\/td><td>Lädt Content-Contract aus content_config<\/td><\/tr>\\n    <tr><td><code>get_structure(structure_id)<\/code><\/td><td>Lädt Struktur-Template aus content_config<\/td><\/tr>\\n    <tr><td><code>get_order(order_id)<\/code><\/td><td>Lädt Order mit allen verknüpften Daten<\/td><\/tr>\\n    <tr><td><code>build_generation_prompt(...)<\/code><\/td><td>Baut den Generierungs-Prompt<\/td><\/tr>\\n    <tr><td><code>save_version(order_id, content, version_number)<\/code><\/td><td>Speichert Content-Version<\/td><\/tr>\\n    <tr><td><code>save_sources(order_id, context)<\/code><\/td><td>Speichert RAG-Quellen<\/td><\/tr>\\n<\/table>\\n\\n<h4>CLI-Verwendung<\/h4>\\n<pre><code># Content generieren\\npython \/var\/www\/scripts\/pipeline\/generate.py generate &lt;order_id&gt; [model]\\n\\n# Kritik-Runde starten\\npython \/var\/www\/scripts\/pipeline\/generate.py critique &lt;version_id&gt; [model]\\n\\n# Revision erstellen\\npython \/var\/www\/scripts\/pipeline\/generate.py revise &lt;version_id&gt; [model]\\n\\n# Beispiel mit Anthropic\\npython \/var\/www\/scripts\/pipeline\/generate.py generate 1 anthropic\\n\\n# Beispiel mit Ollama\\npython \/var\/www\/scripts\/pipeline\/generate.py generate 1 ollama<\/code><\/pre>\\n\\n<h4>Status-Workflow<\/h4>\\n<pre><code>draft → generating → critique → revision\/validate → approve → published\\n                         ↑            ↓\\n                         └────────────┘ (max 3 Runden)<\/code><\/pre>\\n\\n<h2>Datenbank-Tabellen (ki_content)<\/h2>\\n<table>\\n    <tr><th>Tabelle<\/th><th>Beschreibung<\/th><\/tr>\\n    <tr><td>content_orders<\/td><td>Aufträge mit Briefing, Status, Verknüpfungen<\/td><\/tr>\\n    <tr><td>content_versions<\/td><td>Versionierte Content-Texte (JSON)<\/td><\/tr>\\n    <tr><td>content_sources<\/td><td>RAG-Quellen pro Order<\/td><\/tr>\\n    <tr><td>content_critiques<\/td><td>Kritiker-Feedback pro Version<\/td><\/tr>\\n    <tr><td><strong>content_config<\/strong><\/td><td>Unified Config: Autorenprofile, Contracts, Strukturen (type-Feld)<\/td><\/tr>\\n    <tr><td>content_config_history<\/td><td>Config-Änderungshistorie<\/td><\/tr>\\n    <tr><td>critics<\/td><td>Kritiker-Definitionen<\/td><\/tr>\\n<\/table>\\n\\n<p><strong>Hinweis:<\/strong> Die früheren separaten Tabellen <code>author_profiles<\/code>, <code>content_contracts<\/code> und <code>content_structures<\/code> wurden in die einheitliche <code>content_config<\/code> Tabelle konsolidiert. Der Typ wird über das <code>type<\/code>-Feld unterschieden.<\/p>\",\n    \"status\": \"published\",\n    \"sort_order\": 10,\n    \"depth\": 1,\n    \"created_at\": \"2025-12-20T11:13:58\",\n    \"updated_at\": \"2025-12-29T15:01:21\"\n  }\n}"
        }
    ]
}
← Vorheriger Zur Liste Nächster →