23 KiB
AgenticSeek : Alternative privée et locale à Manus.
[English](./README.md) | [äžæ](./README_CHS.md) | [çčé«äžæ](./README_CHT.md) | Français | [æ„æŹèȘ](./README_JP.md) | [PortuguĂȘs (Brasil)](./README_PTBR.md)
Une alternative 100% locale à Manus AI, cet assistant vocal autonome navigue sur le web, écrit du code et planifie des tùches tout en gardant toutes les données sur votre appareil. Conçu pour les modÚles de raisonnement locaux, il fonctionne entiÚrement sur votre matériel, garantissant une confidentialité totale et aucune dépendance au cloud.
Pourquoi AgenticSeek ?
-
đ 100% Local & PrivĂ© â Tout fonctionne sur votre machine : pas de cloud, pas de partage de donnĂ©es. Vos fichiers, conversations et recherches restent privĂ©s.
-
đ Navigation Web Intelligente â AgenticSeek peut naviguer sur Internet de façon autonome : recherche, lecture, extraction dâinformations, remplissage de formulaires web â tout cela sans intervention.
-
đ» Assistant de Codage Autonome â Besoin de code ? Il peut Ă©crire, dĂ©boguer et exĂ©cuter des programmes en Python, C, Go, Java, et plus â sans supervision.
-
đ§ SĂ©lection Intelligente dâAgent â Vous demandez, il choisit automatiquement le meilleur agent pour la tĂąche. Comme une Ă©quipe dâexperts Ă disposition.
-
đ Planifie & ExĂ©cute des TĂąches Complexes â De la planification de voyage Ă la gestion de projets complexes : il divise les grandes tĂąches en Ă©tapes et les rĂ©alise avec plusieurs agents IA.
-
đïž ContrĂŽle Vocal â Voix et reconnaissance vocale rapides et futuristes, permettant de dialoguer comme avec une IA de film de science-fiction. (En dĂ©veloppement)
Démo
Peux-tu rechercher le projet agenticSeek, découvrir les compétences requises, puis ouvrir le fichier CV_candidates.zip et me dire lesquels correspondent le mieux au projet ?
https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
Avertissement : Cette démo, y compris tous les fichiers affichés (ex : CV_candidates.zip), est entiÚrement fictive. Nous ne sommes pas une entreprise, nous recherchons des contributeurs open-source, pas des candidats.
đ â ïžïž Travail en cours
đ Ce projet a commencĂ© comme un projet annexe sans feuille de route ni financement. Il a dĂ©passĂ© toutes nos attentes en finissant dans GitHub Trending. Les contributions, retours et votre patience sont grandement apprĂ©ciĂ©s.
Prérequis
Assurez-vous dâavoir chrome driver, docker et python3.10 installĂ©s.
Pour les problÚmes liés à chrome driver, voir la section Chromedriver.
1. Cloner le dépÎt et configurer
git clone https://github.com/Fosowl/agenticSeek.git
cd agenticSeek
mv .env.example .env
2. Modifier le contenu du fichier .env
SEARXNG_BASE_URL="http://127.0.0.1:8080"
REDIS_BASE_URL="redis://redis:6379/0"
WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optionnel'
DEEPSEEK_API_KEY='optionnel'
OPENROUTER_API_KEY='optionnel'
TOGETHER_API_KEY='optionnel'
GOOGLE_API_KEY='optionnel'
ANTHROPIC_API_KEY='optionnel'
Les clĂ©s API sont totalement optionnelles pour les utilisateurs qui choisissent dâexĂ©cuter le LLM localement. Ce qui est le but principal du projet. Laissez vide si vous avez le matĂ©riel suffisant.
Les variables dâenvironnement suivantes configurent les connexions et clĂ©s API de votre application.
Mettez Ă jour le fichier .env avec vos propres valeurs si besoin :
- SEARXNG_BASE_URL : Laisser inchangé
- REDIS_BASE_URL : Laisser inchangé
- WORK_DIR : Chemin vers votre dossier de travail local. AgenticSeek pourra lire et interagir avec ces fichiers.
- OLLAMA_PORT : Port pour le service Ollama.
- LM_STUDIO_PORT : Port pour le service LM Studio.
- CUSTOM_ADDITIONAL_LLM_PORT : Port pour tout service LLM personnalisé.
Toutes les variables dâenvironnement de clĂ© API ci-dessous sont optionnelles. Vous nâavez Ă les fournir que si vous souhaitez utiliser des API externes au lieu dâexĂ©cuter les LLM localement.
3. Démarrer Docker
Assurez-vous que Docker est installĂ© et en cours dâexĂ©cution sur votre systĂšme. Vous pouvez dĂ©marrer Docker avec les commandes suivantes :
-
Sur Linux/macOS :
Ouvrez un terminal et lancez :sh sudo systemctl start dockerOu lancez Docker Desktop depuis votre menu dâapplications si installĂ©. -
Sur Windows :
Lancez Docker Desktop depuis le menu Démarrer.
Vous pouvez vérifier que Docker fonctionne avec :
docker info
Si vous voyez des informations sur votre installation Docker, câest que tout fonctionne.
Configuration pour exécuter un LLM localement
Configuration matérielle requise :
Pour exĂ©cuter des LLM localement, il vous faut un matĂ©riel suffisant. Au minimum, un GPU capable dâexĂ©cuter Qwen/Deepseek 14B est requis. Voir la FAQ pour des recommandations dĂ©taillĂ©es.
Démarrer votre fournisseur local
Démarrez votre fournisseur local, par exemple avec ollama :
ollama serve
Voir ci-dessous la liste des fournisseurs locaux supportés.
Mettre Ă jour le config.ini
Modifiez le fichier config.ini pour définir provider_name sur un fournisseur supporté et provider_model sur un modÚle LLM supporté par votre fournisseur. Nous recommandons des modÚles de raisonnement comme Qwen ou Deepseek.
Voir la FAQ à la fin du README pour le matériel requis.
[MAIN]
is_local = True # Si vous exécutez localement ou avec un fournisseur distant.
provider_name = ollama # ou lm-studio, openai, etc.
provider_model = deepseek-r1:14b # choisissez un modÚle adapté à votre matériel
provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # nom de votre IA
recover_last_session = True # reprendre la session précédente
save_session = True # mémoriser la session actuelle
speak = False # synthĂšse vocale
listen = False # Reconnaissance vocale, uniquement pour CLI, expérimental
jarvis_personality = False # Personnalité "Jarvis" (expérimental)
languages = en zh # Liste des langues, la synthÚse vocale prendra la premiÚre par défaut
[BROWSER]
headless_browser = True # laisser inchangĂ© sauf si utilisation CLI sur lâhĂŽte.
stealth_mode = True # Utilise selenium indétectable pour réduire la détection
Attention :
-
Le format du fichier
config.inine supporte pas les commentaires. Ne copiez/collez pas la configuration dâexemple directement, car les commentaires provoqueront des erreurs. Modifiez manuellement le fichierconfig.iniavec vos paramĂštres, sans commentaires. -
Ne mettez pas provider_name Ă
openaisi vous utilisez LM-studio pour exĂ©cuter les LLM. Mettez-le Ălm-studio. -
Certains fournisseurs (ex : lm-studio) nécessitent
http://devant lâIP. Par exemplehttp://127.0.0.1:1234
Liste des fournisseurs locaux
| Fournisseur | Local ? | Description |
|---|---|---|
| ollama | Oui | Exécutez des LLM localement facilement avec ollama |
| lm-studio | Oui | Exécutez un LLM localement avec LM studio (lm-studio) |
| openai | Oui | Utilise une API compatible openai (ex : serveur llama.cpp) |
Ătape suivante : DĂ©marrer les services et lancer AgenticSeek
Voir la section ProblĂšmes connus en cas de souci
Voir la section Utiliser une API si votre matériel ne peut pas exécuter deepseek localement
Voir la section Config pour une explication détaillée du fichier de configuration.
Configuration pour utiliser une API
Lâutilisation dâune API est optionnelle, voir ci-dessus pour lâexĂ©cution locale.
Définissez le fournisseur désiré dans le config.ini. Voir ci-dessous la liste des fournisseurs API.
[MAIN]
is_local = False
provider_name = google
provider_model = gemini-2.0-flash
provider_server_address = 127.0.0.1:5000 # sans importance
Attention : Ne laissez pas dâespace Ă la fin de la config.
Exportez votre clé API : export <<PROVIDER>>_API_KEY="xxx"
Exemple : export TOGETHER_API_KEY="xxxxx"
Liste des fournisseurs API
| Fournisseur | Local ? | Description |
|---|---|---|
| openai | Selon | Utilise lâAPI ChatGPT |
| deepseek | Non | API Deepseek (non privé) |
| huggingface | Non | API Hugging-Face (non privé) |
| togetherAI | Non | Utilise lâAPI together AI (non privĂ©) |
| Non | Utilise lâAPI gemini de Google (non privĂ©) |
Notez que le codage/bash peut échouer avec gemini, qui ignore parfois le format demandé, optimisé pour deepseek r1. Les modÚles comme gpt-4o donnent aussi de moins bons résultats avec notre prompt.
Ătape suivante : DĂ©marrer les services et lancer AgenticSeek
Voir la section ProblĂšmes connus en cas de souci
Voir la section Config pour une explication détaillée du fichier de configuration.
Démarrer les services et lancer AgenticSeek
Démarrez les services requis. Cela lancera tous les services du docker-compose.yml, dont :
- searxng
- redis (requis par searxng)
- frontend
- backend (si vous utilisez full)
./start_services.sh full # MacOS
start ./start_services.cmd full # Windows
Attention : Cette Ă©tape tĂ©lĂ©chargera et chargera toutes les images Docker, ce qui peut prendre jusquâĂ 30 minutes. AprĂšs le dĂ©marrage, attendez que le backend soit bien lancĂ© (vous devriez voir backend: dans les logs) avant dâenvoyer des messages. Le backend peut mettre plus de temps Ă dĂ©marrer.
Allez sur http://localhost:3000/ pour accĂ©der Ă lâinterface web.
Optionnel : Utiliser lâinterface CLI :
Pour utiliser le mode CLI, vous devrez installer les paquets sur lâhĂŽte :
./install.sh
./install.bat # windows
Démarrez les services :
./start_services.sh # MacOS
start ./start_services.cmd # Windows
Puis lancez : uv run cli.py
Utilisation
Assurez-vous que les services sont lancĂ©s avec ./start_services.sh full et allez sur localhost:3000 pour lâinterface web.
Vous pouvez aussi utiliser la reconnaissance vocale en mettant listen = True dans la config (mode CLI uniquement).
Pour quitter, dites/tapez simplement goodbye.
Exemples dâutilisation :
Fais un jeu du serpent en python !
Recherche les meilleurs cafés à Rennes, France, et enregistre une liste de trois avec leurs adresses dans rennes_cafes.txt.
Ăcris un programme Go pour calculer la factorielle dâun nombre, sauvegarde-le sous factorial.go dans ton espace de travail
Cherche dans mon dossier summer_pictures tous les fichiers JPG, renomme-les avec la date du jour, et enregistre la liste dans photos_list.txt
Recherche en ligne les films de science-fiction populaires de 2024 et choisis-en trois Ă regarder ce soir. Sauvegarde la liste dans movie_night.txt.
Recherche les derniers articles dâactualitĂ© sur lâIA de 2025, sĂ©lectionne-en trois, et Ă©cris un script Python pour extraire leurs titres et rĂ©sumĂ©s. Sauvegarde le script sous news_scraper.py et les rĂ©sumĂ©s dans ai_news.txt dans /home/projects
Vendredi, cherche une API gratuite de prix dâactions, inscris-toi avec supersuper7434567@gmail.com puis Ă©cris un script Python pour rĂ©cupĂ©rer les prix quotidiens de Tesla, et sauvegarde les rĂ©sultats dans stock_prices.csv
Note : le remplissage de formulaires est encore expérimental et peut échouer.
AprĂšs avoir saisi votre requĂȘte, AgenticSeek choisira le meilleur agent pour la tĂąche.
Comme il sâagit dâun prototype, le systĂšme de routage dâagent peut ne pas toujours choisir le bon agent selon votre requĂȘte.
Soyez donc explicite sur ce que vous voulez et comment lâIA doit procĂ©der. Par exemple, pour une recherche web, ne dites pas :
Connais-tu de bons pays pour voyager en solo ?
Dites plutĂŽt :
Fais une recherche web et trouve les meilleurs pays pour voyager en solo
Exécuter le LLM sur votre propre serveur
Si vous avez un ordinateur ou un serveur puissant, mais souhaitez lâutiliser depuis votre laptop, vous pouvez exĂ©cuter le LLM sur un serveur distant via notre serveur LLM personnalisĂ©.
Sur votre "serveur" qui exĂ©cutera le modĂšle IA, rĂ©cupĂ©rez lâadresse IP :
ip a | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}' | cut -d/ -f1 # ip locale
curl https://ipinfo.io/ip # ip publique
Note : Sous Windows ou macOS, utilisez ipconfig ou ifconfig pour trouver lâadresse IP.
Clonez le dépÎt et entrez dans le dossier server/ :
git clone --depth 1 https://github.com/Fosowl/agenticSeek.git
cd agenticSeek/llm_server/
Installez les dépendances spécifiques au serveur :
pip3 install -r requirements.txt
Lancez le script serveur :
python3 app.py --provider ollama --port 3333
Vous pouvez choisir entre ollama et llamacpp comme service LLM.
Sur votre ordinateur personnel :
Modifiez le fichier config.ini pour mettre provider_name Ă server et provider_model Ă deepseek-r1:xxb.
Mettez provider_server_address Ă lâadresse IP de la machine qui exĂ©cute le modĂšle.
[MAIN]
is_local = False
provider_name = server
provider_model = deepseek-r1:70b
provider_server_address = x.x.x.x:3333
Ătape suivante : DĂ©marrer les services et lancer AgenticSeek
Reconnaissance Vocale
Attention : la reconnaissance vocale ne fonctionne quâen mode CLI pour lâinstant.
Notez quâactuellement la reconnaissance vocale ne fonctionne quâen anglais.
La fonctionnalitĂ© de reconnaissance vocale est dĂ©sactivĂ©e par dĂ©faut. Pour lâactiver, mettez listen Ă True dans le fichier config.ini :
listen = True
Quand activĂ©e, la reconnaissance vocale attend un mot-clĂ© dĂ©clencheur, qui est le nom de lâagent, avant de commencer Ă traiter votre entrĂ©e. Vous pouvez personnaliser le nom de lâagent via agent_name dans config.ini :
agent_name = Friday
Pour une reconnaissance optimale, nous recommandons dâutiliser un prĂ©nom anglais courant comme "John" ou "Emma" comme nom dâagent.
Une fois la transcription affichĂ©e, dites le nom de lâagent Ă voix haute pour le rĂ©veiller (ex : "Friday").
Ănoncez clairement votre requĂȘte.
Terminez votre demande par une phrase de confirmation pour signaler au systÚme de procéder. Exemples :
"do it", "go ahead", "execute", "run", "start", "thanks", "would ya", "please", "okay?", "proceed", "continue", "go on", "do that", "go it", "do you understand?"
Config
Exemple de config :
[MAIN]
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = 127.0.0.1:11434
agent_name = Friday
recover_last_session = False
save_session = False
speak = False
listen = False
jarvis_personality = False
languages = en zh
[BROWSER]
headless_browser = False
stealth_mode = False
Explications :
-
is_local -> ExĂ©cute lâagent localement (True) ou sur un serveur distant (False).
-
provider_name -> Fournisseur Ă utiliser (parmi :
ollama,server,lm-studio,deepseek-api) -
provider_model -> ModÚle utilisé, ex : deepseek-r1:32b.
-
provider_server_address -> Adresse du serveur, ex : 127.0.0.1:11434 pour local. Mettre nâimporte quoi pour une API non locale.
-
agent_name -> Nom de lâagent, ex : Friday. UtilisĂ© comme mot-clĂ© pour la reconnaissance vocale.
-
recover_last_session -> Reprend la derniĂšre session (True) ou non (False).
-
save_session -> Sauvegarde la session (True) ou non (False).
-
speak -> Active la synthĂšse vocale (True) ou non (False).
-
listen -> Active la reconnaissance vocale (True) ou non (False).
-
jarvis_personality -> Utilise une personnalité type JARVIS (True) ou non (False). Change simplement le prompt.
-
languages -> Liste des langues supportĂ©es, nĂ©cessaire pour le routage des agents. Ăvitez dâen mettre trop ou des langues trop similaires.
-
headless_browser -> Lance le navigateur sans fenĂȘtre visible (True) ou non (False).
-
stealth_mode -> Rend la dĂ©tection par les bots plus difficile. NĂ©cessite dâinstaller lâextension anticaptcha manuellement.
-
languages -> Liste des langues supportées. Requis pour le systÚme de routage. Plus la liste est longue, plus de modÚles seront téléchargés.
Fournisseurs
Tableau des fournisseurs disponibles :
| Fournisseur | Local ? | Description |
|---|---|---|
| ollama | Oui | Exécutez des LLM localement avec ollama |
| server | Oui | Hébergez le modÚle sur une autre machine |
| lm-studio | Oui | Exécutez un LLM localement avec LM studio (lm-studio) |
| openai | Selon | Utilise lâAPI ChatGPT (non privĂ©) ou API compatible openai |
| deepseek-api | Non | API Deepseek (non privé) |
| huggingface | Non | API Hugging-Face (non privé) |
| togetherAI | Non | Utilise lâAPI together AI (non privĂ©) |
| Non | Utilise lâAPI gemini de Google (non privĂ©) |
Pour sélectionner un fournisseur, modifiez le config.ini :
is_local = True
provider_name = ollama
provider_model = deepseek-r1:32b
provider_server_address = 127.0.0.1:5000
is_local : doit ĂȘtre True pour tout LLM local, sinon False.
provider_name : Sélectionnez le fournisseur par son nom, voir la liste ci-dessus.
provider_model : ModĂšle Ă utiliser par lâagent.
provider_server_address : Peut ĂȘtre nâimporte quoi si vous nâutilisez pas le fournisseur server.
ProblĂšmes connus
ProblĂšmes avec Chromedriver
Erreur connue #1 : chromedriver mismatch
Exception: Failed to initialize browser: Message: session not created: This version of ChromeDriver only supports Chrome version 113 Current browser version is 134.0.6998.89 with binary path
Cela arrive sâil y a un dĂ©calage entre la version de votre navigateur et celle de chromedriver.
Téléchargez la derniÚre version ici :
https://developer.chrome.com/docs/chromedriver/downloads
Si vous utilisez Chrome version 115 ou plus, allez sur :
https://googlechromelabs.github.io/chrome-for-testing/
Et téléchargez la version de chromedriver correspondant à votre OS.
Si cette section est incomplĂšte, ouvrez une issue.
ProblĂšmes dâadaptateurs de connexion
Exception: Provider lm-studio failed: HTTP request failed: No connection adapters were found for '127.0.0.1:11434/v1/chat/completions'
Assurez-vous dâavoir http:// devant lâadresse IP du fournisseur :
provider_server_address = http://127.0.0.1:11434
SearxNG base URL doit ĂȘtre fourni
raise ValueError("SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.")
ValueError: SearxNG base URL must be provided either as an argument or via the SEARXNG_BASE_URL environment variable.
Peut-ĂȘtre nâavez-vous pas renommĂ© .env.example en .env ? Vous pouvez aussi exporter SEARXNG_BASE_URL :
export SEARXNG_BASE_URL="http://127.0.0.1:8080"
FAQ
Q : Quel matériel est nécessaire ?
| Taille du modĂšle | GPU | Commentaire |
|---|---|---|
| 7B | 8 Go Vram | â ïž Non recommandĂ©. Performances faibles, hallucinations frĂ©quentes, Ă©chec probable des agents planificateurs. |
| 14B | 12 Go VRAM | â Utilisable pour des tĂąches simples. Peut avoir du mal avec la navigation web et la planification. |
| 32B | 24+ Go VRAM | đ RĂ©ussite sur la plupart des tĂąches, peut encore avoir du mal avec la planification |
| 70B+ | 48+ Go Vram | đȘ Excellent. RecommandĂ© pour les cas avancĂ©s. |
Q : Pourquoi Deepseek R1 plutĂŽt quâun autre modĂšle ?
Deepseek R1 excelle en raisonnement et utilisation dâoutils pour sa taille. Nous pensons que câest un bon choix, dâautres modĂšles fonctionnent aussi, mais Deepseek est notre favori.
Q : Jâai une erreur en lançant cli.py. Que faire ?
Assurez-vous que le local est lancé (ollama serve), que votre config.ini correspond à votre fournisseur, et que les dépendances sont installées. Si rien ne marche, ouvrez une issue.
Q : Peut-on vraiment tout faire tourner en local ?
Oui, avec Ollama, lm-studio ou server, tout (reconnaissance vocale, LLM, synthĂšse vocale) fonctionne localement. Les options non-locales (OpenAI ou autres API) sont optionnelles.
Q : Pourquoi utiliser AgenticSeek alors que jâai Manus ?
Ce projet est nĂ© dâun intĂ©rĂȘt pour les agents IA. Ce qui le rend spĂ©cial, câest la volontĂ© dâutiliser des modĂšles locaux et dâĂ©viter les API. Nous nous inspirons de Jarvis et Friday (Iron Man) pour le cĂŽtĂ© "cool", mais pour la fonctionnalitĂ©, câest Manus qui nous inspire, car câest ce que les gens recherchent : une alternative locale Ă Manus. Contrairement Ă Manus, AgenticSeek privilĂ©gie lâindĂ©pendance vis-Ă -vis des systĂšmes externes, vous donnant plus de contrĂŽle, de confidentialitĂ© et Ă©vitant les coĂ»ts dâAPI.
Contribuer
Nous recherchons des développeurs pour améliorer AgenticSeek ! Consultez les issues ou discussions ouvertes.
Mainteneurs :
Fosowl | Heure de Paris
antoineVIVIES | Heure de Taipei
steveh8758 | Heure de Taipei
Remerciements :
tcsenpai et plitc pour lâaide Ă la dockerisation du backend

