Local Browser - Automatisation Web IA sur Appareil
Une extension Chrome qui utilise WebLLM pour exécuter de l'automatisation Web alimentée par IA entièrement sur l'appareil. Pas d'API cloud, pas de clés API, entièrement privé.
Démo
https://github.com/user-attachments/assets/898cc5c2-db77-4067-96e6-233c5da2bae5
Fonctionnalités
- IA sur l'appareil : Utilise WebLLM avec accélération WebGPU pour l'inférence LLM locale
- Système multi-agent : Agents Planificateur + Navigateur pour l'exécution intelligente de tâches
- Automatisation du navigateur : Naviguer, cliquer, taper, extraire des données de pages Web
- Confidentialité d'abord : Toute l'IA s'exécute localement, aucune donnée ne quitte votre appareil
- Support hors ligne : Fonctionne hors ligne après le téléchargement initial du modèle
Démarrage rapide
Prérequis
- Chrome 124+ (requis pour WebGPU dans les service workers)
- Node.js 18+ et npm
- GPU avec prise en charge de WebGPU (la plupart des GPU modernes fonctionnent)
Installation
-
Cloner et installer les dépendances :
cd local-browser
npm install
-
Compiler l'extension :
-
Charger dans Chrome :
- Ouvrir
chrome://extensions
- Activer le "Mode développeur" (en haut à droite)
- Cliquer sur "Charger l'extension non empaquetée"
- Sélectionner le dossier
dist de ce projet
-
Premier lancement :
- Cliquer sur l'icône de l'extension dans votre barre d'outils
- Le premier lancement téléchargera le modèle IA (~1 Go)
- Il est mis en cache pour une utilisation ultérieure
Utilisation
- Naviguer vers n'importe quelle page Web
- Cliquer sur l'icône de l'extension Local Browser
- Saisir une tâche comme :
- "Rechercher 'WebGPU' sur Wikipédia et extraire le premier paragraphe"
- "Aller sur example.com et me dire ce qu'il y a"
- "Trouver la zone de recherche et chercher 'Actualités IA'"
- Regarder l'IA exécuter la tâche étape par étape
Développement
Mode développement
Ceci surveille les changements et reconstruit automatiquement.
Structure du projet
local-browser/
├── manifest.json # Chrome extension manifest (MV3)
├── src/
│ ├── background/ # Service worker
│ │ ├── index.ts # Entry point & message handling
│ │ ├── llm-engine.ts # WebLLM wrapper
│ │ └── agents/ # AI agent system
│ │ ├── base-agent.ts
│ │ ├── planner-agent.ts
│ │ ├── navigator-agent.ts
│ │ └── executor.ts
│ ├── content/ # Content scripts
│ │ ├── dom-observer.ts # Page state extraction
│ │ └── action-executor.ts
│ ├── popup/ # React popup UI
│ │ ├── App.tsx
│ │ └── components/
│ └── shared/ # Shared types & constants
└── dist/ # Build output
- L'utilisateur saisit une tâche dans l'interface de la popup
- L'Agent Planificateur analyse la tâche et crée une stratégie de haut niveau
- L'Agent Navigateur examine le DOM de la page actuelle et décide de la prochaine action
- Le script de contenu exécute l'action (clic, saisie, extraction, etc.)
- La boucle continue jusqu'à ce que la tâche soit terminée ou échoue
Système d'agents
L'extension utilise une architecture à deux agents inspirée de Nanobrowser :
- PlannerAgent : Planification stratégique, crée une approche étape par étape
- NavigatorAgent : Exécution tactique, choisit des actions spécifiques en fonction de l'état de la page
Les deux agents produisent du JSON structuré qui est analysé et exécuté.
Configuration du modèle
Modèle par défaut : Qwen2.5-1.5B-Instruct-q4f16_1-MLC (~1 Go)
Modèles alternatifs (configurés dans src/shared/constants.ts) :
Phi-3.5-mini-instruct-q4f16_1-MLC (~2 Go, meilleur raisonnement)
Llama-3.2-1B-Instruct-q4f16_1-MLC (~0,7 Go, plus petit)
Dépannage
WebGPU non pris en charge
- Mettre à jour Chrome vers la version 124 ou ultérieure
- Vérifier
chrome://gpu pour confirmer l'état de WebGPU
- Certains GPU peuvent ne pas prendre en charge WebGPU
Échec du chargement du modèle
- Assurez-vous d'avoir assez d'espace disque (~2 Go libres)
- Vérifiez la console du navigateur pour les erreurs
- Essayez d'effacer le stockage de l'extension et de recharger
Les actions ne s'exécutent pas
- Certaines pages bloquent les scripts de contenu (chrome://, pages d'extension)
- Essayez sur une page Web normale comme wikipedia.org
L'extension ne fonctionne pas après une mise à jour de Chrome
- Aller dans
chrome://extensions
- Cliquer sur le bouton de rechargement de l'extension
Limitations
- Portée POC : Ceci est une preuve de concept, pas un logiciel de production
- Pas de vision : Utilise une analyse DOM uniquement textuelle (pas de compréhension de captures d'écran)
- Onglet unique : Fonctionne uniquement avec l'onglet actuellement actif
- Actions de base : Prend en charge la navigation, le clic, la saisie, l'extraction, le défilement, l'attente
- Taille du modèle : Les modèles plus petits peuvent avoir du mal avec des tâches complexes
Pile technologique
- WebLLM : Inférence LLM sur l'appareil avec WebGPU
- React : Interface de la popup
- TypeScript : Développement typé
- Vite + CRXJS : Empaquetage d'extension Chrome
- Chrome Extension Manifest V3 : Architecture d'extension moderne
Crédits
Ce projet est inspiré par :
- Nanobrowser - Automatisation Web multi-agent (Licence MIT)
- WebLLM - Inférence LLM dans le navigateur (Licence Apache-2.0)
Licences des dépendances
| Paquet | Licence |
|---|
| @mlc-ai/web-llm | Apache-2.0 |
| React | MIT |
| Vite | MIT |
| @crxjs/vite-plugin | MIT |
| TypeScript |
Licence
Licence MIT - Voir le fichier LICENSE pour les détails.