# 🎯 RĂ©sumĂ© : Correction de la DĂ©tection de Workflows **Date** : 18 novembre 2025 **Objectif** : Corriger les bugs empĂȘchant la dĂ©tection et la sauvegarde des workflows dans GeniusIA v2 --- ## 🐛 ProblĂšmes IdentifiĂ©s ### 1. Bug VisionAnalysis - AttributeError **SymptĂŽme** : Erreur `'VisionAnalysis' object has no attribute 'llm_manager'` Ă  chaque action **Cause** : IncohĂ©rence entre le nom de l'attribut (`self.llm`) et son utilisation (`self.llm_manager`) **Impact** : Aucune analyse visuelle des actions n'Ă©tait possible ### 2. SessionManager Non IntĂ©grĂ© **SymptĂŽme** : Aucune session créée malgrĂ© la capture d'Ă©vĂ©nements **Cause** : EventCapture capturait les Ă©vĂ©nements mais ne les passait pas au SessionManager **Impact** : Pas de segmentation des actions en sessions ### 3. WorkflowDetector Non IntĂ©grĂ© **SymptĂŽme** : Aucun workflow dĂ©tectĂ© mĂȘme aprĂšs rĂ©pĂ©titions **Cause** : WorkflowDetector n'Ă©tait pas connectĂ© Ă  l'Orchestrator **Impact** : Pas d'analyse de patterns rĂ©pĂ©titifs ### 4. Absence de Persistence **SymptĂŽme** : Workflows perdus au redĂ©marrage **Cause** : Aucun mĂ©canisme de sauvegarde sur disque **Impact** : Impossible de rĂ©utiliser les workflows appris ### 5. DĂ©tection de FenĂȘtre DĂ©faillante **SymptĂŽme** : Toutes les actions attribuĂ©es Ă  "RPA Vision V2" **Cause** : `xdotool` non installĂ©, fallback `xprop` insuffisant **Impact** : Workflows mĂ©langĂ©s entre diffĂ©rentes applications --- ## ✅ Solutions ImplĂ©mentĂ©es ### 1. Correction VisionAnalysis **Fichier** : `geniusia2/core/vision_analysis.py` **Changements** : - CorrigĂ© `self.llm_manager` → `self.llm` (lignes 75, 86) - AjoutĂ© gestion d'erreur robuste avec try/except imbriquĂ©s - Garantie qu'une signature valide est toujours retournĂ©e **RĂ©sultat** : ✅ Analyse visuelle fonctionnelle sans erreurs ### 2. IntĂ©gration SessionManager **Fichiers** : - `geniusia2/core/orchestrator.py` - `geniusia2/core/event_capture.py` - `geniusia2/core/session_manager.py` **Changements** : - SessionManager créé dans Orchestrator et partagĂ© avec EventCapture - EventCapture appelle `session_manager.add_action()` pour chaque Ă©vĂ©nement - Callback `_on_session_completed()` ajoutĂ© dans Orchestrator - Suppression du double logging (SessionManager ne log plus) **RĂ©sultat** : ✅ Sessions créées automatiquement avec timeout de 5 minutes ### 3. IntĂ©gration WorkflowDetector **Fichiers** : - `geniusia2/core/orchestrator.py` - `geniusia2/core/workflow_detector.py` **Changements** : - WorkflowDetector créé dans Orchestrator - Ajout de la mĂ©thode `analyze_session()` pour analyse incrĂ©mentale - Callback `_on_workflow_detected()` connectĂ© au SuggestionManager - Groupement des sessions par fenĂȘtre avant comparaison - Filtre des workflows trop courts (< 3 actions) **RĂ©sultat** : ✅ Workflows dĂ©tectĂ©s aprĂšs 3+ rĂ©pĂ©titions similaires ### 4. Persistence des Workflows **Fichier** : `geniusia2/core/workflow_detector.py` **Changements** : - Ajout de `_save_workflow()` : sauvegarde en JSON - Ajout de `_load_workflows()` : chargement au dĂ©marrage - Ajout de `update_workflow_confidence()` : mise Ă  jour aprĂšs exĂ©cution - RĂ©pertoire : `data/user_profiles/workflows/` **Format JSON** : ```json { "workflow_id": "workflow_20251118_184244", "name": "Mouse_click → Mouse_click", "repetitions": 10, "confidence": 1.0, "created_at": "2025-11-18T18:42:44", "last_seen": "2025-11-18T18:43:21", "steps": [ { "step_id": 0, "action_type": "mouse_click", "target_description": "", "position": [44, 1055], "window": "Calculatrice" } ] } ``` **RĂ©sultat** : ✅ Workflows persistĂ©s et rechargĂ©s automatiquement ### 5. AmĂ©lioration DĂ©tection de FenĂȘtre **Fichier** : `geniusia2/core/utils/image_utils.py` **Changements** : - Installation de `xdotool` pour dĂ©tection fiable sur Linux - Fallback vers `xprop` si `xdotool` indisponible - Gestion des erreurs et timeouts **RĂ©sultat** : ✅ Noms de fenĂȘtres correctement dĂ©tectĂ©s --- ## đŸ› ïž Outils Créés ### 1. Script de Monitoring **Fichier** : `monitor_workflows.sh` **FonctionnalitĂ©** : Affiche en temps rĂ©el les sessions et workflows dĂ©tectĂ©s **Usage** : ```bash ./monitor_workflows.sh ``` ### 2. Script de VĂ©rification **Fichier** : `check_workflows.sh` **FonctionnalitĂ©** : Liste tous les workflows sauvegardĂ©s avec dĂ©tails **Usage** : ```bash ./check_workflows.sh ``` ### 3. Test de DĂ©tection de FenĂȘtre **Fichier** : `test_window_detection.py` **FonctionnalitĂ©** : Teste `get_active_window()` en temps rĂ©el **Usage** : ```bash python3 test_window_detection.py ``` ### 4. Test d'IntĂ©gration **Fichier** : `test_workflow_fix.py` **FonctionnalitĂ©** : VĂ©rifie que tous les composants sont correctement intĂ©grĂ©s **Usage** : ```bash python3 test_workflow_fix.py ``` --- ## 📊 MĂ©triques de Performance ### Avant les Corrections - ❌ 0 workflows dĂ©tectĂ©s - ❌ 0 sessions créées - ❌ 100% d'erreurs `llm_manager` - ❌ Aucune persistence ### AprĂšs les Corrections - ✅ Workflows dĂ©tectĂ©s aprĂšs 3+ rĂ©pĂ©titions - ✅ Sessions créées automatiquement - ✅ 0 erreur d'attribut - ✅ Persistence fonctionnelle - ✅ DĂ©tection de fenĂȘtre fiable avec `xdotool` --- ## đŸ§Ș Tests EffectuĂ©s ### Test 1 : VisionAnalysis - ✅ Pas d'AttributeError - ✅ Signatures créées avec embeddings - ✅ Gestion d'erreur robuste ### Test 2 : SessionManager - ✅ Sessions créées automatiquement - ✅ Timeout de 5 minutes respectĂ© - ✅ Groupement par fenĂȘtre ### Test 3 : WorkflowDetector - ✅ DĂ©tection aprĂšs 3 rĂ©pĂ©titions - ✅ Filtrage des workflows courts - ✅ Groupement par fenĂȘtre ### Test 4 : Persistence - ✅ Sauvegarde en JSON - ✅ Chargement au dĂ©marrage - ✅ Mise Ă  jour de confiance --- ## 📝 Configuration ### ParamĂštres de Workflow ```python { "workflow": { "min_repetitions": 3, # Nombre de rĂ©pĂ©titions minimum "similarity_threshold": 0.75, # Seuil de similaritĂ© (75%) "min_workflow_length": 3, # Longueur minimale (3 actions) "session_timeout": 300 # Timeout de session (5 minutes) } } ``` ### DĂ©pendances SystĂšme ```bash # Linux sudo apt install xdotool # VĂ©rification xdotool getactivewindow getwindowname ``` --- ## 🚀 Utilisation ### Mode Shadow (Apprentissage) ```bash cd geniusia2 ./run.sh --mode shadow ``` ### Monitoring en Temps RĂ©el ```bash # Terminal 1 : GeniusIA cd geniusia2 ./run.sh --mode shadow # Terminal 2 : Monitoring ./monitor_workflows.sh ``` ### VĂ©rification des Workflows ```bash ./check_workflows.sh ``` --- ## 🔼 AmĂ©liorations Futures ### 1. DĂ©tection 100% Vision **Objectif** : Ne plus dĂ©pendre des noms de fenĂȘtres **Approche** : - Comparer les embeddings des screenshots au lieu des noms - Grouper les sessions par similaritĂ© visuelle - Identifier automatiquement le contexte visuel ### 2. Suggestions Proactives **Objectif** : SuggĂ©rer des workflows avant que l'utilisateur ne les rĂ©pĂšte **Approche** : - Analyser le contexte visuel actuel - Comparer avec les workflows connus - SuggĂ©rer le workflow le plus probable ### 3. Apprentissage IncrĂ©mental **Objectif** : AmĂ©liorer les workflows au fil du temps **Approche** : - Mettre Ă  jour la confiance aprĂšs chaque exĂ©cution - Fusionner les workflows similaires - Supprimer les workflows obsolĂštes --- ## 📚 Documentation Créée 1. **Spec ComplĂšte** : `.kiro/specs/workflow-detection-fix/` - `requirements.md` : Exigences dĂ©taillĂ©es - `design.md` : Architecture et propriĂ©tĂ©s de correction - `tasks.md` : Plan d'implĂ©mentation 2. **Scripts de Test** : - `test_workflow_fix.py` - `test_window_detection.py` - `monitor_workflows.sh` - `check_workflows.sh` 3. **Ce Document** : RĂ©sumĂ© complet de la correction --- ## ✹ Conclusion **Statut** : ✅ Tous les bugs critiques corrigĂ©s **FonctionnalitĂ©s OpĂ©rationnelles** : - ✅ Capture d'Ă©vĂ©nements - ✅ Segmentation en sessions - ✅ DĂ©tection de workflows - ✅ Persistence sur disque - ✅ DĂ©tection de fenĂȘtres **Prochaine Étape** : Tester en conditions rĂ©elles avec diffĂ©rentes applications (Calculatrice, Firefox, OnlyOffice, etc.) --- **Auteur** : Kiro AI Assistant **Date** : 18 novembre 2025 **Version** : GeniusIA v2.0