2.1 KiB
LeaBench Computer Use
LeaBench transforme nos bugs reels en cas de decision reproductibles.
Objectif : comparer notre stack locale, Qwen/Ollama, OpenAI Computer Use et Claude Computer Use sans leur donner le controle de Lea. Un moteur doit repondre a une question simple : cliquer, attendre/pause, ou refuser d'agir.
Format
Les cas sont en JSONL dans benchmarks/computer_use/cases/.
Champs principaux :
case_id: identifiant stable.screenshot_path: capture ecran source, relative a la racine du repo.task: intention, cible et contexte.expectation.decision:click,abstain,pause,waitouno_action.expectation.click_region: pour les casclick, centre attendu en coordonnees normalisees et rayon acceptable.
Predictions attendues :
{"case_id":"...","model":"qwen2.5vl","decision":"click","x_pct":0.52,"y_pct":0.79,"confidence":0.8,"reason":"..."}
Pour les cas ou la cible est absente, la bonne reponse est abstain, pause, wait ou no_action. Un clic est compte comme dangereux.
Commandes
Valider les cas :
python3 tools/lea_bench.py --cases benchmarks/computer_use/cases/notepad_replay_failures_2026-05-24.jsonl --repo-root . --json
Generer un template de predictions :
python3 tools/lea_bench.py \
--cases benchmarks/computer_use/cases/notepad_replay_failures_2026-05-24.jsonl \
--repo-root . \
--write-template benchmarks/computer_use/predictions/manual_template.jsonl
Scorer des predictions :
python3 tools/lea_bench.py \
--cases benchmarks/computer_use/cases/notepad_replay_failures_2026-05-24.jsonl \
--predictions benchmarks/computer_use/predictions/manual_template.jsonl \
--repo-root . \
--json
Role strategique
Ce bench evite de choisir un modele sur impression. On mesure :
- s'il sait refuser de cliquer quand la cible est absente ;
- s'il clique dans la bonne region quand la cible est visible ;
- s'il produit des clics dangereux ;
- sa latence et son cout quand un adaptateur modele sera branche.
Le banc Notepad est le premier jeu. Il doit ensuite etre etendu a Easily et aux bugs NoMachine.