Qwen 3.7 Plus obtient un score de 79,0 sur ScreenSpot Pro, le banc d'essai pour l'analyse de captures d'écran et la restitution des coordonnées de pixels exactes à cliquer. Cette seule compétence transforme un modèle de chat en un agent d'utilisation informatique : un logiciel qui voit un écran, décide quoi faire et le fait. Ce guide construit un agent fonctionnel en Python, de bout en bout.
Nous couvrirons la boucle de l'agent, l'invite qui permet d'obtenir des actions fiables du modèle, un exemple de navigateur exécutable avec Playwright, ainsi que les garde-fous de coût et de sécurité nécessaires avant de le pointer vers quoi que ce soit de réel. Si vous souhaitez d'abord le contexte du modèle, consultez notre aperçu de Qwen 3.7 Plus ; pour le format de requête brut, le guide de l'API Qwen 3.7 Plus couvre les charges utiles multimodales. Vous testerez les appels de l'agent dans Apidog au fur et à mesure.
TL;DR
Un agent d'utilisation informatique exécute une boucle : prendre une capture d'écran, l'envoyer à Qwen 3.7 Plus avec un objectif, recevoir une action structurée comme click (x, y), exécuter cette action avec un pilote tel que Playwright, puis répéter jusqu'à ce que l'objectif soit atteint. Plus est un excellent choix en raison de son ancrage GUI et de son faible prix multimodal. Les difficultés ne sont pas le modèle ; ce sont le plafonnement de la boucle, la mise à l'échelle des coordonnées, le contrôle du coût des tokens et le sandboxing des actions afin qu'un mauvais clic ne puisse pas causer de dommages.
Ce qu'un agent d'utilisation informatique fait réellement
Débarrassez-vous du battage médiatique et ce sont quatre étapes répétées :
- Percevoir : capturer une capture d'écran de l'écran ou de la page actuelle.
- Décider : envoyer la capture d'écran et l'objectif au modèle, et obtenir l'action suivante.
- Agir : exécuter cette action (cliquer, taper, faire défiler) via un pilote d'automatisation.
- Vérifier : prendre une nouvelle capture d'écran et décider si l'objectif est atteint.
Le modèle est l'étape « décider ». Tout le reste est de la plomberie que vous contrôlez.
Pourquoi Qwen 3.7 Plus convient
Pour trois raisons. Son ancrage GUI est de pointe, il renvoie donc des coordonnées utilisables au lieu de descriptions vagues. Il gère les workflows hybrides GUI-et-CLI, de sorte que le même agent peut cliquer sur un bouton et exécuter une commande shell. Et à 0,40 $ par million de tokens d'entrée, il est suffisamment abordable pour exécuter les nombreux appels de vision dont une boucle d'agent a besoin. Pour savoir comment il se compare au fleuron textuel uniquement, consultez notre comparaison Qwen 3.7 Plus vs Max.

L'étape de décision : obtenir une action propre
L'astuce consiste à contraindre le modèle à un vocabulaire d'actions restreint et à forcer une sortie JSON. Un langage libre est difficile à exécuter ; un schéma strict ne l'est pas.
import os, json, base64
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
SYSTEM = """Vous êtes un agent GUI. Vous voyez une capture d'écran et un objectif.
Répondez avec UNE action JSON et rien d'autre :
{"action": "click", "x": , "y": }
{"action": "type", "text": ""}
{"action": "scroll", "dy": }
{"action": "done", "reason": ""}
Les coordonnées sont des pixels de la capture d'écran qui vous a été donnée."""
def next_action(goal, png_bytes):
b64 = base64.b64encode(png_bytes).decode()
resp = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": SYSTEM},
{"role": "user", "content": [
{"type": "text", "text": f"Objectif : {goal}"},
{"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{b64}"}},
]},
],
)
return json.loads(resp.choices[0].message.content)
Confirmez l'ID exact du modèle dans la documentation de Model Studio avant de déployer, car les identifiants peuvent changer.
La boucle complète avec Playwright
Playwright pilote un vrai navigateur, de sorte que l'agent agit sur des pages réelles. Un détail vous épargne beaucoup de peine : faites correspondre la résolution de la capture d'écran à la fenêtre d'affichage, afin que les coordonnées renvoyées par le modèle correspondent une à une et que vous évitiez les calculs de mise à l'échelle.
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
page = browser.new_page(viewport={"width": 1280, "height": 800})
page.goto("https://example.com")
goal = "Ouvrir la page de tarification et trouver le plan le moins cher" # Traduction de l'objectif
for step in range(15): # limite stricte sur les étapes
shot = page.screenshot() # PNG 1280x800, correspond à la fenêtre d'affichage
action = next_action(goal, shot)
print(step, action)
if action["action"] == "done":
break
if action["action"] == "click":
page.mouse.click(action["x"], action["y"])
elif action["action"] == "type":
page.keyboard.type(action["text"])
elif action["action"] == "scroll":
page.mouse.wheel(0, action["dy"])
page.wait_for_timeout(800) # laisser l'interface utilisateur se stabiliser
browser.close()
C'est un véritable agent. Il naviguera sur un site vers un objectif, une action concrète à la fois. Le même modèle fonctionne pour les applications de bureau si vous échangez Playwright contre un pilote de bureau et capturez la fenêtre du système d'exploitation à la place.
Coût et fiabilité
Les captures d'écran sont la partie la plus coûteuse. Chacune est convertie en tokens, et une image de 1280 pixels de large représente quelques milliers de tokens, donc une boucle en 15 étapes envoie de l'argent réel via l'API. Réduisez les coûts :
- Réduire et recadrer. Envoyez la plus petite image que le modèle peut encore lire. Recadrez sur le panneau pertinent lorsque vous le pouvez.
- Placer une limite sur la boucle. Limitez toujours le nombre d'étapes, comme dans l'exemple, afin qu'un agent confus ne puisse pas fonctionner indéfiniment.
- Vérifier après avoir agi. Traitez chaque action comme une hypothèse. La capture d'écran suivante confirme si elle a fonctionné, et la boucle se corrige automatiquement.
Notre guide sur la réduction des coûts de tokens d'agent approfondit le sujet, et nos notes sur les modèles de câblage et les pièges des workflows agentiques couvrent les points où ces boucles échouent en pratique.
Quand l'agent est bloqué
Trois types d'échecs apparaissent constamment, et chacun a une solution simple :
- Le modèle renvoie du texte libre au lieu de JSON. Relancez l'invite avec un bref rappel "répondre en JSON uniquement" et réessayez une fois avant d'abandonner. Un schéma strict et une étape de réparation corrigent presque tous ces cas.
- Un clic manque sa cible. La capture d'écran suivante montre que rien n'a changé, alors ajoutez une règle qui réessaie avec une nouvelle capture d'écran au lieu de répéter aveuglément les mêmes coordonnées.
- La boucle tourne sans progrès. Suivez les dernières actions ; si elles se répètent, arrêtez et affichez la capture d'écran à un humain. La limite d'étapes est votre filet de sécurité.
Sécurité
Un agent d'utilisation informatique clique réellement sur des éléments. Avant qu'il ne touche quoi que ce soit d'important :
- Exécutez-le dans un environnement isolé ou un profil de navigateur jetable, jamais dans votre session de production connectée.
- Exigez une confirmation humaine pour les actions destructrices comme supprimer, envoyer ou payer.
- Enregistrez chaque action avec sa capture d'écran afin de pouvoir auditer ce que l'agent a fait et pourquoi.
Testez les appels de l'agent avec Apidog
La plupart des échecs d'agent remontent à une seule question : le modèle a-t-il renvoyé une action valide ? Avant de brancher Playwright, clarifiez cela. Utilisez Apidog pour envoyer un exemple de capture d'écran à Qwen 3.7 Plus, inspectez le JSON brut qu'il renvoie et ajustez votre invite système jusqu'à ce que le schéma d'action soit propre à chaque fois. Stockez votre clé Model Studio par environnement et simulez le point de terminaison afin de pouvoir construire la boucle sans brûler des tokens à chaque exécution de test. Lorsque la boucle complète enchaîne les appels, le débogueur d'agent IA d'Apidog affiche la séquence afin que vous puissiez trouver l'étape qui a déraillé.

Pour générer du code UI à partir d'un design au lieu d'en piloter un, consultez notre guide complémentaire sur la capture d'écran vers le code avec Qwen 3.7 Plus.
Téléchargez Apidog pour tester et déboguer les appels de modèle derrière votre agent.
FAQ
Qu'est-ce qu'un agent d'utilisation informatique ? Un logiciel qui perçoit un écran via des captures d'écran, décide d'une action avec un modèle, et l'exécute via un pilote d'automatisation, en bouclant jusqu'à ce qu'un objectif soit atteint.
Qwen 3.7 Plus peut-il contrôler mon bureau ? Le modèle ne renvoie que des actions. Vous les exécutez avec un pilote. Associez-le à Playwright pour les navigateurs ou à une bibliothèque d'automatisation de bureau pour les applications natives.
Combien coûte chaque étape ? Principalement la capture d'écran. Une seule image d'écran peut représenter quelques milliers de tokens d'entrée à 0,40 $ par million, donc la réduction d'échelle et le plafonnement de la boucle sont les principaux leviers de coût.
Est-ce suffisamment fiable pour la production ? Pour les tâches bornées et bien définies avec vérification après chaque étape, oui. Pour le contrôle illimité de systèmes critiques, gardez un humain dans la boucle et isolez tout.
Dois-je mettre à l'échelle les coordonnées ? Non, si la résolution de votre capture d'écran correspond à votre fenêtre d'affichage. Si elles diffèrent, mettez à l'échelle les coordonnées renvoyées par le rapport entre elles.
Le mot de la fin
Un agent d'utilisation informatique est une courte boucle autour d'un modèle performant, et Qwen 3.7 Plus vous offre la base et le prix pour l'exécuter. Construisez la boucle, plafonnez-la, isolez-la et vérifiez chaque étape. Ensuite, testez les appels du modèle dans Apidog afin que l'étape de "décision" soit solide avant que l'agent ne commence à cliquer.
