Validé sur PC Windows (DESKTOP-58D5CAC, 2560x1600) : - 8 clics résolus visuellement (1 anchor_template, 1 som_text_match, 6 som_vlm) - Score moyen 0.75, temps moyen 1.6s - Texte tapé correctement (bonjour, test word, date, email) - 0 retries, 2 actions non vérifiées (OK) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
13 KiB
13 KiB
Document de Conception - Améliorations Agent V0
Vue d'Ensemble de l'Architecture
Cette conception détaille les améliorations à apporter à l'Agent V0 pour résoudre les 5 problèmes identifiés : nommage des workflows, capture d'événements incomplète, captures d'écran limitées, visibilité du traitement, et découvrabilité des workflows.
Architecture Actuelle vs Proposée
Architecture Actuelle
Agent V0
├── Capture basique (clics, scroll, hover)
├── Screenshots plein écran uniquement
├── Nommage générique des sessions
├── Upload simple vers serveur
└── Aucun feedback de traitement
Architecture Proposée
Agent V0 Amélioré
├── Capture enrichie (clavier + contexte)
├── Screenshots intelligents (ciblés + plein écran)
├── Nommage intelligent basé sur l'analyse UI
├── Monitoring pipeline en temps réel
├── Interface de découverte des workflows
└── Intégration Visual Workflow Builder
Composants de Conception
1. Système de Nommage Intelligent
1.1 Analyseur d'Actions
class ActionAnalyzer:
"""Analyse les actions capturées pour générer des noms descriptifs"""
def analyze_session(self, raw_session: RawSession) -> SessionAnalysis:
"""Analyse une session pour extraire les patterns d'actions"""
def extract_ui_elements(self, events: List[Event]) -> List[UIElement]:
"""Extrait les éléments UI interagis"""
def detect_workflow_type(self, analysis: SessionAnalysis) -> WorkflowType:
"""Détecte le type de workflow (formulaire, navigation, etc.)"""
1.2 Générateur de Noms
class WorkflowNameGenerator:
"""Génère des noms descriptifs pour les workflows"""
def generate_name(self, analysis: SessionAnalysis) -> str:
"""Génère un nom basé sur l'analyse de session"""
def suggest_alternatives(self, base_name: str) -> List[str]:
"""Propose des noms alternatifs"""
def ensure_uniqueness(self, name: str, existing_names: List[str]) -> str:
"""Assure l'unicité du nom généré"""
1.3 Patterns de Nommage
- Formulaires: "Saisie_[NomFormulaire]_[Date]"
- Navigation: "Navigation_[Application]vers[Section]"
- Recherche: "Recherche_[Terme]dans[Application]"
- Édition: "Modification_[TypeDocument]_[Action]"
- Générique: "Workflow_[Application]_[Timestamp]"
2. Capture d'Événements Étendue
2.1 Capteur de Clavier Enrichi
class EnhancedKeyCaptor:
"""Capture enrichie des événements clavier"""
def capture_text_input(self, text: str, target_element: UIElement):
"""Capture la saisie de texte avec son contexte"""
def capture_keyboard_shortcut(self, keys: List[str], context: AppContext):
"""Capture les raccourcis clavier avec leur signification"""
def capture_special_keys(self, key: str, target_element: UIElement):
"""Capture les touches spéciales (Tab, Enter, etc.)"""
2.2 Détecteur de Contexte UI
class UIContextDetector:
"""Détecte le contexte des éléments UI lors des interactions"""
def get_element_context(self, position: Tuple[int, int]) -> UIElement:
"""Identifie l'élément UI à une position donnée"""
def detect_element_type(self, element: UIElement) -> ElementType:
"""Détermine le type d'élément (input, button, etc.)"""
def extract_element_properties(self, element: UIElement) -> Dict:
"""Extrait les propriétés de l'élément (texte, attributs, etc.)"""
3. Système de Captures Intelligentes
3.1 Gestionnaire de Captures Ciblées
class SmartScreenCapturer:
"""Système de capture d'écran intelligent"""
def capture_targeted_area(self, center: Tuple[int, int], context_size: int):
"""Capture une zone ciblée autour d'un point"""
def capture_element_context(self, element: UIElement):
"""Capture le contexte visuel d'un élément UI"""
def optimize_capture_quality(self, image: Image, importance: float):
"""Optimise la qualité selon l'importance de la capture"""
3.2 Stratégies de Capture
- Capture Ciblée: Zone de 400x400px autour de l'interaction
- Capture Contextuelle: Zone étendue incluant les éléments voisins
- Capture Plein Écran: Maintenue pour le contexte global
- Capture Adaptative: Taille ajustée selon le type d'élément
4. Monitoring du Pipeline de Traitement
4.1 Client de Monitoring
class PipelineMonitor:
"""Monitore le traitement des sessions sur le serveur"""
def track_session_processing(self, session_id: str) -> ProcessingStatus:
"""Suit le traitement d'une session"""
def get_processing_progress(self, session_id: str) -> ProgressInfo:
"""Obtient le progrès de traitement"""
def subscribe_to_updates(self, session_id: str, callback: Callable):
"""S'abonne aux mises à jour de traitement"""
4.2 Interface de Statut
class StatusDisplay:
"""Affiche le statut de traitement dans l'interface"""
def show_processing_status(self, status: ProcessingStatus):
"""Affiche le statut actuel"""
def update_progress_bar(self, progress: float):
"""Met à jour la barre de progression"""
def show_completion_notification(self, workflow_info: WorkflowInfo):
"""Notifie la completion du traitement"""
5. Interface de Découverte des Workflows
5.1 Navigateur de Workflows
class WorkflowBrowser:
"""Interface de navigation et recherche des workflows"""
def list_workflows(self, filters: WorkflowFilters) -> List[WorkflowInfo]:
"""Liste les workflows avec filtres"""
def search_workflows(self, query: str) -> List[WorkflowInfo]:
"""Recherche dans les workflows"""
def get_workflow_preview(self, workflow_id: str) -> WorkflowPreview:
"""Obtient un aperçu du workflow"""
5.2 Système de Filtres
- Par Date: Aujourd'hui, Cette semaine, Ce mois, Personnalisé
- Par Type: Formulaire, Navigation, Recherche, Édition, Autre
- Par Application: Groupement par application cible
- Par Statut: Brouillon, Prêt, En cours d'utilisation, Archivé
6. Intégration Visual Workflow Builder
6.1 Connecteur VWB
class VWBConnector:
"""Connecteur vers le Visual Workflow Builder"""
def open_workflow_in_builder(self, workflow_id: str):
"""Ouvre un workflow dans le builder"""
def sync_workflow_changes(self, workflow_id: str, changes: Dict):
"""Synchronise les modifications"""
def test_workflow_from_agent(self, workflow_id: str) -> TestResult:
"""Lance un test du workflow depuis l'agent"""
Flux de Données
1. Flux de Capture Amélioré
Interaction Utilisateur
↓
Capture Enrichie (position + contexte + métadonnées)
↓
Analyse UI en Temps Réel
↓
Capture Ciblée + Plein Écran
↓
Enrichissement Métadonnées
↓
Génération Nom Intelligent
↓
Packaging Session + Upload
2. Flux de Monitoring
Upload Session
↓
Serveur Démarre Traitement
↓
Agent Surveille Progression
↓
Mises à Jour Temps Réel
↓
Notification Completion
↓
Workflow Disponible
Interfaces Utilisateur
1. Interface Principale Améliorée
┌─────────────────────────────────────────┐
│ Agent V0 - Capture Intelligente │
├─────────────────────────────────────────┤
│ ● Enregistrement: [ACTIF] │
│ 📝 Nom: "Saisie_Commande_Client" │
│ 🎯 Actions: 12 | ⌨️ Saisies: 5 │
│ 📸 Captures: 8 (6 ciblées, 2 globales) │
├─────────────────────────────────────────┤
│ [Arrêter] [Pause] [Paramètres] │
│ [Mes Workflows] [Aide] │
└─────────────────────────────────────────┘
2. Interface de Découverte
┌─────────────────────────────────────────┐
│ Mes Workflows │
├─────────────────────────────────────────┤
│ 🔍 [Rechercher...] 📅 [Filtres] │
├─────────────────────────────────────────┤
│ 📋 Saisie_Commande_Client │
│ Créé: 22/12/2025 | Utilisé: 3 fois │
│ [Ouvrir] [Éditer] [Dupliquer] │
├─────────────────────────────────────────┤
│ 🌐 Navigation_CRM_Contacts │
│ Créé: 21/12/2025 | Utilisé: 1 fois │
│ [Ouvrir] [Éditer] [Dupliquer] │
└─────────────────────────────────────────┘
3. Monitoring de Traitement
┌─────────────────────────────────────────┐
│ Traitement en Cours │
├─────────────────────────────────────────┤
│ Session: Saisie_Commande_Client │
│ ████████████░░░░ 75% │
│ │
│ ✅ Analyse des captures │
│ ✅ Détection des éléments UI │
│ 🔄 Génération du workflow │
│ ⏳ Optimisation des actions │
│ │
│ Temps estimé: 30 secondes │
└─────────────────────────────────────────┘
Modèles de Données
1. Session Enrichie
@dataclass
class EnhancedRawSession(RawSession):
"""Session avec métadonnées enrichies"""
workflow_name: str
workflow_type: WorkflowType
ui_elements_detected: List[UIElement]
text_inputs: List[TextInput]
keyboard_shortcuts: List[KeyboardShortcut]
targeted_captures: List[TargetedCapture]
quality_score: float
processing_hints: Dict[str, Any]
2. Élément UI Enrichi
@dataclass
class EnhancedUIElement:
"""Élément UI avec contexte enrichi"""
position: Tuple[int, int]
size: Tuple[int, int]
element_type: ElementType
text_content: Optional[str]
attributes: Dict[str, str]
parent_context: Optional['EnhancedUIElement']
interaction_type: InteractionType
confidence_score: float
3. Capture Ciblée
@dataclass
class TargetedCapture:
"""Capture d'écran ciblée avec métadonnées"""
capture_id: str
center_position: Tuple[int, int]
capture_size: Tuple[int, int]
target_element: EnhancedUIElement
context_elements: List[EnhancedUIElement]
capture_reason: CaptureReason
quality_level: QualityLevel
file_path: str
Stratégies d'Implémentation
Phase 1: Nommage Intelligent
- Implémenter l'analyseur d'actions
- Créer le générateur de noms
- Intégrer dans l'interface de capture
- Tests avec différents types de workflows
Phase 2: Capture Enrichie
- Étendre le capteur de clavier
- Implémenter la détection de contexte UI
- Intégrer les captures ciblées
- Optimiser les performances
Phase 3: Monitoring et Découverte
- Créer le client de monitoring
- Implémenter l'interface de statut
- Développer le navigateur de workflows
- Intégrer les filtres et recherche
Phase 4: Intégration VWB
- Développer le connecteur VWB
- Implémenter la synchronisation
- Créer l'interface d'édition
- Tests d'intégration complets
Considérations Techniques
Performance
- Captures ciblées en arrière-plan pour éviter les ralentissements
- Cache des analyses UI pour éviter les recalculs
- Compression intelligente des captures selon leur importance
Sécurité
- Chiffrement maintenu pour toutes les nouvelles données
- Anonymisation optionnelle des captures sensibles
- Validation des métadonnées avant stockage
Compatibilité
- Support des 3 plateformes (Linux, macOS, Windows)
- Rétrocompatibilité avec les sessions existantes
- Migration progressive des fonctionnalités
Métriques de Succès
Métriques Quantitatives
- Temps de génération de nom < 2 secondes
- Taux de captures ciblées réussies > 95%
- Temps de découverte de workflow < 10 secondes
- Réduction de 50% des sessions incomplètes
Métriques Qualitatives
- Satisfaction utilisateur > 4.5/5
- Adoption des nouvelles fonctionnalités > 80%
- Réduction des demandes de support
- Amélioration de la qualité des workflows générés