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ähigkeit, 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.7, 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)Kontaktieren Sie uns über das Feedback-Formular, um Ihr Feedback zu dieser Funktion zu teilen.
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 überschreiben oder Claude dazu veranlassen, Fehler zu machen. Ergreifen 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 eine zusätzliche Schutzebene wurde 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 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 mit der Klassifizierer-Schutzebene vorhanden.
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 einzuschließen. Stellen Sie sicher, dass Sie die neueste Version des Repositorys abrufen, um auf diese neuen Funktionen zuzugreifen.
So beginnen Sie mit Computer use:
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-7", # or another compatible model
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."}],
betas=["computer-use-2025-11-24"],
)
print(response)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.
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 das Aufrufen von Computer-use-Tools fort, bis die Aufgabe abgeschlossen ist
tool_use stop_reason und Sie sollten zu Schritt 3 zurückkehren.Die Wiederholung der Schritte 3 und 4 ohne Benutzereingabe wird als „Agent-Schleife" bezeichnet (das heißt, 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 UI mit Window Manager (Mutter) und Panel (Tint2), die auf Linux läuft und eine konsistente grafische Schnittstelle für Claude bietet, um damit zu interagieren.
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 all dies 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 Claude entweder ohne Anforderung von Tools antwortet (Aufgabenvollendung) oder das maximale Iterationslimit erreicht wird. Diese Sicherheitsmaß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. auffordern.<robot_credentials> an. Die Verwendung von Computer use in Anwendungen, die 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 mehrere Sitzungen umfassen, führen Sie am Anfang jeder Sitzung eine End-to-End-Verifizierung durch, nicht nur nach der Implementierung. Browser-basierte Überprüfungen erkennen 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 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.7, 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 | Nein | Aktivieren Sie die Zoom-Aktion (computer_20251124 nur). Setzen Sie auf true, um Claude zu ermöglichen, in bestimmte Bildschirmbereiche zu zoomen. Standard: false |
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 obige Schnellstart-Beispiel 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.
Richten Sie Ihre Computerumgebung ein
Erstellen Sie eine virtuelle Anzeige oder verbinden Sie sich mit einer vorhandenen Anzeige, mit der Claude interagiert. Dies umfasst typischerweise 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-7",
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})Bei der Implementierung des Computer-Use-Tools können verschiedene Fehler auftreten. So behandeln Sie diese:
Claude Opus 4.7 unterstützt bis zu 2576 Pixel auf der langen Kante, und seine Koordinaten sind 1
mit Bildpixeln (keine Skalierungsfaktor-Konvertierung erforderlich). Die nachstehende 1568-Pixel-Anleitung gilt für frühere Modelle.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 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 wieder hoch:
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)Die Computer-Use-Funktionalität befindet sich in der Beta-Phase. Obwohl 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 erfordern, ohne menschliche Überwachung.
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, nachdem die Antwort zurückgegeben wurde.
Da Ihre Anwendung steuert, 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 |
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.
Schneller Einstieg mit der vollständigen Docker-basierten Implementierung
Erfahren Sie mehr über Tool-Use und das Erstellen benutzerdefinierter Tools
Was this page helpful?