RPA Vision Agent (Rust) — Phases 1-5
Agent complet pour RPA Vision V3, ecrit en Rust.
Parite fonctionnelle avec l'agent Python (agent_v0/agent_v1/) en un seul executable de 2.4 Mo.
Fonctionnalites
Phase 1 — Agent minimal (headless)
- Heartbeat : capture ecran toutes les 5s, JPEG, dedup par hash perceptuel
- Replay : poll serveur, execute actions (click, type, key_combo, scroll, wait)
- Resolution visuelle : resolution de cibles via le serveur (template matching)
- Serveur de capture : port 5006 (GET /capture, GET /health, POST /file-action)
Phase 3 — Systray + Notifications
- Systray : icone avec cercle colore (gris=idle, rouge=enregistrement, vert=connecte, bleu=replay)
- Menu contextuel : Machine ID, statut, Apprenez-moi, C'est termine, Mes taches, ARRET D'URGENCE, Chat, Fichiers, Quitter
- Notifications toast : via winrt-notification (bienvenue, session, replay, connexion)
- Etat partage : thread-safe via AtomicBool + Mutex
Phase 4 — Chat WebView2
- WebView2 : fenetre 520x720, charge http://{server}:5004/chat
- Positionnement : bas-droite pres du systray
- Fallback : HTML embarque si le serveur est indisponible
- Toggle : show/hide via menu systray
Phase 5 — Parite complete
- Enregistrement : capture evenements souris/clavier via rdev, envoi au serveur
- Floutage : detection de champs de saisie + blur gaussien (protection donnees sensibles)
- Configuration : BLUR_SENSITIVE, LOG_RETENTION_DAYS, CHAT_PORT
- Health check : verification connexion serveur toutes les 30s
Build
Linux (pour tests)
Cross-compilation vers Windows
Deploiement sur le PC cible
Configuration
| Variable |
Defaut |
Description |
RPA_SERVER_URL |
http://localhost:5005/api/v1 |
URL du serveur streaming |
RPA_MACHINE_ID |
{hostname}_{os} |
Identifiant de la machine |
RPA_CAPTURE_PORT |
5006 |
Port du serveur de capture |
RPA_HEARTBEAT_INTERVAL |
5 |
Intervalle heartbeat (secondes) |
RPA_JPEG_QUALITY |
85 |
Qualite JPEG (1-100) |
RPA_BLUR_SENSITIVE |
true |
Flouter les zones sensibles |
RPA_LOG_RETENTION_DAYS |
180 |
Retention des logs (jours) |
RPA_CHAT_PORT |
5004 |
Port du serveur de chat |
Architecture
Taille du binaire
| Configuration |
Taille |
| Release (LTO + strip + opt-level z) |
2.4 Mo |
| Python equivalent (venv + packages) |
~200 Mo |
Compatibilite
- OS : Windows 10/11 (systray, notifications, chat WebView2)
- Fallback Linux : mode console (heartbeat, replay, serveur)
- Serveur : compatible api_stream.py (port 5005)