6a. Web Intelligence : Navigation & Recherche Souveraine
Le module Web Intelligence permet à ECHO d'interagir avec le Web de manière humaine, via une instance Chromium pilotée, un retour visuel en temps réel (HUD), et d'effectuer des recherches sémantiques profondes sans traceur (tracker).
Architecture du Moteur (navigation_engine_tool.py)
Le moteur repose sur une séparation stricte entre le client ECHO et le browser-agent (container Docker isolé). Les communications se font via des requêtes HTTP internes.
Fonctions de Pilotage
| Fonction | Description Technique |
|---|---|
web_browse_navigate |
Charge une URL, génère une capture d'écran et renvoie la Map du DOM (éléments interactifs indexés). |
web_browse_interact |
Exécute des actions : click, type, scroll, hover, press. Supporte le ciblage par index numérique (recommandé) ou sélecteur CSS. |
get_web_object_url |
Résout les URLs absolues (src/href) à partir des index du DOM détectés. Essentiel pour extraire des images ou des liens profonds. |
web_browse_reset |
Réinitialisation matérielle (Hard Reset) de l'instance Playwright. Supprime cookies et sessions en cas de blocage. |
Mémoire Visuelle & Proof Protocol
À chaque interaction réussie, le moteur capture une frame (PNG) et la scelle dans le Vault. La fonction get_browser_frames_history permet au modèle de consulter les IDs des étapes passées pour reconstruire une chronologie visuelle.
Le Replay Visuel (web_navigation_replay_action.py)
Il s'agit d'une interface HUD avancée (Cockpit JS) injectée côté client, permettant à l'utilisateur de "rejouer" la navigation de l'IA.
Fonctionnalités du Replay HUD
- Chronologie Atomique : Navigation image par image avec lecture automatique (Play/Reverse).
- Outils Forensiques :
- 🔍 Loupe : Inspection de détails (coordonnées calculées sur le binaire).
- ⛶ Crop dynamique : Sélection d'une zone d'intérêt pour extraction.
- ❐ Copie Contextuelle : Export immédiat vers le presse-papier.
- Souveraineté des Données : Le Replay puise directement dans le Vault utilisateur (
/app/backend/echo_users/{uid}/files/).
Spécifications du DOM Map
ECHO ne lit pas le HTML brut par défaut. Il utilise une fonction de "Highlight" qui transforme le DOM complexe en une liste d'objets simplifiés :
{
"index": 42,
"tagName": "BUTTON",
"text": "Valider le Panier",
"coordinates": { "x": 120, "y": 450, "w": 80, "h": 30 }
}
Cette abstraction réduit drastiquement la consommation de tokens et améliore la précision du clic.
Recherche Web Souveraine (sovereign_web_search.py)
ECHO n'utilise pas de moteurs de recherche commerciaux traçants. Il s'appuie sur une instance locale de SearxNG et l'API DuckDuckGo.
| Outil | Moteur | Usage Optimal |
|---|---|---|
search_instant_answer |
DuckDuckGo | Faits, définitions, Wikipédia. Réponse ultra-rapide (millisecondes). |
search_deep_web |
SearxNG | Actualités, tutoriels, recherches multicritères. Agrège Google, Bing, Brave, etc., sans pistage. Supporte les filtres temporels (day, week, month, year). |
Sécurité & Anonymat
Toutes les requêtes web sortantes utilisent le ECHO_USER_AGENT personnalisé. SearxNG agit comme un proxy, empêchant les moteurs tiers d'identifier l'utilisateur final ou l'infrastructure ECHO.