{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 32,\n \"parent_id\": 29,\n \"slug\": \"ki-tasks-schema\",\n \"path\": \"\/ki-tasks\/ki-tasks-schema\",\n \"title\": \"Schema\",\n \"description\": \"Haupttabelle für alle Tasks.\",\n \"content\": \"<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » <a href=\\\"\/docs\/ki-tasks\\\">KI-Tasks<\/a> » Datenbank-Schema\\n<\/nav>\\n\\n<h1>Datenbank-Schema<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-20<\/p>\\n\\n<p>Tabellenstruktur des KI-Task-Management Systems in der Datenbank <code>ki_dev<\/code>.<\/p>\\n\\n<table>\\n <tr><th>Datenbank<\/th><td>ki_dev<\/td><\/tr>\\n <tr><th>Tabellen<\/th><td>4 (tasks, task_assignments, task_results, task_comments)<\/td><\/tr>\\n <tr><th>Engine<\/th><td>InnoDB<\/td><\/tr>\\n <tr><th>Charset<\/th><td>utf8mb4_unicode_ci<\/td><\/tr>\\n<\/table>\\n\\n<h2>tasks<\/h2>\\n<p>Haupttabelle für alle Tasks.<\/p>\\n\\n<table>\\n <tr><th>Spalte<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>BIGINT UNSIGNED<\/td><td>Primary Key, Auto-Increment<\/td><\/tr>\\n <tr><td>uuid<\/td><td>VARCHAR(36)<\/td><td>Unique Identifier<\/td><\/tr>\\n <tr><td>title<\/td><td>VARCHAR(255)<\/td><td>Titel des Tasks<\/td><\/tr>\\n <tr><td>description<\/td><td>TEXT<\/td><td>Beschreibung<\/td><\/tr>\\n <tr><td>type<\/td><td>ENUM<\/td><td>'human_task', 'ai_task', 'mixed'<\/td><\/tr>\\n <tr><td>status<\/td><td>ENUM<\/td><td>'pending', 'in_progress', 'completed', 'failed', 'cancelled'<\/td><\/tr>\\n <tr><td>created_by<\/td><td>VARCHAR(100)<\/td><td>Ersteller<\/td><\/tr>\\n <tr><td>created_by_type<\/td><td>ENUM<\/td><td>'human', 'ai'<\/td><\/tr>\\n <tr><td>parent_task_id<\/td><td>BIGINT UNSIGNED<\/td><td>FK zu übergeordnetem Task<\/td><\/tr>\\n <tr><td>due_date<\/td><td>DATETIME<\/td><td>Fälligkeitsdatum<\/td><\/tr>\\n <tr><td>created_at<\/td><td>DATETIME(6)<\/td><td>Erstellungszeitpunkt<\/td><\/tr>\\n <tr><td>updated_at<\/td><td>DATETIME(6)<\/td><td>Letzte Änderung<\/td><\/tr>\\n <tr><td>completed_at<\/td><td>DATETIME(6)<\/td><td>Abschlusszeitpunkt<\/td><\/tr>\\n <tr><td>metadata<\/td><td>JSON<\/td><td>Zusätzliche Daten<\/td><\/tr>\\n<\/table>\\n\\n<h4>Indizes<\/h4>\\n<pre><code>PRIMARY KEY (id)\\nUNIQUE KEY uk_uuid (uuid)\\nKEY idx_status (status)\\nKEY idx_created_by (created_by)\\nKEY idx_type (type)\\nKEY idx_parent_task (parent_task_id)\\nKEY idx_created_at (created_at)<\/code><\/pre>\\n\\n<h2>task_assignments<\/h2>\\n<p>Zuweisungen von Tasks an Bearbeiter.<\/p>\\n\\n<table>\\n <tr><th>Spalte<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>BIGINT UNSIGNED<\/td><td>Primary Key<\/td><\/tr>\\n <tr><td>task_id<\/td><td>BIGINT UNSIGNED<\/td><td>FK zu tasks<\/td><\/tr>\\n <tr><td>assignee<\/td><td>VARCHAR(100)<\/td><td>Bearbeiter-Name<\/td><\/tr>\\n <tr><td>assignee_type<\/td><td>ENUM<\/td><td>'human', 'ollama', 'claude', 'anthropic_api'<\/td><\/tr>\\n <tr><td>model_name<\/td><td>VARCHAR(100)<\/td><td>KI-Model (z.B. mistral)<\/td><\/tr>\\n <tr><td>assigned_by<\/td><td>VARCHAR(100)<\/td><td>Zuweisender<\/td><\/tr>\\n <tr><td>assigned_by_type<\/td><td>ENUM<\/td><td>'human', 'ai'<\/td><\/tr>\\n <tr><td>status<\/td><td>ENUM<\/td><td>'pending', 'accepted', 'rejected', 'in_progress', 'completed'<\/td><\/tr>\\n<\/table>\\n\\n<h2>task_results<\/h2>\\n<p>Ergebnisse von Task-Ausführungen mit Token-Tracking.<\/p>\\n\\n<table>\\n <tr><th>Spalte<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>BIGINT UNSIGNED<\/td><td>Primary Key<\/td><\/tr>\\n <tr><td>task_id<\/td><td>BIGINT UNSIGNED<\/td><td>FK zu tasks<\/td><\/tr>\\n <tr><td>executor<\/td><td>VARCHAR(100)<\/td><td>Ausführender<\/td><\/tr>\\n <tr><td>executor_type<\/td><td>ENUM<\/td><td>'human', 'ollama', 'claude', 'anthropic_api'<\/td><\/tr>\\n <tr><td>tokens_input<\/td><td>INT UNSIGNED<\/td><td>Input-Tokens<\/td><\/tr>\\n <tr><td>tokens_output<\/td><td>INT UNSIGNED<\/td><td>Output-Tokens<\/td><\/tr>\\n <tr><td>cost_usd<\/td><td>DECIMAL(10,6)<\/td><td>Kosten in USD<\/td><\/tr>\\n <tr><td>status<\/td><td>ENUM<\/td><td>'success', 'error', 'partial'<\/td><\/tr>\\n<\/table>\\n\\n<h2>task_comments<\/h2>\\n<p>Kommentare und Protokoll-Einträge zu Tasks.<\/p>\\n\\n<table>\\n <tr><th>Spalte<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>BIGINT UNSIGNED<\/td><td>Primary Key<\/td><\/tr>\\n <tr><td>task_id<\/td><td>BIGINT UNSIGNED<\/td><td>FK zu tasks<\/td><\/tr>\\n <tr><td>author<\/td><td>VARCHAR(100)<\/td><td>Autor<\/td><\/tr>\\n <tr><td>author_type<\/td><td>ENUM<\/td><td>'human', 'ai', 'system'<\/td><\/tr>\\n <tr><td>comment_type<\/td><td>ENUM<\/td><td>'comment', 'status_change', 'assignment', 'result', 'note'<\/td><\/tr>\\n <tr><td>content<\/td><td>TEXT<\/td><td>Inhalt<\/td><\/tr>\\n<\/table>\\n\\n<h2>Abfragen<\/h2>\\n\\n<h4>Letzte 10 Tasks<\/h4>\\n<pre><code>SELECT id, title, status, created_at\\nFROM tasks\\nORDER BY id DESC\\nLIMIT 10;<\/code><\/pre>\\n\\n<h4>Tasks nach Status<\/h4>\\n<pre><code>SELECT status, COUNT(*) as count\\nFROM tasks\\nGROUP BY status;<\/code><\/pre>\\n\\n<h4>Token-Verbrauch pro Model<\/h4>\\n<pre><code>SELECT model_name,\\n SUM(tokens_total) as total_tokens,\\n SUM(cost_usd) as total_cost,\\n COUNT(*) as executions\\nFROM task_results\\nWHERE model_name IS NOT NULL\\nGROUP BY model_name\\nORDER BY total_tokens DESC;<\/code><\/pre>\",\n \"status\": \"published\",\n \"sort_order\": 3,\n \"depth\": 1,\n \"created_at\": \"2025-12-20T11:13:58\",\n \"updated_at\": \"2025-12-27T15:58:19\"\n }\n}"
}
]
}