Claude kann Daten analysieren, Visualisierungen erstellen, komplexe Berechnungen durchführen, Systembefehle ausführen, Dateien erstellen und bearbeiten sowie hochgeladene Dateien direkt in der API-Konversation verarbeiten. Das Code-Ausführungstool ermöglicht Claude, Bash-Befehle auszuführen und Dateien in einer sicheren, isolierten Umgebung zu manipulieren, einschließlich des Schreibens von Code.
Die Code-Ausführung ist kostenlos, wenn sie mit Web-Suche oder Web-Abruf verwendet wird. Wenn web_search_20260209 oder web_fetch_20260209 in Ihrer Anfrage enthalten sind, fallen keine zusätzlichen Gebühren für Code-Ausführungstool-Aufrufe über die Standard-Eingabe- und Ausgabe-Token-Kosten hinaus an. Standard-Code-Ausführungsgebühren gelten, wenn diese Tools nicht enthalten sind.
Die Code-Ausführung ist ein grundlegendes Primitiv für die Erstellung hochperformanter Agenten. Sie ermöglicht dynamische Filterung in Web-Such- und Web-Abruf-Tools, sodass Claude Ergebnisse verarbeiten kann, bevor sie das Kontextfenster erreichen – was die Genauigkeit verbessert und den Token-Verbrauch reduziert.
Bitte teilen Sie Ihr Feedback zu dieser Funktion über unser Feedback-Formular mit.
This feature is not covered by Zero Data Retention (ZDR) arrangements. Data is retained according to the feature's standard retention policy.
Das Code-Ausführungstool ist auf den folgenden Modellen verfügbar:
| Modell | Tool-Version |
|---|---|
Claude Opus 4.6 (claude-opus-4-6) | code_execution_20250825 |
Claude Sonnet 4.6 (claude-sonnet-4-6) | code_execution_20250825 |
Claude Sonnet 4.5 (claude-sonnet-4-5-20250929) | code_execution_20250825 |
Claude Opus 4.5 (claude-opus-4-5-20251101) | code_execution_20250825 |
Claude Opus 4.1 (claude-opus-4-1-20250805) | code_execution_20250825 |
Claude Opus 4 (claude-opus-4-20250514) | code_execution_20250825 |
Claude Sonnet 4 (claude-sonnet-4-20250514) | code_execution_20250825 |
Claude Sonnet 3.7 (claude-3-7-sonnet-20250219) (veraltet) | code_execution_20250825 |
Claude Haiku 4.5 (claude-haiku-4-5-20251001) | code_execution_20250825 |
Claude Haiku 3.5 (claude-3-5-haiku-latest) (veraltet) | code_execution_20250825 |
Die aktuelle Version code_execution_20250825 unterstützt Bash-Befehle und Dateivorgänge. Eine ältere Version code_execution_20250522 (nur Python) ist ebenfalls verfügbar. Siehe Upgrade auf die neueste Tool-Version für Migrationsinformationen.
Ältere Tool-Versionen sind nicht garantiert rückwärtskompatibel mit neueren Modellen. Verwenden Sie immer die Tool-Version, die Ihrer Modellversion entspricht.
Die Code-Ausführung ist verfügbar auf:
Die Code-Ausführung ist derzeit nicht auf Amazon Bedrock oder Google Vertex AI verfügbar.
Hier ist ein einfaches Beispiel, das Claude auffordert, eine Berechnung durchzuführen:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-4-6",
"max_tokens": 4096,
"messages": [
{
"role": "user",
"content": "Calculate the mean and standard deviation of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
}
],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Wenn Sie das Code-Ausführungstool zu Ihrer API-Anfrage hinzufügen:
Bitten Sie Claude, Systeminformationen zu überprüfen und Pakete zu installieren:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-4-6",
"max_tokens": 4096,
"messages": [{
"role": "user",
"content": "Check the Python version and list installed packages"
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Claude kann Dateien direkt in der Sandbox erstellen, anzeigen und bearbeiten, indem er die Dateiverwaltungsfunktionen nutzt:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-4-6",
"max_tokens": 4096,
"messages": [{
"role": "user",
"content": "Create a config.yaml file with database settings, then update the port from 5432 to 3306"
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Um Ihre eigenen Datendateien (CSV, Excel, Bilder usw.) zu analysieren, laden Sie diese über die Files API hoch und referenzieren Sie sie in Ihrer Anfrage:
Die Verwendung der Files API mit Code Execution erfordert den Files API Beta-Header: "anthropic-beta": "files-api-2025-04-14"
Die Python-Umgebung kann verschiedene Dateitypen verarbeiten, die über die Files API hochgeladen wurden, einschließlich:
container_upload Content-Block# Laden Sie zuerst eine Datei hoch
curl https://api.anthropic.com/v1/files \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: files-api-2025-04-14" \
--form 'file=@"data.csv"' \
# Verwenden Sie dann die file_id mit Code Execution
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: files-api-2025-04-14" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-4-6",
"max_tokens": 4096,
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Analyze this CSV data"},
{"type": "container_upload", "file_id": "file_abc123"}
]
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Wenn Claude während der Code-Ausführung Dateien erstellt, können Sie diese Dateien mit der Files API abrufen:
from anthropic import Anthropic
# Initialisieren Sie den Client
client = Anthropic()
# Fordern Sie Code-Ausführung an, die Dateien erstellt
response = client.beta.messages.create(
model="claude-opus-4-6",
betas=["files-api-2025-04-14"],
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Create a matplotlib visualization and save it as output.png",
}
],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)
# Extrahieren Sie Datei-IDs aus der Antwort
def extract_file_ids(response):
file_ids = []
for item in response.content:
if item.type == "bash_code_execution_tool_result":
content_item = item.content
if content_item.type == "bash_code_execution_result":
for file in content_item.content:
if hasattr(file, "file_id"):
file_ids.append(file.file_id)
return file_ids
# Laden Sie die erstellten Dateien herunter
for file_id in extract_file_ids(response):
file_metadata = client.beta.files.retrieve_metadata(file_id)
file_content = client.beta.files.download(file_id)
file_content.write_to_file(file_metadata.filename)
print(f"Downloaded: {file_metadata.filename}")Ein komplexer Workflow mit allen Funktionen:
# Laden Sie zuerst eine Datei hoch
curl https://api.anthropic.com/v1/files \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: files-api-2025-04-14" \
--form 'file=@"data.csv"' \
> file_response.json
# Extrahieren Sie file_id (mit jq)
FILE_ID=$(jq -r '.id' file_response.json)
# Verwenden Sie es dann mit Code Execution
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "anthropic-beta: files-api-2025-04-14" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-4-6",
"max_tokens": 4096,
"messages": [{
"role": "user",
"content": [
{
"type": "text",
"text": "Analyze this CSV data: create a summary report, save visualizations, and create a README with the findings"
},
{
"type": "container_upload",
"file_id": "'$FILE_ID'"
}
]
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Das Code-Ausführungstool erfordert keine zusätzlichen Parameter:
{
"type": "code_execution_20250825",
"name": "code_execution"
}Wenn dieses Tool bereitgestellt wird, erhält Claude automatisch Zugriff auf zwei Sub-Tools:
bash_code_execution: Shell-Befehle ausführentext_editor_code_execution: Dateien anzeigen, erstellen und bearbeiten, einschließlich des Schreibens von CodeDas Code-Ausführungstool kann je nach Vorgang zwei Arten von Ergebnissen zurückgeben:
{
"type": "server_tool_use",
"id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
"name": "bash_code_execution",
"input": {
"command": "ls -la | head -5"
}
},
{
"type": "bash_code_execution_tool_result",
"tool_use_id": "srvtoolu_01B3C4D5E6F7G8H9I0J1K2L3",
"content": {
"type": "bash_code_execution_result",
"stdout": "total 24\ndrwxr-xr-x 2 user user 4096 Jan 1 12:00 .\ndrwxr-xr-x 3 user user 4096 Jan 1 11:00 ..\n-rw-r--r-- 1 user user 220 Jan 1 12:00 data.csv\n-rw-r--r-- 1 user user 180 Jan 1 12:00 config.json",
"stderr": "",
"return_code": 0
}
}Datei anzeigen:
{
"type": "server_tool_use",
"id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
"name": "text_editor_code_execution",
"input": {
"command": "view",
"path": "config.json"
}
},
{
"type": "text_editor_code_execution_tool_result",
"tool_use_id": "srvtoolu_01C4D5E6F7G8H9I0J1K2L3M4",
"content": {
"type": "text_editor_code_execution_result",
"file_type": "text",
"content": "{\n \"setting\": \"value\",\n \"debug\": true\n}",
"numLines": 4,
"startLine": 1,
"totalLines": 4
}
}Datei erstellen:
{
"type": "server_tool_use",
"id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
"name": "text_editor_code_execution",
"input": {
"command": "create",
"path": "new_file.txt",
"file_text": "Hello, World!"
}
},
{
"type": "text_editor_code_execution_tool_result",
"tool_use_id": "srvtoolu_01D5E6F7G8H9I0J1K2L3M4N5",
"content": {
"type": "text_editor_code_execution_result",
"is_file_update": false
}
}Datei bearbeiten (str_replace):
{
"type": "server_tool_use",
"id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
"name": "text_editor_code_execution",
"input": {
"command": "str_replace",
"path": "config.json",
"old_str": "\"debug\": true",
"new_str": "\"debug\": false"
}
},
{
"type": "text_editor_code_execution_tool_result",
"tool_use_id": "srvtoolu_01E6F7G8H9I0J1K2L3M4N5O6",
"content": {
"type": "text_editor_code_execution_result",
"oldStart": 3,
"oldLines": 1,
"newStart": 3,
"newLines": 1,
"lines": ["- \"debug\": true", "+ \"debug\": false"]
}
}Alle Ausführungsergebnisse enthalten:
stdout: Ausgabe aus erfolgreicher Ausführungstderr: Fehlermeldungen, wenn die Ausführung fehlschlägtreturn_code: 0 für Erfolg, nicht-null für FehlerZusätzliche Felder für Dateivorgänge:
file_type, content, numLines, startLine, totalLinesis_file_update (ob Datei bereits existierte)oldStart, oldLines, newStart, newLines, lines (Diff-Format)Jeder Tool-Typ kann spezifische Fehler zurückgeben:
Häufige Fehler (alle Tools):
{
"type": "bash_code_execution_tool_result",
"tool_use_id": "srvtoolu_01VfmxgZ46TiHbmXgy928hQR",
"content": {
"type": "bash_code_execution_tool_result_error",
"error_code": "unavailable"
}
}Fehlercodes nach Tool-Typ:
| Tool | Fehlercode | Beschreibung |
|---|---|---|
| Alle Tools | unavailable | Das Tool ist vorübergehend nicht verfügbar |
| Alle Tools | execution_time_exceeded | Ausführung hat das maximale Zeitlimit überschritten |
| Alle Tools | container_expired | Container ist abgelaufen und nicht mehr verfügbar |
| Alle Tools | invalid_tool_input | Ungültige Parameter für das Tool bereitgestellt |
| Alle Tools | too_many_requests | Rate Limit für Tool-Nutzung überschritten |
| text_editor | file_not_found | Datei existiert nicht (für Anzeige-/Bearbeitungsvorgänge) |
| text_editor | string_not_found | Der old_str wurde nicht in der Datei gefunden (für str_replace) |
pause_turn Stop-GrundDie Antwort kann einen pause_turn Stop-Grund enthalten, der anzeigt, dass die API einen langen Durchgang unterbrochen hat. Sie können die Antwort in einer nachfolgenden Anfrage unverändert bereitstellen, um Claude seinen Durchgang fortsetzen zu lassen, oder den Inhalt ändern, wenn Sie das Gespräch unterbrechen möchten.
Das Code-Ausführungstool wird in einer sicheren, containerisierten Umgebung ausgeführt, die speziell für die Code-Ausführung mit stärkerem Fokus auf Python konzipiert ist.
Die isolierte Python-Umgebung enthält diese häufig verwendeten Bibliotheken:
Sie können einen vorhandenen Container über mehrere API-Anfragen hinweg wiederverwenden, indem Sie die Container-ID aus einer vorherigen Antwort bereitstellen. Dies ermöglicht es Ihnen, erstellte Dateien zwischen Anfragen beizubehalten.
import os
from anthropic import Anthropic
# Initialisieren Sie den Client
client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
# Erste Anfrage: Erstellen Sie eine Datei mit einer Zufallszahl
response1 = client.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Write a file with a random number and save it to '/tmp/number.txt'",
}
],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)
# Extrahieren Sie die Container-ID aus der ersten Antwort
container_id = response1.container.id
# Zweite Anfrage: Verwenden Sie den Container erneut, um die Datei zu lesen
response2 = client.messages.create(
container=container_id, # Verwenden Sie denselben Container erneut
model="claude-opus-4-6",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Read the number from '/tmp/number.txt' and calculate its square",
}
],
tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
)Mit aktiviertem Streaming erhalten Sie Code-Ausführungsereignisse, wenn sie auftreten:
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "code_execution"}}
// Code-Ausführung gestreamt
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"code\":\"import pandas as pd\\ndf = pd.read_csv('data.csv')\\nprint(df.head())\"}"}}
// Pause während Code ausgeführt wird
// Ausführungsergebnisse gestreamt
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "code_execution_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"stdout": " A B C\n0 1 2 3\n1 4 5 6", "stderr": ""}}}Sie können das Code-Ausführungstool in die Messages Batches API einbeziehen. Code-Ausführungstool-Aufrufe über die Messages Batches API werden genauso berechnet wie die in regulären Messages API-Anfragen.
Code execution is free when used with web search or web fetch. When web_search_20260209 or web_fetch_20260209 is included in your API request, there are no additional charges for code execution tool calls beyond the standard input and output token costs.
When used without these tools, code execution is billed by execution time, tracked separately from token usage:
Code execution usage is tracked in the response:
"usage": {
"input_tokens": 105,
"output_tokens": 239,
"server_tool_use": {
"code_execution_requests": 1
}
}Durch das Upgrade auf code-execution-2025-08-25 erhalten Sie Zugriff auf Dateiverwaltungs- und Bash-Funktionen, einschließlich Code in mehreren Sprachen. Es gibt keinen Preisunterschied.
| Komponente | Legacy | Aktuell |
|---|---|---|
| Beta-Header | code-execution-2025-05-22 | code-execution-2025-08-25 |
| Tool-Typ | code_execution_20250522 | code_execution_20250825 |
| Funktionen | Nur Python | Bash-Befehle, Dateivorgänge |
| Antworttypen | code_execution_result | bash_code_execution_result, text_editor_code_execution_result |
Um ein Upgrade durchzuführen, aktualisieren Sie den Tool-Typ in Ihren API-Anfragen:
- "type": "code_execution_20250522"
+ "type": "code_execution_20250825"Überprüfen Sie die Antwortbehandlung (wenn Sie Antworten programmgesteuert analysieren):
Das Code-Ausführungstool ermöglicht programmgesteuerte Tool-Aufrufe, die Claude ermöglichen, Code zu schreiben, der Ihre benutzerdefinierten Tools programmgesteuert im Ausführungs-Container aufruft. Dies ermöglicht effiziente Multi-Tool-Workflows, Datenfilterung vor Erreichen des Claude-Kontexts und komplexe bedingte Logik.
# Aktivieren Sie programmgesteuerte Aufrufe für Ihre Tools
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
messages=[
{"role": "user", "content": "Get weather for 5 cities and find the warmest"}
],
tools=[
{"type": "code_execution_20250825", "name": "code_execution"},
{
"name": "get_weather",
"description": "Get weather for a city",
"input_schema": {...},
"allowed_callers": [
"code_execution_20250825"
], # Aktivieren Sie programmgesteuerte Aufrufe
},
],
)Erfahren Sie mehr in der Dokumentation zu programmgesteuerten Tool-Aufrufen.
Das Code-Ausführungstool ermöglicht Claude, Agent Skills zu verwenden. Skills sind modulare Funktionen, die aus Anweisungen, Skripten und Ressourcen bestehen, die Claudes Funktionalität erweitern.
Erfahren Sie mehr in der Agent Skills-Dokumentation und Agent Skills API-Anleitung.
Was this page helpful?