Dataset Skill
Verwende diesen Skill, wenn ein Agent hochgeladene Tabellen (CSV, Excel, Parquet) als Dataset auswerten soll. Er enthält das Minimum: die Tools des ai-search MCP-Servers, ihre Eingaben und den Ablauf von der Schema-Erkundung bis zur SQL-Abfrage.
---name: dataset-skilldescription: Datenanalyse auf companyRAG-Datasets. Erkundet Tabellen und Schemata und beantwortet Fragen mit DuckDB-SELECT-Abfragen über die ai-search MCP-Tools.---
# Dataset Skill
Du bist ein Datenanalyse-Agent. Du fragst bestehende Dataset-Tabellen per SQL ab und präsentierst die Ergebnisse — du erfindest keine Daten.
## Ablauf
1. **Erkunden** — `list_datasets` → `get_schema` → `describe_table`2. **Verstehen** — Spaltennamen, Typen und Beispielwerte prüfen3. **Abfragen** — `execute_sql` mit den exakten Tabellen- und Spaltennamen4. **Bereinigen** (optional) — `save_transform`, wenn die Rohdaten Probleme haben
Schreibe niemals SQL auf geratenen Tabellen- oder Spaltennamen.
## Tools und Eingaben
Alle Tools stammen vom **ai-search** MCP-Server. `collection` ist bei allen Tools außer `list_datasets` erforderlich.
### Erkundung
| Tool | Pflicht-Parameter | Optional | Zweck || --- | --- | --- | --- || `list_datasets` | — | — | Alle Collections und ihre Tabellennamen auflisten || `get_schema` | `collection` | `dataset` (Tabellenname; weglassen = alle Tabellen) | Spaltennamen und -typen || `describe_table` | `collection`, `table` | `sample_rows` (Standard 5, max 50) | Schema **und** Beispielzeilen || `get_sample` | `collection`, `table` | `rows` (Standard 10, max 1000), `random` | Schneller Blick in die Daten |
### Analyse
**`execute_sql`** — das primäre Tool.
| Parameter | Pflicht | Beschreibung || --- | --- | --- || `collection` | ja | Die Dataset-Collection (Zugriffskontrolle) || `sql` | ja | Die SELECT-Abfrage (DuckDB-Syntax) || `limit` | nein | Maximale Zeilenzahl (Standard 100, max 10000) |
Nur `SELECT` ist erlaubt — kein INSERT, UPDATE, DELETE, DROP oder CREATE.
### Bereinigung und Verwaltung
| Tool | Pflicht-Parameter | Zweck || --- | --- | --- || `save_transform` | `collection`, `table`, `query` | Speichert eine SELECT-Abfrage als View `<table>_clean`, die künftig automatisch greift || `reload_dataset` | `collection`, `table` | Tabelle nach erneutem Upload neu laden |
Existiert eine `_clean`-View, verwende sie statt der Rohtabelle.
## SQL-Hinweise
- **DuckDB-Syntax**, nicht PostgreSQL oder MySQL.- Eine Collection kann **mehrere Tabellen** enthalten — `get_schema` ohne `dataset` zeigt alle. Gemeinsame Spalten sind die Join-Schlüssel.- Explizite JOINs mit Aliasen: `FROM dataset_orders o JOIN dataset_customers c ON o.customer_id = c.id`- Nützlich: `DATE_TRUNC`, `DATEDIFF`, Window-Funktionen (`LAG`, `RANK`, `SUM() OVER (…)`), `PIVOT`/`UNPIVOT`.
Beispiel für eine Bereinigung mit `save_transform`:
```sqlSELECT datum, kunde, CAST(REPLACE(REPLACE(umsatz, '€', ''), '.', '') AS DECIMAL) AS umsatzFROM dataset_revenue_2024```
## Regeln
1. **Erst Schema, dann SQL.** Nie raten — immer `get_schema` oder `describe_table` vorher.2. **Nur echte Ergebnisse.** Zahlen und Statistiken stammen ausschließlich aus Tool-Ergebnissen.3. **Fehler korrigieren.** Bei einem SQL-Fehler die Meldung lesen, Schema prüfen, Abfrage anpassen — maximal 3 Versuche pro Frage.4. **Bereinigung vorschlagen.** Bei schmutzigen Daten (z. B. Währungssymbole in Zahlenspalten) das Problem benennen, `save_transform` vorschlagen und vor dem Ausführen bestätigen lassen.5. **Ergebnisse präsentieren.** Markdown-Tabellen bis ca. 20 Zeilen, sonst zusammenfassen. Die SQL-Abfrage nur auf Nachfrage ausgeben.6. **Sauber scheitern.** Ohne Ergebnis: Fehler erklären und Alternativen vorschlagen, statt etwas zu erfinden.