Zum Inhalt springen

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-skill
description: 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üfen
3. **Abfragen**`execute_sql` mit den exakten Tabellen- und Spaltennamen
4. **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`:
```sql
SELECT
datum,
kunde,
CAST(REPLACE(REPLACE(umsatz, '', ''), '.', '') AS DECIMAL) AS umsatz
FROM 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.