Was this page helpful?
Claude peut interagir avec des environnements informatiques grâce à l'outil d'utilisation de l'ordinateur, qui offre des capacités de capture d'écran et un contrôle de la souris/du clavier pour une interaction autonome avec le bureau. Sur WebArena, un benchmark pour la navigation web autonome sur de vrais sites web, Claude obtient des résultats à l'état de l'art parmi les systèmes à agent unique, démontrant une forte capacité à accomplir des tâches de navigation multi-étapes de bout en bout.
L'utilisation de l'ordinateur est en version bêta et nécessite un en-tête bêta :
"computer-use-2025-11-24" pour Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24" pour Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4, et Sonnet 3.7 (déprécié)Partagez vos retours sur cette fonctionnalité via le formulaire de feedback.
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.
L'utilisation de l'ordinateur est une fonctionnalité bêta qui permet à Claude d'interagir avec des environnements de bureau. Cet outil offre :
Bien que l'utilisation de l'ordinateur puisse être complétée par d'autres outils comme bash et l'éditeur de texte pour des flux de travail d'automatisation plus complets, l'utilisation de l'ordinateur désigne spécifiquement la capacité de l'outil d'utilisation de l'ordinateur à voir et contrôler les environnements de bureau.
L'utilisation de l'ordinateur est disponible pour les modèles Claude suivants :
| Modèle | Version de l'outil | Indicateur bêta |
|---|---|---|
| Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Tous les autres modèles pris en charge | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.6, Claude Sonnet 4.6 et Claude Opus 4.5 introduisent la version d'outil computer_20251124 avec de nouvelles capacités, notamment l'action de zoom pour l'inspection détaillée de régions de l'écran. Tous les autres modèles (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1 et Sonnet 3.7) utilisent la version d'outil computer_20250124.
Les versions d'outils plus anciennes ne sont pas garanties d'être rétrocompatibles avec les modèles plus récents. Utilisez toujours la version de l'outil qui correspond à votre version de modèle.
L'utilisation de l'ordinateur est une fonctionnalité bêta présentant des risques uniques distincts des fonctionnalités API standard. Ces risques sont accrus lors d'interactions avec Internet.
Pour minimiser les risques, envisagez de prendre des précautions telles que :
Dans certaines circonstances, Claude suivra des commandes trouvées dans le contenu même si cela entre en conflit avec les instructions de l'utilisateur. Par exemple, les instructions de Claude sur des pages web ou contenues dans des images peuvent remplacer les instructions ou amener Claude à faire des erreurs. Prenez des précautions pour isoler Claude des données et actions sensibles afin d'éviter les risques liés à l'injection de prompts.
Le modèle a été entraîné pour résister à ces injections de prompts, et une couche de défense supplémentaire a été ajoutée. Si vous utilisez les outils d'utilisation de l'ordinateur, des classificateurs s'exécuteront automatiquement sur vos prompts pour signaler les instances potentielles d'injections de prompts. Lorsque ces classificateurs identifient des injections de prompts potentielles dans les captures d'écran, ils orienteront automatiquement le modèle pour qu'il demande une confirmation de l'utilisateur avant de procéder à l'action suivante. Cette protection supplémentaire ne sera pas idéale pour tous les cas d'utilisation (par exemple, les cas d'utilisation sans humain dans la boucle), donc si vous souhaitez vous désinscrire et la désactiver, veuillez contacter le support.
Ces précautions restent importantes même avec la couche de défense par classificateur en place.
Informez les utilisateurs finaux des risques pertinents et obtenez leur consentement avant d'activer l'utilisation de l'ordinateur dans vos propres produits.
Démarrez rapidement avec l'implémentation de référence pour l'utilisation de l'ordinateur qui comprend une interface web, un conteneur Docker, des exemples d'implémentations d'outils et une boucle d'agent.
Remarque : L'implémentation a été mise à jour pour inclure de nouveaux outils pour les modèles Claude 4 et Claude Sonnet 3.7. Assurez-vous de récupérer la dernière version du dépôt pour accéder à ces nouvelles fonctionnalités.
Utilisez ce formulaire pour fournir des retours sur la qualité des réponses du modèle, l'API elle-même ou la qualité de la documentation.
Voici comment démarrer avec l'utilisation de l'ordinateur :
Un en-tête bêta n'est requis que pour l'outil d'utilisation de l'ordinateur.
L'exemple ci-dessus montre les trois outils utilisés ensemble, ce qui nécessite l'en-tête bêta car il inclut l'outil d'utilisation de l'ordinateur.
La répétition des étapes 3 et 4 sans entrée utilisateur est appelée la "boucle d'agent" (c'est-à-dire que Claude répond avec une requête d'utilisation d'outil et votre application répond à Claude avec les résultats de l'évaluation de cette requête).
L'utilisation de l'ordinateur nécessite un environnement informatique en bac à sable où Claude peut interagir en toute sécurité avec des applications et le web. Cet environnement comprend :
Affichage virtuel : Un serveur d'affichage X11 virtuel (utilisant Xvfb) qui rend l'interface de bureau que Claude verra via des captures d'écran et contrôlera avec des actions de souris/clavier.
Environnement de bureau : Une interface utilisateur légère avec un gestionnaire de fenêtres (Mutter) et un panneau (Tint2) fonctionnant sous Linux, qui fournit une interface graphique cohérente pour que Claude puisse interagir.
Applications : Des applications Linux pré-installées comme Firefox, LibreOffice, des éditeurs de texte et des gestionnaires de fichiers que Claude peut utiliser pour accomplir des tâches.
Implémentations d'outils : Du code d'intégration qui traduit les requêtes d'outils abstraites de Claude (comme "déplacer la souris" ou "prendre une capture d'écran") en opérations réelles dans l'environnement virtuel.
Boucle d'agent : Un programme qui gère la communication entre Claude et l'environnement, envoyant les actions de Claude à l'environnement et retournant les résultats (captures d'écran, sorties de commandes) à Claude.
Lorsque vous utilisez l'utilisation de l'ordinateur, Claude ne se connecte pas directement à cet environnement. Au lieu de cela, votre application :
Pour la sécurité et l'isolation, l'implémentation de référence exécute tout cela dans un conteneur Docker avec des mappages de ports appropriés pour visualiser et interagir avec l'environnement.
Une implémentation de référence est disponible et comprend tout ce dont vous avez besoin pour démarrer rapidement avec l'utilisation de l'ordinateur :
Le cœur de l'utilisation de l'ordinateur est la "boucle d'agent" - un cycle où Claude demande des actions d'outils, votre application les exécute et retourne les résultats à Claude. Voici un exemple simplifié :
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"
if "20250124" in tool_version
else "computer-use-2024-10-22"
)
# 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": f"text_editor_{tool_version}", "name": "str_replace_editor"},
{"type": f"bash_{tool_version}", "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})La boucle continue jusqu'à ce que Claude réponde sans demander d'outils (tâche terminée) ou que la limite maximale d'itérations soit atteinte. Cette protection empêche les boucles infinies potentielles qui pourraient entraîner des coûts API inattendus.
Essayez l'implémentation de référence avant de lire le reste de cette documentation.
Voici quelques conseils pour obtenir des sorties de la meilleure qualité :
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>. L'utilisation de l'ordinateur dans des applications nécessitant une connexion augmente le risque de mauvais résultats en raison d'injections de prompts. Consultez le guide sur l'atténuation des injections de prompts avant de fournir des identifiants de connexion au modèle.Si vous rencontrez régulièrement un ensemble clair de problèmes ou si vous connaissez à l'avance les tâches que Claude devra accomplir, utilisez le prompt système pour fournir à Claude des conseils ou des instructions explicites sur la façon d'accomplir les tâches avec succès.
Pour les agents qui s'étendent sur plusieurs sessions, effectuez une vérification de bout en bout au début de chaque session, pas seulement après l'implémentation. Les vérifications basées sur le navigateur détectent les régressions des sessions précédentes que la révision au niveau du code seule manque. Voir Effective harnesses for long-running agents pour plus de détails.
Lorsqu'un des outils définis par Anthropic est demandé via l'API Claude, un prompt système spécifique à l'utilisation de l'ordinateur est généré. Il est similaire au prompt système d'utilisation d'outils mais commence par :
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.
Comme pour l'utilisation d'outils ordinaire, le champ system_prompt fourni par l'utilisateur est toujours respecté et utilisé dans la construction du prompt système combiné.
L'outil d'utilisation de l'ordinateur prend en charge ces actions :
Actions de base (toutes les versions)
[x, y]Actions améliorées (computer_20250124)
Disponibles dans les modèles Claude 4 et Claude Sonnet 3.7 :
Actions améliorées (computer_20251124)
Disponibles dans Claude Opus 4.6 et Claude Opus 4.5 :
computer_20250124enable_zoom: true dans la définition de l'outil. Prend un paramètre region avec des coordonnées [x1, y1, x2, y2] définissant les coins supérieur gauche et inférieur droit de la zone à inspecter.| Paramètre | Requis | Description |
|---|---|---|
type | Oui | Version de l'outil (computer_20251124, computer_20250124, ou computer_20241022) |
name | Oui | Doit être "computer" |
display_width_px | Oui | Largeur d'affichage en pixels |
display_height_px | Oui | Hauteur d'affichage en pixels |
display_number | Non | Numéro d'affichage pour les environnements X11 |
Important : L'outil d'utilisation de l'ordinateur doit être explicitement exécuté par votre application - Claude ne peut pas l'exécuter directement. Vous êtes responsable de l'implémentation de la capture d'écran, des mouvements de souris, des entrées clavier et d'autres actions basées sur les requêtes de Claude.
Claude Sonnet 3.7 a introduit une nouvelle capacité de "réflexion" qui vous permet de voir le processus de raisonnement du modèle lorsqu'il travaille sur des tâches complexes. Cette fonctionnalité vous aide à comprendre comment Claude aborde un problème et peut être particulièrement précieuse pour le débogage ou à des fins éducatives.
Pour activer la réflexion, ajoutez un paramètre thinking à votre requête API :
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}Le paramètre budget_tokens spécifie combien de tokens Claude peut utiliser pour la réflexion. Cela est soustrait de votre budget global max_tokens.
Lorsque la réflexion est activée, Claude retournera son processus de raisonnement dans le cadre de la réponse, ce qui peut vous aider à :
Voici un exemple de ce à quoi pourrait ressembler la sortie de réflexion :
[Thinking]
I need to save a picture of a cat to the desktop. Let me break this down into steps:
1. First, I'll take a screenshot to see what's on the desktop
2. Then I'll look for a web browser to search for cat images
3. After finding a suitable image, I'll need to save it to the desktop
Let me start by taking a screenshot to see what's available...L'outil d'utilisation de l'ordinateur peut être combiné avec d'autres outils pour créer des flux de travail d'automatisation plus puissants. Cela est particulièrement utile lorsque vous avez besoin de :
L'implémentation de référence est destinée à vous aider à démarrer avec l'utilisation de l'ordinateur. Elle inclut tous les composants nécessaires pour que Claude utilise un ordinateur. Cependant, vous pouvez créer votre propre environnement d'utilisation de l'ordinateur selon vos besoins. Vous aurez besoin de :
tool_use en utilisant vos implémentations d'outilsL'outil d'utilisation de l'ordinateur est implémenté comme un outil sans schéma. Lors de l'utilisation de cet outil, vous n'avez pas besoin de fournir un schéma d'entrée comme avec d'autres outils ; le schéma est intégré dans le modèle de Claude et ne peut pas être modifié.
Lors de l'implémentation de l'outil d'utilisation de l'ordinateur, diverses erreurs peuvent survenir. Voici comment les gérer :
L'API limite les images à un maximum de 1568 pixels sur le bord le plus long et environ 1,15 mégapixels au total (voir redimensionnement d'image pour plus de détails). Par exemple, un écran de 1512x982 est sous-échantillonné à environ 1330x864. Claude analyse cette image plus petite et renvoie des coordonnées dans cet espace, mais votre outil exécute les clics dans l'espace d'écran d'origine.
Cela peut faire manquer les cibles aux coordonnées de clic de Claude, sauf si vous gérez la transformation des coordonnées.
Pour corriger cela, redimensionnez vous-même les captures d'écran et remettez à l'échelle les coordonnées de Claude :
La fonctionnalité d'utilisation de l'ordinateur est en version bêta. Bien que les capacités de Claude soient à la pointe de la technologie, les développeurs doivent être conscients de ses limitations :
left_mouse_down, , et un nouveau support de touches modificatrices. La sélection de cellules peut être plus fiable en utilisant ces contrôles fins et en combinant les touches modificatrices avec les clics.Examinez et vérifiez toujours soigneusement les actions et journaux d'utilisation de l'ordinateur de Claude. N'utilisez pas Claude pour des tâches nécessitant une précision parfaite ou des informations utilisateur sensibles sans surveillance humaine.
L'utilisation de l'ordinateur est un outil côté client. Toutes les captures d'écran, actions de souris, saisies au clavier et tous les fichiers impliqués dans une session sont capturés et stockés dans votre environnement, et non par Anthropic. Anthropic traite les images de capture d'écran et les demandes d'action en temps réel dans le cadre de l'appel API, mais ne les conserve pas après le retour de la réponse.
Étant donné que votre application contrôle où et comment les données d'utilisation de l'ordinateur sont stockées, l'utilisation de l'ordinateur est éligible à la ZDR. Pour l'éligibilité ZDR sur toutes les fonctionnalités, voir API et conservation des données.
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."
}
]
}'Fournir à Claude l'outil d'utilisation de l'ordinateur et un prompt utilisateur
Claude décide d'utiliser l'outil d'utilisation de l'ordinateur
stop_reason de tool_use, signalant l'intention de Claude.Extraire l'entrée de l'outil, évaluer l'outil sur un ordinateur et retourner les résultats
user contenant un bloc de contenu tool_result.Claude continue d'appeler les outils d'utilisation de l'ordinateur jusqu'à ce que la tâche soit terminée
stop_reason tool_use et vous devez revenir à l'étape 3.enable_zoom |
| Non |
Activer l'action de zoom (uniquement computer_20251124). Définir à true pour permettre à Claude de zoomer sur des régions spécifiques de l'écran. Par défaut : 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-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 2000,
"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"
},
{
"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
}
}'Configurer votre environnement informatique
Créez un affichage virtuel ou connectez-vous à un affichage existant avec lequel Claude interagira. Cela implique généralement la configuration de Xvfb (X Virtual Framebuffer) ou d'une technologie similaire.
Implémenter les gestionnaires d'actions
Créez des fonctions pour gérer chaque type d'action que Claude pourrait demander :
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 actionsTraiter les appels d'outils de Claude
Extrayez et exécutez les appels d'outils des réponses de Claude :
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,
}Implémenter la boucle d'agent
Créez une boucle qui continue jusqu'à ce que Claude termine la tâche :
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)left_mouse_upEn savoir plus sur l'utilisation des outils et la création d'outils personnalisés