Aller au contenu principal

Configurer Computer Use dans l'API

Mis à jour le 29 juillet 2026

Ce qu’il faut avoir sous la main

Le poste de travail doit réunir quatre choses avant la première ligne de code : Python 3.10 ou supérieur, un compte Anthropic avec une clé API active, un navigateur Chromium — Chrome ou Chromium — pour les interactions web, et Docker si vous voulez sandboxer l’agent. Ce dernier point reste optionnel au stade de l’apprentissage, mais il devient fortement recommandé dès que l’agent touche à autre chose qu’un site de démonstration.

Installer les dépendances

Travaillez dans un environnement virtuel dédié. Un agent Computer Use épingle des versions précises de Playwright et de ses navigateurs ; le mélanger à vos autres projets Python vous vaudra des conflits pénibles à diagnostiquer.

# 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

Chacun de ces paquets joue un rôle distinct : anthropic fournit le client API qui parle au modèle, playwright pilote le navigateur et exécute les clics, pillow sert aux manipulations d’images — redimensionnement, conversion de format — quand vous en avez besoin. La dernière commande est celle qu’on oublie le plus souvent : sans playwright install chromium, le paquet est bien présent mais aucun binaire de navigateur n’a été téléchargé, et le premier lancement échoue sur une erreur qui ne mentionne pas l’installation manquante.

Placer la clé API au bon endroit

La clé vit dans une variable d’environnement, jamais en dur dans un script. Un secret écrit dans le code finit tôt ou tard dans un dépôt Git, et une clé Anthropic exposée se consomme vite.

export ANTHROPIC_API_KEY="sk-ant-api03-..."

Pour un usage permanent, ajoutez cette ligne à votre ~/.bashrc ou ~/.zshrc. En production, passez à un gestionnaire de secrets — AWS Secrets Manager, HashiCorp Vault ou équivalent. Le client la lit ensuite tout seul, sans que vous ayez à la nommer :

import anthropic

client = anthropic.Anthropic()  # Lit ANTHROPIC_API_KEY automatiquement
print("Client initialisé avec succès")

Déclarer l’outil Computer Use

Un modèle ne contrôle pas un écran par défaut : il faut le lui autoriser explicitement en déclarant un outil de type computer_20241022 dans l’appel API. Ce type spécial signale au modèle qu’il dispose d’un écran et lui ouvre le répertoire d’actions vu à la leçon précédente.

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-5",
    max_tokens=1024,
    tools=tools,
    messages=[
        {
            "role": "user",
            "content": "Clique sur le bouton de recherche."
        }
    ]
)

Deux champs méritent toute votre attention. display_width_px et display_height_px décrivent la résolution de votre écran ou de votre navigateur : le modèle s’en sert pour calculer les coordonnées de ses clics, et elles doivent correspondre exactement à la taille du screenshot que vous lui envoyez. Déclarez 1280x720 tout en capturant en 1920x1080 et chaque clic tombera à côté, sans le moindre message d’erreur pour vous mettre sur la piste : vous verrez simplement un agent qui rate obstinément ses cibles. Quant à type: "computer_20241022", c’est l’identifiant de version de l’outil ; cette version est stable depuis fin 2024.

Configurer le navigateur

Côté Playwright, le lancement gagne à être encapsulé dans une fonction que vous réutiliserez dans toutes vos tâches.

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

Observez la cohérence entre --window-size=1280,720, le viewport du contexte et les dimensions déclarées dans l’outil : ces trois valeurs doivent rester alignées, et toute modification de l’une impose de reprendre les deux autres. L’option headless=True lance le navigateur sans interface graphique, ce qui est indispensable sur un serveur ; pendant le développement, passez à False pour regarder l’agent travailler en direct — c’est le moyen le plus rapide de comprendre pourquoi il se trompe.

Organiser le projet

Séparez dès le départ ce qui relève du navigateur, de la boucle d’agent et de l’exécution des actions. Cette découpe vous évitera le fichier unique de six cents lignes auquel on aboutit immanquablement au bout de trois tâches.

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

Vérifier l’installation avant d’aller plus loin

Ne construisez pas un workflow complexe sur une configuration non validée : au premier échec, vous ne sauriez plus s’il vient de la clé, du navigateur ou de votre prompt. Ce script minimal teste la chaîne entière — client API, lancement du navigateur, capture, envoi de l’image.

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-5",
        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 la console affiche une description de la page example.com, votre configuration est opérationnelle et vous pouvez passer à la construction d’un agent complet.

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