- Published on
Claude rechnen lassen: Code-Ausführung für Datenanalyse
- Authors

- Name
- Phillip Pham
- @ddppham
Code-Ausführung: Claude rechnen lassen statt schätzen
TL;DR
Ein abgeschotteter Container mit Python 3.11 und den üblichen Datenbibliotheken, den Sie nicht betreiben. Der wichtigste Anwendungsfall ist unspektakulär: Zahlen rechnen lassen statt schätzen — ein Sprachmodell rechnet nicht zuverlässig, ein Python-Interpreter schon.
Was der Container ist
| Ausstattung | 1 CPU, 5 GiB Arbeitsspeicher, 5 GiB Plattenplatz |
| Netzzugang | keiner — vollständig abgeschottet |
| Laufzeit | Python 3.11 |
| Lebensdauer | 30 Tage, über Aufrufe hinweg wiederverwendbar |
| Kosten | kostenfrei zusammen mit Web-Suche und Web-Abruf; sonst ein geringer Stundensatz nach einem großzügigen kostenfreien Kontingent je Organisation |
Vorinstalliert sind unter anderem pandas, numpy, scipy, scikit-learn, statsmodels für Auswertung, matplotlib und seaborn für Grafiken, openpyxl, xlsxwriter, python-docx, python-pptx, pypdf und pdfplumber für Dateiformate sowie sympy für Symbolik. Weitere Pakete lassen sich zur Laufzeit nachinstallieren.
Die Deklaration
antwort = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
tools=[{"type": "code_execution_20260521", "name": "code_execution"}],
messages=[{"role": "user", "content":
"Berechne Mittelwert und Standardabweichung von "
"[12, 15, 11, 19, 14, 22, 13, 16]"}],
)
Kein Schema, keine eigene Ausführung. Claude bekommt damit automatisch Zugriff auf Shell-Befehle und Dateioperationen im Container.
Der Blocktyp, den alle falsch abfragen
Das Ergebnis kommt nicht in einem Block namens code_execution_tool_result:
for block in antwort.content:
if block.type == "text":
print(block.text) # Claudes Erläuterung
elif block.type == "server_tool_use":
print(f"Führt aus: {block.name}") # was gerade passiert
elif block.type == "bash_code_execution_tool_result": # DIESER Typ
ergebnis = block.content
if ergebnis.type == "bash_code_execution_result":
if ergebnis.return_code == 0:
print(ergebnis.stdout)
else:
print(f"Fehler: {ergebnis.stderr}")
else:
print(f"Werkzeugfehler: {ergebnis.error_code}")
Wer auf code_execution_tool_result prüft, findet nie einen Treffer und wundert sich über eine scheinbar leere Antwort. Der aktuelle Typ ist bash_code_execution_tool_result; für Dateioperationen gibt es zusätzlich text_editor_code_execution_tool_result.
Und prüfen Sie return_code: Ein Skript kann laufen und trotzdem scheitern.
Dateien zur Auswertung übergeben
# 1. Datei hochladen
hochgeladen = client.beta.files.upload(file=open("umsatz.csv", "rb"))
# 2. Als container_upload-Block übergeben
antwort = client.messages.create(
model="claude-opus-5",
max_tokens=16000,
extra_headers={"anthropic-beta": "files-api-2025-04-14"},
messages=[{
"role": "user",
"content": [
{"type": "text", "text":
"Werte die Umsatzdaten aus. Zeige Trends und erstelle eine Grafik."},
{"type": "container_upload", "file_id": hochgeladen.id},
],
}],
tools=[{"type": "code_execution_20260521", "name": "code_execution"}],
)
Unterstützt werden CSV, Excel, JSON, XML, Bilder und Textformate.
Erzeugte Dateien abholen
Grafiken und Berichte, die im Container entstehen, holen Sie über die Files-API — mit einer Sicherheitsmaßnahme, die nicht optional ist:
import os
AUSGABE = "./claude_ausgaben"
os.makedirs(AUSGABE, exist_ok=True)
for block in antwort.content:
if block.type == "bash_code_execution_tool_result":
ergebnis = block.content
if ergebnis.type == "bash_code_execution_result" and ergebnis.content:
for verweis in ergebnis.content:
if verweis.type == "bash_code_execution_output":
meta = client.beta.files.retrieve_metadata(verweis.file_id)
inhalt = client.beta.files.download(verweis.file_id)
# PFLICHT: Dateinamen entschärfen
name = os.path.basename(meta.filename)
if not name or name in (".", ".."):
continue
inhalt.write_to_file(os.path.join(AUSGABE, name))
Der Dateiname stammt aus einer Umgebung, in der ein Modell Code ausgeführt hat. Ohne os.path.basename und die Prüfung darunter öffnen Sie einen Pfad-Ausbruch auf Ihrem eigenen System.
Container wiederverwenden
Für mehrstufige Auswertungen halten Sie den Zustand:
antwort1 = client.messages.create(..., messages=[{"role": "user", "content":
"Installiere tabulate und lege daten.json mit Beispieldaten an"}], tools=[...])
container_id = antwort1.container.id
antwort2 = client.messages.create(
container=container_id, # derselbe Container
..., messages=[{"role": "user", "content":
"Lies daten.json und zeige sie als formatierte Tabelle"}], tools=[...])
Installierte Pakete, erzeugte Dateien und Variablen bleiben erhalten. Bei längeren Analysen spart das erheblich Zeit.
Der unterschätzte Anwendungsfall
Nicht die Datenanalyse — die Arithmetik.
Ein Sprachmodell rechnet nicht zuverlässig. Bei einer Summenprobe über zwanzig Rechnungspositionen, einer Prozentrechnung mit mehreren Stufen oder einer Datumsdifferenz über Schaltjahre hinweg ist ein Ergebnis aus dem Modell eine Schätzung. Mit aktiviertem Werkzeug ist es eine Berechnung.
Wenn Ihre Anwendung Zahlen ausgibt, auf die sich jemand verlässt, gehört das Werkzeug dazu — unabhängig davon, ob es nach "Datenanalyse" aussieht.
Die Verfügbarkeit
Auf der Anthropic-API und Claude Platform on AWS verfügbar, auf Microsoft Foundry als Beta — nicht auf Amazon Bedrock und Google Vertex AI.
Und ein Hinweis, der in Kombination mit der Web-Suche zählt: Die Suchwerkzeuge der Fassung _20260209 bringen Code-Ausführung für ihre dynamische Filterung intern mit. Deklarieren Sie das Werkzeug nicht zusätzlich, wenn Sie es nicht für eigene Zwecke brauchen — ein zweites Ausführungsumfeld verwirrt das Modell.
Häufig gestellte Fragen
Was kann der Code-Ausführungs-Container?
Python 3.11 mit vorinstallierten Bibliotheken für Datenauswertung, Grafiken und Dateiformate — unter anderem pandas, numpy, scikit-learn, matplotlib, openpyxl, python-docx und pypdf. Die Ausstattung umfasst 1 CPU, 5 GiB Arbeitsspeicher und 5 GiB Plattenplatz; einen Netzzugang gibt es nicht.
Warum finde ich das Ergebnis nicht in der Antwort?
Wahrscheinlich, weil Sie auf den falschen Blocktyp prüfen. Das Ergebnis kommt als bash_code_execution_tool_result, nicht als code_execution_tool_result; Dateioperationen liefern zusätzlich text_editor_code_execution_tool_result. Prüfen Sie außerdem return_code — ein Skript kann laufen und trotzdem scheitern.
Wie hole ich erzeugte Grafiken und Berichte ab?
Über die Files-API anhand der Dateikennung aus dem Ergebnisblock. Entschärfen Sie dabei den Dateinamen zwingend mit os.path.basename und prüfen Sie das Ergebnis — der Name stammt aus einer Umgebung, in der ein Modell Code ausgeführt hat, und ohne diese Prüfung öffnen Sie einen Pfad-Ausbruch auf Ihrem System.
Bleibt der Zustand zwischen Aufrufen erhalten?
Ja, wenn Sie die Container-Kennung aus der ersten Antwort bei den folgenden Aufrufen mitgeben. Installierte Pakete, erzeugte Dateien und Variablen bleiben dann bestehen; Container leben bis zu 30 Tage. Bei mehrstufigen Auswertungen spart das erheblich Zeit.
Wofür lohnt sich das Werkzeug am meisten?
Für Arithmetik, nicht für Datenanalyse. Ein Sprachmodell rechnet nicht zuverlässig — Summenproben, mehrstufige Prozentrechnungen und Datumsdifferenzen sind ohne Werkzeug Schätzungen. Wenn Ihre Anwendung Zahlen ausgibt, auf die sich jemand verlässt, gehört das Werkzeug dazu.
Der nächste Schritt
Aktivieren Sie das Werkzeug überall dort, wo Ihre Anwendung Zahlen ausgibt — auch wenn es nicht nach Datenanalyse aussieht. Der Unterschied zwischen einer geschätzten und einer berechneten Summe fällt erst auf, wenn jemand nachrechnet. Beim Aufbau helfen wir gern.
📖 Verwandte Artikel
Weitere interessante Beiträge zu ähnlichen Themen
Claude mit Web-Suche: Recherche ohne eigene Pipeline
Suche und Abruf laufen serverseitig — Sie deklarieren sie und bekommen belegte Ergebnisse. Die Fehler kommen dabei als HTTP 200 zurück.
MSCONS mit Python analysieren: -30% Fehler in Lastgängen
MSCONS-Daten mit Python lokal analysieren, um Lastgänge zu optimieren und Fehler in Messdaten um bis zu 30% zu reduzieren. Ein Praxisleitfaden für Energieversorger.
KI & Betriebsprüfung: GoBD-Datenanalyse, €50k Risikoreduktion
Bereiten Sie sich mit KI und Python auf GoBD-konforme Betriebsprüfungen vor. Identifizieren Sie Risiken frühzeitig, sparen Sie bis zu 80% Prüfzeit & senken Sie das Nachzahlungsrisiko um 30%.
Bereit für KI im Mittelstand?
Nutzen Sie unsere 10 kostenlosen KI-Tools und Praxis-Guides – oder sprechen Sie direkt mit unseren Experten.
Pexon Consulting – KI-Beratung für den Mittelstand | Scaly Academy – Geförderte KI-Weiterbildung (KI-Spezialist, KI-Experte, Workflow-Automatisierung)