docs: Ajouter analyse MOAT complète RPA Vision V3
Document de référence avec : - Évaluation des 3 moats (Techno 85%, Data 60%, Déploiement 50%) - Inventaire fonctionnel complet (179 fichiers core) - Points de friction identifiés - Actions requises court/moyen/long terme - Références techniques (ports, commandes, structure) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
348
ANALYSE_MOAT_RPA_VISION_V3.md
Normal file
348
ANALYSE_MOAT_RPA_VISION_V3.md
Normal file
@@ -0,0 +1,348 @@
|
|||||||
|
# Analyse MOAT - RPA Vision V3
|
||||||
|
|
||||||
|
**Date:** 18 janvier 2026
|
||||||
|
**Version:** 1.0
|
||||||
|
**Objectif:** Photographie complète du projet pour valider les avantages concurrentiels défendables
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Résumé Exécutif
|
||||||
|
|
||||||
|
| MOAT | Score | Statut |
|
||||||
|
|------|-------|--------|
|
||||||
|
| **Techno** (Hard to Copy) | 85% | Point fort |
|
||||||
|
| **Data/Apprentissage** (Hard to Catch Up) | 60% | Infrastructure OK, capitalisation à améliorer |
|
||||||
|
| **Déploiement Santé** (Hard to Enter) | 50% | Technique OK, docs compliance manquantes |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MOAT 1 : TECHNO (Hard to Copy)
|
||||||
|
|
||||||
|
### Capacités Implémentées
|
||||||
|
|
||||||
|
| Capacité | État | Détails |
|
||||||
|
|----------|------|---------|
|
||||||
|
| **Vision-native** | Implémenté | CLIP ViT-B-32 (512-dim) + OWL-v2 zero-shot + OpenCV + Qwen2.5-VL |
|
||||||
|
| **Matching hiérarchique** | Implémenté | 3 niveaux : fenêtre (20%) + région (30%) + élément (50%) |
|
||||||
|
| **Self-healing** | Implémenté | 4 stratégies actives |
|
||||||
|
| **Cascade fallbacks** | Implémenté | Circuit breaker + state machine 5 états |
|
||||||
|
| **Traces/Policies** | Implémenté | Audit JSONL rotatif, execution history, confidence scoring |
|
||||||
|
| **VDI/Citrix** | Conçu pour | Architecture vision-only compatible, tests à documenter |
|
||||||
|
|
||||||
|
### Self-Healing - 4 Stratégies
|
||||||
|
|
||||||
|
1. **Semantic Variants** - Variantes sémantiques des cibles
|
||||||
|
2. **Spatial Fallback** - Recherche éléments proches
|
||||||
|
3. **Timing Adaptation** - Ajustement des délais
|
||||||
|
4. **Format Transformation** - Transformation de formats
|
||||||
|
|
||||||
|
### Circuit Breaker - Seuils
|
||||||
|
|
||||||
|
| Condition | Action |
|
||||||
|
|-----------|--------|
|
||||||
|
| 3 échecs consécutifs | → DEGRADED |
|
||||||
|
| 10 échecs en 600s par workflow | → QUARANTINED |
|
||||||
|
| 30 échecs globaux en fenêtre | → GLOBAL_PAUSE |
|
||||||
|
| X succès consécutifs | → Reset |
|
||||||
|
|
||||||
|
### State Machine Exécution
|
||||||
|
|
||||||
|
```
|
||||||
|
RUNNING ↔ DEGRADED ↔ QUARANTINED
|
||||||
|
↕ ↕ ↕
|
||||||
|
PAUSED ROLLBACK (reset)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fichiers Clés
|
||||||
|
|
||||||
|
- `/core/execution/` - 12 fichiers (action_executor, target_resolver, error_handler, recovery_strategies)
|
||||||
|
- `/core/healing/` - 7 fichiers (healing_engine, learning_repository, 4 stratégies)
|
||||||
|
- `/core/matching/hierarchical_matcher.py` - Matching multi-niveau
|
||||||
|
- `/core/system/circuit_breaker.py` - Protection contre cascades d'erreurs
|
||||||
|
- `/core/system/auto_heal_manager.py` - Machine d'état
|
||||||
|
|
||||||
|
**Verdict : 85% validé** - La cascade fallbacks + healing + policies existe réellement.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MOAT 2 : DATA / APPRENTISSAGE (Hard to Catch Up)
|
||||||
|
|
||||||
|
### Capacités Implémentées
|
||||||
|
|
||||||
|
| Capacité | État | Détails |
|
||||||
|
|----------|------|---------|
|
||||||
|
| **Cas d'écran** | Complet | 4 niveaux de stockage |
|
||||||
|
| **Learning states** | Implémenté | 4 états de progression |
|
||||||
|
| **Drift detection** | Implémenté | Création variantes automatique |
|
||||||
|
| **Corrections utilisateur** | Partiel | Stockées mais pas packagées |
|
||||||
|
| **Templates/Packs** | Basique | Statiques uniquement |
|
||||||
|
| **Corpus** | À construire | Structure prête |
|
||||||
|
|
||||||
|
### Format des Cas d'Écran (4 niveaux)
|
||||||
|
|
||||||
|
**Niveau 1 : Raw Capture (RawSession)**
|
||||||
|
```
|
||||||
|
data/sessions/YYYY-MM-DD/session_*.json
|
||||||
|
- events[] avec timestamps
|
||||||
|
- screenshots[] avec paths
|
||||||
|
- window context
|
||||||
|
```
|
||||||
|
|
||||||
|
**Niveau 2 : Perception (ScreenState)**
|
||||||
|
```
|
||||||
|
data/screen_states/YYYY-MM-DD/state_*.json
|
||||||
|
- raw_level (screenshot, capture_method)
|
||||||
|
- perception_level (embedding, detected_text, confidence)
|
||||||
|
- context_level (workflow_candidate, business_variables)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Niveau 3 : Vector Index (FAISS)**
|
||||||
|
```
|
||||||
|
data/faiss_index/main.faiss + main_metadata.json
|
||||||
|
data/embeddings/YYYY-MM-DD/state_*.npy (512 dimensions)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Niveau 4 : Training Dataset**
|
||||||
|
```
|
||||||
|
training_data/session_*.json
|
||||||
|
- screenshots, actions, user_corrections, success
|
||||||
|
```
|
||||||
|
|
||||||
|
### États d'Apprentissage
|
||||||
|
|
||||||
|
```
|
||||||
|
OBSERVATION → COACHING → AUTO_CANDIDATE → AUTO_CONFIRMED
|
||||||
|
↑ |
|
||||||
|
+------ (régression détectée) -------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
- 5+ observations (conf > 0.90) → COACHING
|
||||||
|
- Drift detection : 3 matchs faibles → création variante
|
||||||
|
- Max 5 variantes par node
|
||||||
|
|
||||||
|
### Manques Identifiés
|
||||||
|
|
||||||
|
| Item | Impact |
|
||||||
|
|------|--------|
|
||||||
|
| Pas de "Correction Packs" | Corrections isolées par session |
|
||||||
|
| Pas d'héritage cross-workflow | Réapprentissage nécessaire |
|
||||||
|
| Pas d'export/import corrections | Difficile à partager |
|
||||||
|
|
||||||
|
### Fichiers Clés
|
||||||
|
|
||||||
|
- `/core/learning/` - 5 fichiers (learning_manager, continuous_learner, feedback_processor)
|
||||||
|
- `/core/training/` - 5 fichiers (offline_trainer, session_analyzer, training_data_collector)
|
||||||
|
- `/core/persistence/storage_manager.py` - Gestionnaire centralisé
|
||||||
|
- `/core/embedding/faiss_manager.py` - Index vectoriel
|
||||||
|
|
||||||
|
**Verdict : 60% validé** - Infrastructure OK, capitalisation cross-workflow manquante.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## MOAT 3 : DÉPLOIEMENT SANTÉ (Hard to Enter)
|
||||||
|
|
||||||
|
### Capacités Implémentées
|
||||||
|
|
||||||
|
| Capacité | État | Détails |
|
||||||
|
|----------|------|---------|
|
||||||
|
| **On-prem** | Ready | 100% local, pas de cloud obligatoire |
|
||||||
|
| **Sécurité** | Implémenté | IP allowlist, rate limiter, tokens, audit |
|
||||||
|
| **Traçabilité** | Implémenté | 8 types d'événements, rotation logs |
|
||||||
|
| **Encryption** | Implémenté | Sessions chiffrées |
|
||||||
|
| **Playbook DSI/RSSI** | À documenter | Pas de doc formelle |
|
||||||
|
| **Certifications** | À préparer | Pas de certifications |
|
||||||
|
|
||||||
|
### Sécurité - Détails
|
||||||
|
|
||||||
|
**Audit Log (8 types d'événements)**
|
||||||
|
- auth_success, auth_failure
|
||||||
|
- api_access
|
||||||
|
- rate_limit_exceeded
|
||||||
|
- security_violation
|
||||||
|
- permission_denied
|
||||||
|
- data_access
|
||||||
|
- admin_action
|
||||||
|
|
||||||
|
**Caractéristiques**
|
||||||
|
- Format JSONL pour parsing
|
||||||
|
- Hachage données sensibles optionnel
|
||||||
|
- Rotation auto (10MB max, 10 fichiers)
|
||||||
|
- Métadonnées : user_id, IP, endpoint, user_agent, token_hash
|
||||||
|
|
||||||
|
### Fichiers Clés
|
||||||
|
|
||||||
|
- `/core/security/audit_log.py` - Logging sécurisé
|
||||||
|
- `/core/security/api_tokens.py` - Gestion tokens
|
||||||
|
- `/core/security/ip_allowlist.py` - Whitelist IP
|
||||||
|
- `/core/security/rate_limiter.py` - Rate limiting
|
||||||
|
- `/server/storage_encrypted.py` - Encryption sessions
|
||||||
|
|
||||||
|
### Manques Identifiés
|
||||||
|
|
||||||
|
| Item | Priorité |
|
||||||
|
|------|----------|
|
||||||
|
| Documentation compliance santé | Haute |
|
||||||
|
| Playbook DSI/RSSI | Haute |
|
||||||
|
| Certifications (HDS, ISO 27001) | Moyenne |
|
||||||
|
| Tests VDI/Citrix documentés | Moyenne |
|
||||||
|
|
||||||
|
**Verdict : 50% validé** - Technique OK, documentation compliance à faire.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Inventaire Fonctionnel Complet
|
||||||
|
|
||||||
|
### Composants Opérationnels
|
||||||
|
|
||||||
|
| Composant | Port | État | Fichiers |
|
||||||
|
|-----------|------|------|----------|
|
||||||
|
| Visual Workflow Builder Frontend | 3000 | Opérationnel | React 19, React Flow v12 |
|
||||||
|
| Visual Workflow Builder Backend | 5000 | Opérationnel | Flask, 24+ actions |
|
||||||
|
| Agent Chat (LLM) | 5002 | Opérationnel | Intent parsing + Ollama |
|
||||||
|
| Web Dashboard | 5004 | Opérationnel | Monitoring temps réel |
|
||||||
|
| Core Execution | - | Opérationnel | ActionExecutor, TargetResolver |
|
||||||
|
| Self-Healing Engine | - | Opérationnel | 4 stratégies |
|
||||||
|
| Analytics System | - | Opérationnel | SQLite + reporting |
|
||||||
|
|
||||||
|
### Catalogue d'Actions VWB (24+)
|
||||||
|
|
||||||
|
**vision_ui/** (14 actions)
|
||||||
|
- click_anchor, type_text, type_secret
|
||||||
|
- screenshot_evidence, wait_for_anchor
|
||||||
|
- scroll_to_anchor, focus_anchor, hotkey
|
||||||
|
- double_clic, clic_droit, glisser_deposer
|
||||||
|
- survol_element, extract_text
|
||||||
|
|
||||||
|
**navigation/** (2)
|
||||||
|
- navigate_to_url, browser_back
|
||||||
|
|
||||||
|
**data/** (2)
|
||||||
|
- telecharger_vers_dossier, extraire_tableau
|
||||||
|
|
||||||
|
**database/** (3)
|
||||||
|
- sauvegarder_donnees, charger_donnees, gestionnaire_db
|
||||||
|
|
||||||
|
**validation/** (2)
|
||||||
|
- verify_element_exists, verify_text_content
|
||||||
|
|
||||||
|
**intelligence/** (1)
|
||||||
|
- analyser_avec_ia
|
||||||
|
|
||||||
|
### Points de Friction Connus
|
||||||
|
|
||||||
|
| Item | Problème | Impact |
|
||||||
|
|------|----------|--------|
|
||||||
|
| FAISS dimension arg | Incompatibilité version | Apprentissage embeddings |
|
||||||
|
| Agent Chat exécution | Mode optionnel | Fallback simulation |
|
||||||
|
| Cross-workflow learning | Corrections isolées | Capitalisation limitée |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Architecture Core (179 fichiers Python)
|
||||||
|
|
||||||
|
```
|
||||||
|
/core/
|
||||||
|
├── execution/ (12) - Exécution et robustesse
|
||||||
|
├── healing/ (7) - Self-healing et recovery
|
||||||
|
├── learning/ (5) - Apprentissage continu
|
||||||
|
├── training/ (5) - Entraînement offline
|
||||||
|
├── security/ (7) - Audit, tokens, validation
|
||||||
|
├── detection/ (5) - UI hybride OWL+OpenCV+VLM
|
||||||
|
├── embedding/ (8) - CLIP, FAISS, fusion
|
||||||
|
├── visual/ (8) - Gestion cibles visuelles
|
||||||
|
├── matching/ (2) - Matching hiérarchique
|
||||||
|
├── analytics/ (11) - Collection, engine, reporting
|
||||||
|
├── system/ (8) - Circuit breaker, auto-heal
|
||||||
|
├── monitoring/ (8) - Métriques, scheduling
|
||||||
|
├── persistence/ (1) - StorageManager centralisé
|
||||||
|
├── models/ (8) - Structures de données
|
||||||
|
└── evaluation/ (3) - Replay, simulation
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Actions Requises
|
||||||
|
|
||||||
|
### Court Terme (Semaines)
|
||||||
|
|
||||||
|
| Action | Priorité | Effort |
|
||||||
|
|--------|----------|--------|
|
||||||
|
| Documenter playbook DSI/RSSI | Haute | Faible |
|
||||||
|
| Corriger FAISS dimension error | Haute | Faible |
|
||||||
|
| Tester et documenter VDI/Citrix | Moyenne | Moyen |
|
||||||
|
|
||||||
|
### Moyen Terme (Mois)
|
||||||
|
|
||||||
|
| Action | Priorité | Effort |
|
||||||
|
|--------|----------|--------|
|
||||||
|
| Système de Correction Packs | Haute | Moyen |
|
||||||
|
| Export/Import corrections cross-workflows | Haute | Moyen |
|
||||||
|
| Documentation compliance santé | Haute | Moyen |
|
||||||
|
|
||||||
|
### Long Terme
|
||||||
|
|
||||||
|
| Action | Priorité | Effort |
|
||||||
|
|--------|----------|--------|
|
||||||
|
| Certifications santé (HDS, ISO 27001) | Variable | Élevé |
|
||||||
|
| Accumulation corpus production | Continue | - |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
**RPA Vision V3 est un moat technique solide** avec :
|
||||||
|
|
||||||
|
- Architecture vision-native défendable
|
||||||
|
- Self-healing réel avec 4 stratégies
|
||||||
|
- Infrastructure d'apprentissage complète
|
||||||
|
- Sécurité et traçabilité opérationnelles
|
||||||
|
|
||||||
|
**Pour un moat complet :**
|
||||||
|
|
||||||
|
1. Capitaliser les corrections cross-workflows (Correction Packs)
|
||||||
|
2. Documenter compliance santé (playbook DSI/RSSI)
|
||||||
|
3. Alimenter le corpus en production (vraie douve long terme)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Références Techniques
|
||||||
|
|
||||||
|
### Ports par défaut
|
||||||
|
|
||||||
|
| Service | Port |
|
||||||
|
|---------|------|
|
||||||
|
| VWB Backend | 5000 |
|
||||||
|
| VWB Frontend | 3000 |
|
||||||
|
| Web Dashboard | 5004 |
|
||||||
|
| Agent Chat | 5002 |
|
||||||
|
| API Upload | 8000 |
|
||||||
|
| Ollama | 11434 |
|
||||||
|
|
||||||
|
### Commandes de démarrage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Dashboard (avec service systemd)
|
||||||
|
sudo systemctl start rpa-dashboard
|
||||||
|
# → http://localhost:5004
|
||||||
|
|
||||||
|
# Agent Chat
|
||||||
|
./venv_v3/bin/python -m agent_chat.app
|
||||||
|
# → http://localhost:5002
|
||||||
|
|
||||||
|
# VWB
|
||||||
|
cd visual_workflow_builder/backend && ./start.sh
|
||||||
|
cd visual_workflow_builder/frontend && npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### Structure données
|
||||||
|
|
||||||
|
```
|
||||||
|
data/
|
||||||
|
├── sessions/YYYY-MM-DD/ # RawSession JSON
|
||||||
|
├── screen_states/YYYY-MM-DD/ # ScreenState JSON
|
||||||
|
├── embeddings/YYYY-MM-DD/ # NPY + métadonnées
|
||||||
|
├── faiss_index/ # Index vectoriel
|
||||||
|
├── workflows/ # Workflows JSON
|
||||||
|
├── templates/ # Templates statiques
|
||||||
|
└── analytics/ # Métriques SQLite
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user