?
SkillavancéVérifié le 2025-05

Computer Use : automatiser les interfaces

Utiliser la capacité de contrôle d'ordinateur pour automatiser des tâches complexes.

Computer Use avec l'API OpenAI

La fonctionnalité Computer Use permet à un modèle d'interagir avec un ordinateur comme le ferait un humain : voir l'écran, déplacer la souris, cliquer, taper au clavier. C'est un outil puissant pour automatiser des tâches qui n'ont pas d'API.

Principe de fonctionnement

L'agent Computer Use fonctionne en boucle : 1. Il reçoit une capture d'écran de l'environnement 2. Il analyse ce qu'il voit et planifie la prochaine action 3. Il émet une action (clic, frappe clavier, scroll, etc.) 4. L'action est exécutée dans l'environnement 5. Une nouvelle capture est prise, retour à l'étape 1

Configuration via la Responses API

import OpenAI from "openai";

const client = new OpenAI();

const response = await client.responses.create({
  model: "computer-use-preview",
  tools: [{
    type: "computer_use_preview",
    display_width: 1920,
    display_height: 1080,
    environment: "browser" // ou "mac", "windows", "linux"
  }],
  input: "Va sur github.com et crée un nouveau repository appelé 'mon-projet'",
  truncation: "auto"
});

Types d'actions

L'agent peut effectuer les actions suivantes : - click : Cliquer à des coordonnées (x, y) - double_click : Double-cliquer - type : Taper du texte - key : Appuyer sur une touche (Enter, Tab, etc.) - scroll : Faire défiler la page - move : Déplacer le curseur - screenshot : Prendre une capture d'écran - drag : Glisser-déposer

Boucle d'exécution

async function runComputerUseAgent(task: string) {
  let response = await client.responses.create({
    model: "computer-use-preview",
    tools: [{ type: "computer_use_preview", display_width: 1920, display_height: 1080 }],
    input: task
  });

  while (true) {
    // Vérifier si l'agent a terminé
    const computerCall = response.output.find(
      item => item.type === "computer_use_call"
    );

    if (!computerCall) break; // Terminé

    // Exécuter l'action dans l'environnement
    const screenshot = await executeAction(computerCall.action);

    // Renvoyer le résultat (screenshot) à l'agent
    response = await client.responses.create({
      model: "computer-use-preview",
      tools: [{ type: "computer_use_preview", display_width: 1920, display_height: 1080 }],
      previous_response_id: response.id,
      input: [{
        type: "computer_use_call_output",
        call_id: computerCall.call_id,
        output: { type: "image", image_url: screenshot }
      }]
    });
  }

  return response.output_text;
}

Cas d'usage

1. Tests d'interface utilisateur __CODE_BLOCK_2__

2. Automatisation de tâches administratives __CODE_BLOCK_3__

3. Data entry __CODE_BLOCK_4__

4. Web scraping visuel __CODE_BLOCK_5__

Sécurité et bonnes pratiques

  • Environnement isolé : Exécutez toujours dans un sandbox (VM, conteneur)
  • Pas de données sensibles : N'exposez jamais de mots de passe réels à l'écran
  • Supervision humaine : Gardez un humain dans la boucle pour les actions critiques
  • Timeouts : Limitez le nombre d'itérations pour éviter les boucles infinies
  • Logging : Enregistrez toutes les captures et actions pour l'audit

Limites

  • Latence élevée (chaque étape nécessite un appel API + screenshot)
  • Peut se perdre sur des interfaces complexes
  • Les CAPTCHAs et authentifications MFA sont des obstacles
  • Coût élevé en tokens (les screenshots sont volumineux)

Sources

agentscomputer-useautomation