Aller au contenu principal

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_px et display_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, playwright et pillow dans un environnement virtuel dédié
  • La clé API doit être dans une variable d’environnement, jamais dans le code
  • L’outil computer_20241022 doit être déclaré avec les dimensions exactes du viewport
  • Testez toujours avec un script minimal avant de construire des workflows complexes