Claude kann mit Computerumgebungen durch das Computer-use-Tool interagieren, das Screenshot-Funktionen und Maus-/Tastatursteuerung für autonome Desktop-Interaktion bietet.
Computer use befindet sich derzeit in der Beta-Phase und erfordert einen Beta-Header:
"computer-use-2025-11-24" für Claude Opus 4.5"computer-use-2025-01-24" für Claude Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4 und Sonnet 3.7 (veraltet)Computer use ist eine Beta-Funktion, die Claude die Interaktion mit Desktop-Umgebungen ermöglicht. Dieses Tool bietet:
Während Computer use durch andere Tools wie Bash und Text-Editor für umfassendere Automatisierungs-Workflows erweitert werden kann, bezieht sich Computer use speziell auf die Fähigkeit des Computer-use-Tools, Desktop-Umgebungen zu sehen und zu steuern.
Computer use ist für die folgenden Claude-Modelle verfügbar:
| Modell | Tool-Version | Beta-Flag |
|---|---|---|
| Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Alle anderen unterstützten Modelle | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.5 führt die computer_20251124 Tool-Version mit neuen Funktionen ein, einschließlich der Zoom-Aktion zur detaillierten Inspektion von Bildschirmbereichen. Alle anderen Modelle (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1 und Sonnet 3.7) verwenden die computer_20250124 Tool-Version.
Ältere Tool-Versionen sind nicht garantiert abwärtskompatibel mit neueren Modellen. Verwenden Sie immer die Tool-Version, die Ihrer Modellversion entspricht.
Computer use ist eine Beta-Funktion mit einzigartigen Risiken, die sich von Standard-API-Funktionen unterscheiden. Diese Risiken sind erhöht, wenn Sie mit dem Internet interagieren. Um Risiken zu minimieren, sollten Sie Vorsichtsmaßnahmen wie die folgenden in Betracht ziehen:
In einigen Fällen folgt Claude Befehlen in Inhalten, auch wenn diese den Anweisungen des Benutzers widersprechen. Beispielsweise können Claude-Anweisungen auf Webseiten oder in Bildern Anweisungen überschreiben oder Claude zu Fehlern führen. Wir empfehlen, Vorsichtsmaßnahmen zu treffen, um Claude von sensiblen Daten und Aktionen zu isolieren, um Risiken im Zusammenhang mit Prompt-Injection zu vermeiden.
Wir haben das Modell trainiert, um diesen Prompt-Injektionen zu widerstehen, und haben eine zusätzliche Schutzebene hinzugefügt. Wenn Sie unsere Computer-use-Tools verwenden, führen wir automatisch Klassifizierer auf Ihren Prompts aus, um potenzielle Instanzen von Prompt-Injektionen zu kennzeichnen. Wenn diese Klassifizierer potenzielle Prompt-Injektionen in Screenshots identifizieren, lenken sie das Modell automatisch dazu, vor dem Fortfahren mit der nächsten Aktion um Benutzerbestätigung zu bitten. Wir erkennen an, dass dieser zusätzliche Schutz nicht ideal für jeden Anwendungsfall ist (zum Beispiel Anwendungsfälle ohne einen Menschen in der Schleife), daher können Sie uns kontaktieren, wenn Sie sich abmelden und ihn ausschalten möchten.
Beginnen Sie schnell mit unserer Computer-use-Referenzimplementierung, die eine Web-Schnittstelle, einen Docker-Container, Beispiel-Tool-Implementierungen und eine Agent-Schleife enthält.
Hinweis: Die Implementierung wurde aktualisiert, um neue Tools für beide Claude 4-Modelle und Claude Sonnet 3.7 einzuschließen. Stellen Sie sicher, dass Sie die neueste Version des Repositorys abrufen, um auf diese neuen Funktionen zuzugreifen.
Bitte verwenden Sie dieses Formular, um Feedback zur Qualität der Modellreaktionen, der API selbst oder der Qualität der Dokumentation zu geben - wir können es kaum erwarten, von Ihnen zu hören!
So beginnen Sie mit Computer use:
Ein Beta-Header ist nur für das Computer-use-Tool erforderlich.
Das obige Beispiel zeigt alle drei Tools, die zusammen verwendet werden, was den Beta-Header erfordert, da er das Computer-use-Tool enthält.
Wir bezeichnen die Wiederholung der Schritte 3 und 4 ohne Benutzereingabe als die „Agent-Schleife" - d. h. Claude antwortet mit einer Tool-use-Anfrage und Ihre Anwendung antwortet Claude mit den Ergebnissen der Evaluierung dieser Anfrage.
Computer use erfordert eine sandboxed Computerumgebung, in der Claude sicher mit Anwendungen und dem Web interagieren kann. Diese Umgebung umfasst:
Virtuelles Display: Ein virtueller X11-Display-Server (mit Xvfb), der die Desktop-Schnittstelle rendert, die Claude durch Screenshots sehen wird und mit Maus-/Tastaturaktionen steuern wird.
Desktop-Umgebung: Eine leichte Benutzeroberfläche mit Window Manager (Mutter) und Panel (Tint2), die auf Linux läuft und eine konsistente grafische Schnittstelle für Claude bietet, mit der sie interagieren kann.
Anwendungen: Vorinstallierte Linux-Anwendungen wie Firefox, LibreOffice, Text-Editoren und Dateimanager, die Claude zur Erledigung von Aufgaben verwenden kann.
Tool-Implementierungen: Integrationscode, der Claudes abstrakte Tool-Anfragen (wie „Maus bewegen" oder „Screenshot machen") in tatsächliche Operationen in der virtuellen Umgebung übersetzt.
Agent-Schleife: Ein Programm, das die Kommunikation zwischen Claude und der Umgebung handhabt, Claudes Aktionen an die Umgebung sendet und die Ergebnisse (Screenshots, Befehlsausgaben) an Claude zurückgibt.
Wenn Sie Computer use verwenden, verbindet sich Claude nicht direkt mit dieser Umgebung. Stattdessen:
Aus Sicherheits- und Isolierungsgründen wird die Referenzimplementierung in einem Docker-Container mit entsprechenden Port-Zuordnungen zum Anzeigen und Interagieren mit der Umgebung ausgeführt.
Wir haben eine Referenzimplementierung erstellt, die alles enthält, was Sie benötigen, um schnell mit Computer use zu beginnen:
Der Kern von Computer use ist die „Agent-Schleife" - ein Zyklus, in dem Claude Tool-Aktionen anfordert, Ihre Anwendung diese ausführt und Ergebnisse an Claude zurückgibt. Hier ist ein vereinfachtes Beispiel:
async def sampling_loop(
*,
model: str,
messages: list[dict],
api_key: str,
max_tokens: int = 4096,
tool_version: str,
thinking_budget: int | None = None,
max_iterations: int = 10, # Iterationslimit hinzufügen, um Endlosschleifen zu verhindern
):
"""
Eine einfache Agent-Schleife für Claude Computer-use-Interaktionen.
Diese Funktion handhabt den Hin- und Herwechsel zwischen:
1. Senden von Benutzernachrichten an Claude
2. Claude fordert an, Tools zu verwenden
3. Ihre App führt diese Tools aus
4. Senden von Tool-Ergebnissen zurück an Claude
"""
# Tools und API-Parameter einrichten
client = Anthropic(api_key=api_key)
beta_flag = "computer-use-2025-01-24" if "20250124" in tool_version else "computer-use-2024-10-22"
# Tools konfigurieren - Sie sollten diese bereits an anderer Stelle initialisiert haben
tools = [
{"type": f"computer_{tool_version}", "name": "computer", "display_width_px": 1024, "display_height_px": 768},
{"type": f"text_editor_{tool_version}", "name": "str_replace_editor"},
{"type": f"bash_{tool_version}", "name": "bash"}
]
# Hauptagent-Schleife (mit Iterationslimit, um Runaway-API-Kosten zu verhindern)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Optionalen Thinking-Parameter einrichten (für Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Claude API aufrufen
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking
)
# Claudes Antwort zur Gesprächshistorie hinzufügen
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Überprüfen, ob Claude Tools verwendet hat
tool_results = []
for block in response_content:
if block.type == "tool_use":
# In einer echten App würden Sie das Tool hier ausführen
# Zum Beispiel: result = run_tool(block.name, block.input)
result = {"result": "Tool erfolgreich ausgeführt"}
# Formatieren Sie das Ergebnis für Claude
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result
})
# Wenn keine Tools verwendet wurden, ist Claude fertig - geben Sie die endgültigen Nachrichten zurück
if not tool_results:
return messages
# Tool-Ergebnisse zu Nachrichten für die nächste Iteration mit Claude hinzufügen
messages.append({"role": "user", "content": tool_results})Die Schleife wird fortgesetzt, bis Claude entweder ohne Anforderung von Tools antwortet (Aufgabenvollendung) oder das maximale Iterationslimit erreicht wird. Diese Schutzvorrichtung verhindert potenzielle Endlosschleifen, die zu unerwarteten API-Kosten führen könnten.
Wir empfehlen, die Referenzimplementierung auszuprobieren, bevor Sie den Rest dieser Dokumentation lesen.
Hier sind einige Tipps, wie Sie die beste Qualität der Ausgaben erhalten:
Nach jedem Schritt einen Screenshot machen und sorgfältig evaluieren, ob Sie das richtige Ergebnis erreicht haben. Zeigen Sie explizit Ihr Denken: „Ich habe Schritt X evaluiert..." Wenn nicht korrekt, versuchen Sie es erneut. Nur wenn Sie bestätigen, dass ein Schritt korrekt ausgeführt wurde, sollten Sie zum nächsten übergehen. auffordern.<robot_credentials> an. Die Verwendung von Computer use in Anwendungen, die Anmeldung erfordern, erhöht das Risiko schlechter Ergebnisse aufgrund von Prompt-Injection. Bitte lesen Sie unseren Leitfaden zur Minderung von Prompt-Injektionen, bevor Sie dem Modell Anmeldedaten geben.Wenn Sie wiederholt auf eine klare Reihe von Problemen stoßen oder im Voraus wissen, welche Aufgaben Claude erledigen muss, verwenden Sie den System-Prompt, um Claude explizite Tipps oder Anweisungen zu geben, wie die Aufgaben erfolgreich erledigt werden.
Wenn eines der von Anthropic definierten Tools über die Claude API angefordert wird, wird ein Computer-use-spezifischer System-Prompt generiert. Er ähnelt dem Tool-use-System-Prompt, beginnt aber mit:
Sie haben Zugriff auf eine Reihe von Funktionen, die Sie verwenden können, um die Frage des Benutzers zu beantworten. Dies umfasst Zugriff auf eine sandboxed Computerumgebung. Sie haben derzeit nicht die Möglichkeit, Dateien zu inspizieren oder mit externen Ressourcen zu interagieren, außer durch Aufrufen der folgenden Funktionen.
Wie bei der regulären Tool-Nutzung wird das vom Benutzer bereitgestellte system_prompt-Feld immer noch respektiert und bei der Konstruktion des kombinierten System-Prompts verwendet.
Das Computer-use-Tool unterstützt diese Aktionen:
Grundlegende Aktionen (alle Versionen)
[x, y]Erweiterte Aktionen (computer_20250124)
Verfügbar in Claude 4-Modellen und Claude Sonnet 3.7:
Erweiterte Aktionen (computer_20251124)
Verfügbar in Claude Opus 4.5:
computer_20250124enable_zoom: true in der Tool-Definition. Nimmt einen region-Parameter mit Koordinaten [x1, y1, x2, y2] an, die die obere linke und untere rechte Ecke des zu inspizierenden Bereichs definieren.| Parameter | Erforderlich | Beschreibung |
|---|---|---|
type | Ja | Tool-Version (computer_20251124, computer_20250124 oder computer_20241022) |
name | Ja | Muss „computer" sein |
display_width_px | Ja | Anzeigebreite in Pixeln |
display_height_px | Ja | Anzeigehöhe in Pixeln |
display_number | Nein | Anzeigenummer für X11-Umgebungen |
Wichtig: Das Computer-use-Tool muss explizit von Ihrer Anwendung ausgeführt werden - Claude kann es nicht direkt ausführen. Sie sind verantwortlich für die Implementierung der Screenshot-Erfassung, Mausbewegungen, Tastatureingaben und anderer Aktionen basierend auf Claudes Anfragen.
Claude Sonnet 3.7 führte eine neue „Thinking"-Fähigkeit ein, die es Ihnen ermöglicht, den Denkprozess des Modells zu sehen, während es komplexe Aufgaben durcharbeitet. Diese Funktion hilft Ihnen zu verstehen, wie Claude ein Problem angeht, und kann besonders wertvoll zum Debuggen oder für Bildungszwecke sein.
Um Thinking zu aktivieren, fügen Sie einen thinking-Parameter zu Ihrer API-Anfrage hinzu:
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}Der budget_tokens-Parameter gibt an, wie viele Token Claude zum Denken verwenden kann. Dies wird von Ihrem gesamten max_tokens-Budget abgezogen.
Wenn Thinking aktiviert ist, gibt Claude seinen Denkprozess als Teil der Antwort zurück, was Ihnen helfen kann:
Hier ist ein Beispiel, wie die Thinking-Ausgabe aussehen könnte:
[Thinking]
Ich muss ein Bild einer Katze auf dem Desktop speichern. Lassen Sie mich dies in Schritte aufteilen:
1. Zuerst mache ich einen Screenshot, um zu sehen, was auf dem Desktop ist
2. Dann suche ich nach einem Webbrowser, um nach Katzenbildern zu suchen
3. Nach dem Finden eines geeigneten Bildes muss ich es auf dem Desktop speichern
Lassen Sie mich mit einem Screenshot beginnen, um zu sehen, was verfügbar ist...Das Computer-use-Tool kann mit anderen Tools kombiniert werden, um leistungsfähigere Automatisierungs-Workflows zu erstellen. Dies ist besonders nützlich, wenn Sie:
Die Referenzimplementierung soll Ihnen den Einstieg in die Computernutzung erleichtern. Sie enthält alle Komponenten, die Claude benötigt, um einen Computer zu nutzen. Sie können jedoch auch Ihre eigene Umgebung für die Computernutzung erstellen, die Ihren Anforderungen entspricht. Sie benötigen:
tool_use-Ergebnisse mit Ihren Werkzeugimplementierungen ausführtDas Computernutzungswerkzeug wird als schemafreies Werkzeug implementiert. Bei der Verwendung dieses Werkzeugs müssen Sie kein Eingabeschema wie bei anderen Werkzeugen bereitstellen; das Schema ist in Claudes Modell integriert und kann nicht geändert werden.
Bei der Implementierung des Computernutzungswerkzeugs können verschiedene Fehler auftreten. So behandeln Sie diese:
Die API beschränkt Bilder auf maximal 1568 Pixel auf der längsten Kante und ungefähr 1,15 Megapixel insgesamt (siehe Bildgrößenänderung für Details). Beispielsweise wird ein 1512x982-Bildschirm auf ungefähr 1330x864 heruntergesampled. Claude analysiert dieses kleinere Bild und gibt Koordinaten in diesem Raum zurück, aber Ihr Werkzeug führt Klicks im ursprünglichen Bildschirmraum aus.
Dies kann dazu führen, dass Claudes Klickkoordinaten ihre Ziele verfehlen, es sei denn, Sie verarbeiten die Koordinatentransformation.
Um dies zu beheben, ändern Sie die Größe von Screenshots selbst und skalieren Sie Claudes Koordinaten zurück:
Die Computernutzungsfunktionalität befindet sich in der Beta-Phase. Während Claudes Fähigkeiten hochmodern sind, sollten Entwickler sich seiner Einschränkungen bewusst sein:
left_mouse_down, left_mouse_up und neuer Modifiziertastaturunterstützung verbessert. Die Zellauswahl kann zuverlässiger sein, indem Sie diese feinen Steuerungen verwenden und Modifiziertasten mit Klicks kombinieren.Überprüfen und verifizieren Sie immer sorgfältig Claudes Computernutzungsaktionen und Protokolle. Verwenden Sie Claude nicht für Aufgaben, die perfekte Präzision oder sensible Benutzerinformationen ohne menschliche Überwachung erfordern.
Computer use follows the standard tool use pricing. When using the computer use tool:
System prompt overhead: The computer use beta adds 466-499 tokens to the system prompt
Computer use tool token usage:
| Model | Input tokens per tool definition |
|---|---|
| Claude 4.x models | 735 tokens |
| Claude Sonnet 3.7 (deprecated) | 735 tokens |
Additional token consumption:
If you're also using bash or text editor tools alongside computer use, those tools have their own token costs as documented in their respective pages.
Wir empfehlen immer noch, Vorsichtsmaßnahmen zu treffen, um Claude von sensiblen Daten und Aktionen zu isolieren, um Risiken im Zusammenhang mit Prompt-Injection zu vermeiden.
Bitte informieren Sie Endbenutzer über relevante Risiken und erhalten Sie ihre Zustimmung, bevor Sie Computer use in Ihren eigenen Produkten aktivieren.
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-5", # oder ein anderes kompatibles Modell
max_tokens=1024,
tools=[
{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1,
},
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool"
},
{
"type": "bash_20250124",
"name": "bash"
}
],
messages=[{"role": "user", "content": "Speichern Sie ein Bild einer Katze auf meinem Desktop."}],
betas=["computer-use-2025-01-24"]
)
print(response)1. Stellen Sie Claude das Computer-use-Tool und einen Benutzer-Prompt zur Verfügung
2. Claude entscheidet sich, das Computer-use-Tool zu verwenden
stop_reason von tool_use, was Claudes Absicht signalisiert.3. Tool-Eingabe extrahieren, das Tool auf einem Computer evaluieren und Ergebnisse zurückgeben
user-Nachricht fort, die einen tool_result-Inhaltsblock enthält.4. Claude ruft weiterhin Computer-use-Tools auf, bis die Aufgabe abgeschlossen ist
tool_use stop_reason und Sie sollten zu Schritt 3 zurückkehren.enable_zoom| Nein |
Zoom-Aktion aktivieren (computer_20251124 nur). Setzen Sie auf true, um Claude zu ermöglichen, in bestimmte Bildschirmbereiche zu zoomen. Standard: false |
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: computer-use-2025-01-24" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 2000,
"tools": [
{
"type": "computer_20250124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1
},
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool"
},
{
"type": "bash_20250124",
"name": "bash"
},
{
"name": "get_weather",
"description": "Rufen Sie das aktuelle Wetter an einem bestimmten Ort ab",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Die Stadt und der Staat, z. B. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Die Temperatureinheit, entweder „celsius" oder „fahrenheit""
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Finden Sie Flüge von San Francisco zu einem Ort mit wärmerem Wetter."
}
],
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}
}'Richten Sie Ihre Computerumgebung ein
Erstellen Sie eine virtuelle Anzeige oder verbinden Sie sich mit einer vorhandenen Anzeige, mit der Claude interagiert. Dies umfasst normalerweise die Einrichtung von Xvfb (X Virtual Framebuffer) oder ähnlicher Technologie.
Implementieren Sie Action-Handler
Erstellen Sie Funktionen, um jeden Action-Typ zu verarbeiten, den Claude anfordern könnte:
def handle_computer_action(action_type, params):
if action_type == "screenshot":
return capture_screenshot()
elif action_type == "left_click":
x, y = params["coordinate"]
return click_at(x, y)
elif action_type == "type":
return type_text(params["text"])
# ... handle other actionsVerarbeiten Sie Claudes Tool-Aufrufe
Extrahieren und führen Sie Tool-Aufrufe aus Claudes Antworten aus:
for content in response.content:
if content.type == "tool_use":
action = content.input["action"]
result = handle_computer_action(action, content.input)
# Return result to Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}Implementieren Sie die Agent-Schleife
Erstellen Sie eine Schleife, die fortgesetzt wird, bis Claude die Aufgabe abgeschlossen hat:
while True:
response = client.beta.messages.create(...)
# Check if Claude used any tools
tool_results = process_tool_calls(response)
if not tool_results:
# No more tool use, task complete
break
# Continue conversation with tool results
messages.append({"role": "user", "content": tool_results})import math
def get_scale_factor(width, height):
"""Calculate scale factor to meet API constraints."""
long_edge = max(width, height)
total_pixels = width * height
long_edge_scale = 1568 / long_edge
total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
return min(1.0, long_edge_scale, total_pixels_scale)
# When capturing screenshot
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Resize image to scaled dimensions before sending to Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# When handling Claude's coordinates, scale them back up
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)Erfahren Sie mehr über Tool-Nutzung und das Erstellen benutzerdefinierter Werkzeuge