# Consolidation — 5 avril 2026 ## Ce qui fonctionne ### Pipeline d'entraînement (mesuré) | Étape | Temps/screenshot | Extrapolation 1h | |-------|-----------------|------------------| | ScreenAnalyzer (OCR docTR) | 1.05s | 9 min | | CLIP Embeddings (ViT-B-32) | 0.093s | 1 min | | FAISS Index | <0.01s | <1s | | GraphBuilder | 0.7s total | <1 min | | **Total** | **1.2s/shot** | **~10 min** | ### Résolution visuelle - **Grounding qwen2.5vl** : fonctionne sur les fenêtres croppées (by_text OCR/VLM) - **Template matching** : fonctionne pour les icônes/taskbar (crop 80x80) - **gemma4 enrichissement** : lit le texte des éléments sans OCR (onglets, icônes) ### Vérifications - **CLIP** : vérifie la bonne application (sim > 0.75 sur fenêtre) - **Titre fenêtre** : vérifie l'état par nom d'app (polling 10s) - **Pré-vérification** : stoppe si mauvaise fenêtre AVANT de cliquer ### Acteur intelligent - **gemma4 think=True** : décide PASSER/EXECUTER/STOPPER (5s, 75% correct) - Branché dans l'executor quand target_not_found - Mode texte CPU (pas d'image, pas de VRAM) ### Infrastructure - Ollama 0.16.3 host (port 11434) : qwen2.5vl:7b GPU 9.4GB - Docker Ollama 0.20 (port 11435) : gemma4:e4b GPU 3.6GB - Jamais simultanés (auto-unload gemma4 après build) - VM Win11 (192.168.122.14) : SSH + agent Léa - Anti-bot : Bézier mouse + frappe char-by-char ## Problèmes identifiés (non résolus) ### P1 : Ambiguïté "Rechercher" (taskbar vs explorateur) Le crop 80x80 de la barre de recherche Windows ressemble à la barre de recherche de l'explorateur. Le template matching clique au mauvais endroit. L'acteur doit apprendre à distinguer les contextes. ### P2 : Éléments VLM (by_text_source="vlm") Le grounding qwen2.5vl ne trouve pas toujours les textes lus par gemma4 (ex: "voiture elec" — texte d'onglet). L'acteur prend le relais et décide PASSER quand l'état est déjà atteint. ### P3 : Premier chargement VLM lent Le premier appel à qwen2.5vl ou gemma4 après redémarrage prend 30-60s (chargement en VRAM). Les appels suivants sont rapides (0.2-5s). ## Architecture validée ``` ENREGISTREMENT (une fois) Agent capture → screenshots + events ↓ BUILD (une fois, ~15s) ScreenAnalyzer (OCR) → CLIP → FAISS → GraphBuilder gemma4 enrichit les éléments sans OCR → Workflow enrichi + actions avec embeddings CLIP REPLAY (à chaque exécution) Fast path : Titre fenêtre OK → grounding qwen2.5vl → clic → polling titre → OK Slow path (quand target_not_found) : Acteur gemma4 → PASSER / STOPPER / EXECUTER ``` ## Métriques de replay sur VM | Session | Résultat | Détail | |---------|----------|--------| | Notepad (dernier test) | 4/32 actions | Recherche + ouverture Bloc-notes OK, bloque sur onglet | | Grounding texte OCR | 100% | Rechercher, Ouvrir, Fichier, Enregistrer | | CLIP vérification | 100% | sim 0.87-0.99 | | Acteur gemma4 | Validé unitairement | PASSER correct pour onglet actif |