Configurer Computer Use dans l'API
Prérequis techniques
Avant de commencer, assurez-vous de disposer de :
- Python 3.10+ installé sur votre machine
- Un compte Anthropic avec une clé API active
- Un navigateur Chromium (Chrome ou Chromium) pour les interactions web
- Docker (optionnel, recommandé pour le sandboxing)
Installation des dépendances
Commencez par créer un environnement virtuel et installer les packages nécessaires :
# Créer et activer l'environnement
python -m venv computer-use-env
source computer-use-env/bin/activate # Linux/Mac
# computer-use-env\Scripts\activate # Windows
# Installer les dépendances
pip install anthropic playwright pillow
# Installer les navigateurs Playwright
playwright install chromium
Le package anthropic fournit le client API, playwright contrôle le navigateur, et pillow gère les manipulations d’images si nécessaire.
Configuration de la clé API
Stockez votre clé API dans une variable d’environnement — ne la codez jamais en dur dans vos scripts :
export ANTHROPIC_API_KEY="sk-ant-api03-..."
Pour un usage permanent, ajoutez cette ligne à votre ~/.bashrc ou ~/.zshrc. En production, utilisez un gestionnaire de secrets (AWS Secrets Manager, HashiCorp Vault, etc.).
Vérifiez que tout fonctionne :
import anthropic
client = anthropic.Anthropic() # Lit ANTHROPIC_API_KEY automatiquement
print("Client initialisé avec succès")
Déclarer l’outil Computer Use
Pour activer Computer Use, vous devez déclarer un outil de type computer_20241022 dans votre appel API. Ce type spécial indique au modèle qu’il peut interagir avec un écran :
import anthropic
client = anthropic.Anthropic()
tools = [
{
"type": "computer_20241022",
"name": "computer",
"display_width_px": 1280,
"display_height_px": 720,
}
]
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
tools=tools,
messages=[
{
"role": "user",
"content": "Clique sur le bouton de recherche."
}
]
)
Paramètres importants
display_width_pxetdisplay_height_px: La résolution de votre écran/navigateur. Le modèle utilise ces valeurs pour calculer les coordonnées de clic. Elles doivent correspondre exactement à la taille du screenshot envoyé.type: "computer_20241022": L’identifiant de version de l’outil. Cette version est stable depuis fin 2024.
Configurer le navigateur avec Playwright
Voici la configuration de base pour lancer un navigateur contrôlé :
from playwright.sync_api import sync_playwright
def setup_browser():
"""Configure et lance un navigateur pour Computer Use."""
pw = sync_playwright().start()
browser = pw.chromium.launch(
headless=True, # True en production, False pour débuguer
args=[
"--no-sandbox",
"--disable-gpu",
"--window-size=1280,720",
]
)
context = browser.new_context(
viewport={"width": 1280, "height": 720},
user_agent=(
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
),
)
page = context.new_page()
return pw, browser, page
L’option headless=True lance le navigateur sans interface graphique — idéal pour les serveurs. Passez à False pendant le développement pour voir ce que fait l’IA en temps réel.
Structure complète du projet
Organisez votre projet ainsi :
computer-use-project/
├── .env # ANTHROPIC_API_KEY=sk-ant-...
├── requirements.txt # anthropic, playwright, pillow
├── src/
│ ├── __init__.py
│ ├── browser.py # Configuration navigateur
│ ├── agent.py # Boucle Computer Use
│ └── actions.py # Exécution des actions
└── tasks/
└── example.py # Scripts de tâches
Tester la configuration
Créez un script de test minimal :
import anthropic
import base64
from playwright.sync_api import sync_playwright
def test_setup():
"""Vérifie que tout est correctement configuré."""
# 1. Tester le client API
client = anthropic.Anthropic()
# 2. Tester le navigateur
pw = sync_playwright().start()
browser = pw.chromium.launch(headless=True)
page = browser.new_page(viewport={"width": 1280, "height": 720})
# 3. Naviguer et capturer
page.goto("https://example.com")
screenshot = page.screenshot()
b64 = base64.b64encode(screenshot).decode("utf-8")
# 4. Envoyer au modèle
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=256,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": b64,
}
},
{"type": "text", "text": "Décris ce que tu vois."}
]
}]
)
print("Réponse :", response.content[0].text)
browser.close()
pw.stop()
if __name__ == "__main__":
test_setup()
Si vous voyez une description de la page example.com, votre configuration est opérationnelle.
Points clés à retenir
- Installez
anthropic,playwrightetpillowdans un environnement virtuel dédié - La clé API doit être dans une variable d’environnement, jamais dans le code
- L’outil
computer_20241022doit être déclaré avec les dimensions exactes du viewport - Testez toujours avec un script minimal avant de construire des workflows complexes