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.6, 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)Bitte teilen Sie Ihr Feedback zu dieser Funktion über unser Feedback-Formular mit.
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.6, 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.6 und Claude Opus 4.5 führen die Tool-Version computer_20251124 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 Tool-Version computer_20250124.
Ä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, die in Inhalten gefunden werden, selbst wenn diese den Anweisungen des Benutzers widersprechen. Beispielsweise können Claude-Anweisungen auf Webseiten oder in Bildern die 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 Fälle 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. Wir erkennen an, dass dieser zusätzliche Schutz nicht ideal für jeden Anwendungsfall ist (beispielsweise für Anwendungsfälle ohne einen Menschen in der Schleife), daher kontaktieren Sie uns bitte hier, wenn Sie sich abmelden und ihn ausschalten möchten.
Wir empfehlen dennoch, Vorsichtsmaßnahmen zu treffen, um Claude von sensiblen Daten und Aktionen zu isolieren, um Risiken im Zusammenhang mit Prompt-Injection zu vermeiden.
Informieren Sie schließlich die Endbenutzer über relevante Risiken und holen Sie ihre Zustimmung ein, bevor Sie Computer use in Ihren eigenen Produkten aktivieren.
Beginnen Sie schnell mit unserer Computer-use-Referenzimplementierung, die eine Web-Benutzeroberfläche, 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 einzubeziehen. 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 freuen uns, von Ihnen zu hören!
So beginnen Sie mit Computer use:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6", # oder ein anderes kompatibles Modell
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 für die Verwendung des Computer-use-Tools
stop_reason von tool_use, was Claudes Absicht signalisiert.Tool-Eingabe extrahieren, das Tool auf einem Computer auswerten und Ergebnisse zurückgeben
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.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 Auswertung 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-Benutzeroberfläche rendert, die Claude durch Screenshots sehen 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 Benutzeroberfläche für Claude bietet, mit der sie 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 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 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, # 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 die Verwendung von Tools an
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
# Beispiel: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# 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 (Aufgabenabschluss) oder das maximale Iterationslimit erreicht wird. Diese Schutzmaßnahme 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:
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> zur Verfügung. Die Verwendung von Computer use in Anwendungen, die eine 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 zur Verfügung stellen.Wenn Sie wiederholt auf eine klare Reihe von Problemen stoßen oder im Voraus wissen, welche Aufgaben Claude abschließen muss, verwenden Sie den System-Prompt, um Claude explizite Tipps oder Anweisungen zu geben, wie die Aufgaben erfolgreich abgeschlossen werden können.
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:
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 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, computer_20250124 oder computer_20241022) |
name | Ja | Muss „computer" sein |
display_width_px | Ja | Anzeigebreite in Pixeln |
display_height_px | Ja | Anzeigenhöhe in Pixeln |
display_number | Nein | Anzeigenummer für X11-Umgebungen |
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 |
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.
Claude Sonnet 3.7 führte eine neue „Thinking"-Funktion 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 Gesamtbudget max_tokens 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 unterteilen:
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:
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-opus-4-6",
"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": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Find flights from San Francisco to a place with warmer weather."
}
],
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}
}'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 mithilfe Ihrer Tool-Implementierungen ausführtDas Computer-Use-Tool wird als schemafreies 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(...)
# 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:
Die API beschränkt Bilder auf maximal 1568 Pixel an 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 zurück:
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. 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 feingranularen Steuerelemente verwenden und Modifizierer-Tasten mit Klicks kombinieren.Überprüfen und verifizieren Sie immer sorgfältig Claudes Computer-Use-Aktionen 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.
Beginnen Sie schnell mit unserer vollständigen Docker-basierten Implementierung
Erfahren Sie mehr über Tool-Nutzung und das Erstellen benutzerdefinierter Tools
Was this page helpful?