Was this page helpful?
Claude kann mit Computerumgebungen durch das Computer-use-Tool interagieren, das Screenshot-Funktionen und Maus-/Tastatursteuerung für autonome Desktop-Interaktion bietet. Auf WebArena, einem Benchmark für autonome Webnavigation auf echten Websites, erreicht Claude modernste Ergebnisse unter Single-Agent-Systemen und demonstriert starke Fähigkeiten, mehrstufige Browser-Aufgaben von Anfang bis Ende zu bewältigen.
Computer use befindet sich in der Beta-Phase und erfordert einen Beta-Header:
"computer-use-2025-11-24" für Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24" für Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4 und Sonnet 3.7 (veraltet)Teilen Sie Ihr Feedback zu dieser Funktion über das Feedback-Formular mit.
This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Computer use ist eine Beta-Funktion, die Claude ermöglicht, mit Desktop-Umgebungen zu interagieren. Dieses Tool bietet:
Während Computer use mit anderen 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.
Für Modellunterstützung siehe Tool-Referenz.
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, die in Inhalten gefunden werden, auch wenn dies den Anweisungen des Benutzers widerspricht. Zum Beispiel können Claude-Anweisungen auf Webseiten oder in Bildern Anweisungen außer Kraft setzen oder Claude dazu veranlassen, Fehler zu machen. Treffen Sie Vorsichtsmaßnahmen, um Claude von sensiblen Daten und Aktionen zu isolieren, um Risiken im Zusammenhang mit Prompt-Injection zu vermeiden.
Das Modell wurde trainiert, um diesen Prompt-Injektionen zu widerstehen, und es wurde eine zusätzliche Schutzebene hinzugefügt. Wenn Sie die Computer-use-Tools verwenden, werden automatisch Klassifizierer auf Ihre Prompts ausgeführt, um potenzielle Instanzen von Prompt-Injektionen zu kennzeichnen. Wenn diese Klassifizierer potenzielle Prompt-Injektionen in Screenshots identifizieren, lenken sie das Modell automatisch dazu, den Benutzer um Bestätigung zu bitten, bevor es mit der nächsten Aktion fortfährt. Dieser zusätzliche Schutz ist nicht ideal für jeden Anwendungsfall (zum Beispiel für Anwendungsfälle ohne einen Menschen in der Schleife), daher kontaktieren Sie bitte den Support, wenn Sie sich abmelden und ihn ausschalten möchten.
Diese Vorsichtsmaßnahmen bleiben wichtig, auch wenn die Klassifizierer-Schutzebene vorhanden ist.
Informieren Sie Endbenutzer über relevante Risiken und erhalten Sie ihre Zustimmung, bevor Sie Computer use in Ihren eigenen Produkten aktivieren.
Beginnen Sie schnell mit der 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 Claude 4-Modelle und Claude Sonnet 3.7 zu enthalten. Stellen Sie sicher, dass Sie die neueste Version des Repositorys abrufen, um auf diese neuen Funktionen zuzugreifen.
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.
Die Wiederholung der Schritte 3 und 4 ohne Benutzereingabe wird als „Agent-Schleife" bezeichnet (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 Rechenumgebung, in der Claude sicher mit Anwendungen und dem Web interagieren kann. Diese Umgebung umfasst:
Virtueller 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 er interagieren kann.
Anwendungen: Vorinstallierte Linux-Anwendungen wie Firefox, LibreOffice, Text-Editoren und Dateimanager, die Claude verwenden kann, um Aufgaben zu erledigen.
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 alles davon in einem Docker-Container mit angemessenen Port-Zuordnungen zum Anzeigen und Interagieren mit der Umgebung ausgeführt.
Eine Referenzimplementierung ist verfügbar, 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 sie ausführt und die 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, # Add iteration limit to prevent infinite loops
):
"""
A simple agent loop for Claude computer use interactions.
This function handles the back-and-forth between:
1. Sending user messages to Claude
2. Claude requesting to use tools
3. Your app executing those tools
4. Sending tool results back to Claude
"""
# Set up tools and API parameters
client = Anthropic(api_key=api_key)
beta_flag = (
"computer-use-2025-11-24"
if "20251124" in tool_version
else "computer-use-2025-01-24"
)
text_editor_type = (
"text_editor_20250728"
if "20251124" in tool_version
else f"text_editor_{tool_version}"
)
# Configure tools - you should already have these initialized elsewhere
tools = [
{
"type": f"computer_{tool_version}",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": text_editor_type, "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
]
# Main agent loop (with iteration limit to prevent runaway API costs)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Set up optional thinking parameter (for Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Call the Claude API
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking,
)
# Add Claude's response to the conversation history
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Check if Claude used any tools
tool_results = []
for block in response_content:
if block.type == "tool_use":
# In a real app, you would execute the tool here
# For example: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Format the result for Claude
tool_results.append(
{"type": "tool_result", "tool_use_id": block.id, "content": result}
)
# If no tools were used, Claude is done - return the final messages
if not tool_results:
return messages
# Add tool results to messages for the next iteration with Claude
messages.append({"role": "user", "content": tool_results})Die Schleife wird fortgesetzt, bis entweder Claude antwortet, ohne Tools anzufordern (Aufgabenvollendung), oder die maximale Iterationsbegrenzung erreicht wird. Diese Schutzmaßnahme verhindert potenzielle Endlosschleifen, die zu unerwarteten API-Kosten führen könnten.
Probieren Sie die Referenzimplementierung aus, bevor Sie den Rest dieser Dokumentation lesen.
Hier sind einige Tipps, wie Sie die beste Qualität der Ausgaben erhalten:
After each step, take a screenshot and carefully evaluate if you have achieved the right outcome. Explicitly show your thinking: "I have evaluated step X..." If not correct, try again. Only when you confirm a step was executed correctly should you move on to the next one.<robot_credentials> an. Die Verwendung von Computer use in Anwendungen, die eine Anmeldung erfordern, erhöht das Risiko schlechter Ergebnisse aufgrund von Prompt-Injection. Lesen Sie den Leitfaden zur Minderung von Prompt-Injektionen, bevor Sie dem Modell Anmeldedaten geben.Wenn Sie wiederholt auf einen klaren Satz 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.
Für Agenten, die sich über mehrere Sitzungen erstrecken, führen Sie am Anfang jeder Sitzung eine End-to-End-Verifizierung durch, nicht nur nach der Implementierung. Browser-basierte Überprüfungen erfassen Regressionen aus vorherigen Sitzungen, die nur Code-Level-Überprüfungen vermissen. Siehe Effective harnesses for long-running agents für Details.
Wenn eines der Anthropic-Schema-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:
You have access to a set of functions you can use to answer the user's question. This includes access to a sandboxed computing environment. You do NOT currently have the ability to inspect files or interact with external resources, except by invoking the below functions.
Wie bei regulärer Tool-Nutzung wird das vom Benutzer bereitgestellte system_prompt-Feld weiterhin 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.6, Claude Sonnet 4.6 und 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 oder computer_20250124) |
name | Ja | Muss „computer" sein |
display_width_px | Ja | Display-Breite in Pixeln |
display_height_px | Ja | Display-Höhe in Pixeln |
display_number | Nein | Display-Nummer für X11-Umgebungen |
enable_zoom |
Wichtig: Das Computer-use-Tool muss von Ihrer Anwendung explizit 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.
Zum Kombinieren von Computer use mit erweitertem Denken siehe Extended thinking.
Um andere Tools neben Computer use hinzuzufügen, fügen Sie sie in das gleiche tools-Array ein. Das Schnellstart-Beispiel oben zeigt dieses Muster mit dem Bash-Tool und Text-Editor-Tool. Sie können Ihre eigenen benutzerdefinierten Tool-Definitionen auf die gleiche Weise hinzufügen.
Die Referenzimplementierung soll Ihnen den Einstieg in die Computer-Nutzung erleichtern. Sie enthält alle Komponenten, die Claude benötigt, um einen Computer zu nutzen. Sie können jedoch Ihre eigene Umgebung für die Computer-Nutzung erstellen, um Ihre Anforderungen zu erfüllen. Sie benötigen:
tool_use-Ergebnisse mit Ihren Tool-Implementierungen ausführtDas Computer-Use-Tool wird als schemalose Tool implementiert. Bei der Verwendung dieses Tools müssen Sie kein Eingabeschema wie bei anderen Tools bereitstellen; das Schema ist in Claudes Modell integriert und kann nicht geändert werden.
Bei der Implementierung des Computer-Use-Tools können verschiedene Fehler auftreten. So können Sie diese behandeln:
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 heruntergesampelt. Claude analysiert dieses kleinere Bild und gibt Koordinaten in diesem Raum zurück, aber Ihr Tool führt Klicks im ursprünglichen Bildschirmraum aus.
Dies kann dazu führen, dass Claudes Klick-Koordinaten ihre Ziele verfehlen, es sei denn, Sie behandeln die Koordinatentransformation.
Um dies zu beheben, ändern Sie die Größe von Screenshots selbst und skalieren Sie Claudes Koordinaten zurück:
Die Computer-Use-Funktionalitä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 Modifizierer-Tastaturunterstützung verbessert. Die Zellauswahl kann zuverlässiger sein, indem Sie diese feinen Steuerelemente verwenden und Modifizierer-Tasten mit Klicks kombinieren.Überprüfen und verifizieren Sie immer sorgfältig Claudes Computer-Use-Actions und Protokolle. Verwenden Sie Claude nicht für Aufgaben, die perfekte Präzision oder sensible Benutzerinformationen ohne menschliche Überwachung erfordern.
Computer-Use ist ein Client-seitiges Tool. Alle Screenshots, Mausaktionen, Tastatureingaben und alle Dateien, die an einer Sitzung beteiligt sind, werden in Ihrer Umgebung erfasst und gespeichert, nicht von Anthropic. Anthropic verarbeitet die Screenshot-Bilder und Action-Anfragen in Echtzeit als Teil des API-Aufrufs, speichert sie aber nicht nach der Rückgabe der Antwort.
Da Ihre Anwendung kontrolliert, wo und wie Computer-Use-Daten gespeichert werden, ist Computer-Use ZDR-berechtigt. Für ZDR-Berechtigung über alle Funktionen hinweg siehe API und Datenspeicherung.
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.
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-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "computer_20251124",
"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": "Save a picture of a cat to my desktop."
}
]
}'Stellen Sie Claude das Computer-use-Tool und eine Benutzeraufforderung zur Verfügung
Claude entscheidet sich, das Computer-use-Tool zu verwenden
stop_reason von tool_use, was Claudes Absicht signalisiert.Extrahieren Sie die Tool-Eingabe, evaluieren Sie das Tool auf einem Computer und geben Sie die Ergebnisse zurück
user-Nachricht fort, die einen tool_result-Inhaltsblock enthält.Claude setzt die Verwendung von Computer-use-Tools fort, bis die Aufgabe abgeschlossen ist
tool_use stop_reason und Sie sollten zu Schritt 3 zurückkehren.| Nein |
Zoom-Aktion aktivieren (computer_20251124 nur). Setzen Sie auf true, um Claude zu ermöglichen, in bestimmte Bildschirmbereiche zu zoomen. Standard: false |
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 möglicherweise anfordert:
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(
model="claude-opus-4-6",
max_tokens=4096,
messages=messages,
tools=tools,
betas=["computer-use-2025-11-24"],
)
# 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 Tools