Bonjour à tous,
Avis à tous ceux qui vont hurler sur un projet vibe codé mais pour ceux qui veulent tester et que ça intéresse, j'ai créé ELY. Un agent IA auto-hébergé que je développe depuis plusieurs mois et même si j'ai fait ça avec Claude Code, croyez moi, je n'ai pas eu qu'à dire "Fais moi ceci, comme cela, qui fait çi et qui fait ça…". C'est le fruit de week-end et de soirées, voire nuits, à imaginer, tester, échanger jusqu'à ce que le résultat me convienne.
La particularité — et la raison d'être du projet — est un pipeline d'anonymisation des données personnelles qui s'exécute AVANT tout appel à un LLM, qu'il soit local ou cloud.
L'écosystème des agents IA a beaucoup grandi en 2025-2026 (OpenClaw, Hermes, et bientôt Google Remy à I/O 2026), mais aucun n'adresse sérieusement le cas des organisations soumises au secret professionnel ou au RGPD strict. ELY essaie de combler ce vide.
Quand un avocat copie une note de synthèse dans ChatGPT, ou qu'un expert-comptable demande à Claude de résumer un compte de résultat client, les noms, IBAN, SIRET, montants — tout part en clair vers des serveurs aux États-Unis. C'est documenté, c'est connu, c'est pourtant fait quotidiennement par des centaines de milliers de professionnels en France.
Les agents auto-hébergés actuels (Hermes, OpenClaw, Aider) règlent le problème de la "boîte noire" en mettant le code à disposition, mais ne résolvent pas le problème des données : si l'agent appelle Claude ou GPT-5 en backend, les données partent quand même.
ELY ajoute une couche d'anonymisation déterministe en amont : avant toute construction de prompt, un SecurityFilter détecte et remplace les PII (emails, IBAN, SIRET, numéros de téléphone, jetons API…) par des placeholders. Le LLM voit [EMAIL_0], [IBAN_0]. Les valeurs réelles sont restaurées localement quand la réponse revient à l'utilisateur. Le LLM ne voit jamais la donnée brute.
Architecture
ELY est construit sur :
- FastAPI + LangGraph (backend Python)
- Next.js 16 (frontend)
- Apps natives iOS (SwiftUI) et Android (Kotlin/Compose)
- Daemon Go pour l'automatisation desktop
- Qdrant pour la mémoire vectorielle locale, SQLite FTS5 pour le keyword
- Docker Compose pour le déploiement
Le routage LLM se fait par "tier de complexité" (Tier A rapide / B standard / C profond / IMG / SYS). L'utilisateur assigne un modèle à chaque tier dans les Settings — local (Ollama, LM Studio) pour les tâches simples, cloud (Mistral privilégié, ou Anthropic, OpenAI, Gemini, DeepSeek, Qwen, etc… selon préférence) pour les complexes. Tout est configurable sans redémarrage.
HITL (Human In The Loop) structurel
Toute action irréversible — envoi de mail, suppression, commande SSH, partage — passe par une validation explicite. Trois choix : autoriser une fois, refuser, ou bannir définitivement (la décision persiste entre toutes les sessions futures).
C'est différent des "confirmations" qu'on trouve sur les agents cloud type ChatGPT Operator, où le HITL est une UX optionnelle. Chez ELY, c'est structurel — désactiver HITL demande une modification du code source, ce qui est explicitement interdit par la licence.
Licence
ELY est sous licence PolyForm Strict 1.0 — source-available, gratuit pour usage personnel/familial/éducatif, licence commerciale annuelle pour les entreprises.
C'est un choix conscient, je l'assume :
l'open-source au sens OSI ne permettait pas de pérenniser le projet sans capital-risque, et la licence MIT/Apache aurait permis à un acteur cloud US de forker pour son SaaS sans aucune contrepartie (J'ai déjà donné…).
Ce modèle source-available est devenu courant (Sentry, Grafana, Elastic) et fonctionne bien pour les projets entre solo-dev et fondation.
Démarrage
git clone https://github.com/franckolv-dev/ElyAgent.git
cd ElyAgent
cp .env.example .env
make up
Trois commandes, 30 minutes pour le scénario "POC local" avec une clé API Gemini gratuite. Documentation et scénarios de déploiement plus avancés (Cloudflare Tunnel, Tailscale, multi-canaux) dans docs/START_HERE.md.
Discussions et critiques bienvenues
C'est un projet personnel développé en parallèle de mon activité professionnelle (je suis directeur technique chez un gros intégrateur Français, spécialisé webtoprint). Le code est ouvert, les choix architecturaux documentés. Toutes les critiques techniques sont les bienvenues, c'est ce qui fait monter le niveau, du moment que c'est constructif.
GitHub : https://github.com/franckolv-dev/ElyAgent
Site : https://agent-ely.fr
# Bonjour
Posté par fork_bomb . Évalué à 10 (+11/-1). Dernière modification le 14 mai 2026 à 15:40.
Est-ce que tu as lu les journaux précédents au sujet des journaux générés par IA ?
Si oui, qu'en as-tu conclu ?
[^] # Re: Bonjour
Posté par ElyDeFranck . Évalué à -1 (+3/-1).
Dsl mais ce journal n'a pas été généré par IA. Je l'ai écrit moi même
# Regarde maman, un agent de la NSA !
Posté par volts (Mastodon) . Évalué à 10 (+13/-1). Dernière modification le 14 mai 2026 à 15:51.
Pourquoi pas, il y a une bonne intention.
Cependant, je vois un truc pas très très catholique dans les instructions sur la démo :
Mais, attendez, Gemini AI, c'est bien un truc proprio de Alphabet coincé dans un nuage sous la coupe de l'Agent Orange qui cherche à détricoter le RGPD ?
…
C'est.
donc.
Un.
PIÈGE !!!
* Pousse un long hululement inhumain qui fait sursauter tout un openspace *
[^] # Re: Regarde maman, un agent de la NSA !
Posté par steph1978 . Évalué à 4 (+3/-1).
Ce journal ne m'intéresse pas plus que les autres du même genre. Par contre il a bien dit "anonymisation déterministe avant envoi au LLM". Est ce que ça marche vraiment ? Probablement pas mais on ne peut pas nier l'intention de ne pas envoyer des données personnelles au LLM quel qu'il soit.
[^] # Re: Regarde maman, un agent de la NSA !
Posté par Tonton Th (site web personnel, Mastodon) . Évalué à 4 (+2/-0).
Si ton identifiant sur https://example.net/ est
EMAIL_0est-ce que notre ami LLM ne va pas faire du nawak ?[^] # Re: Regarde maman, un agent de la NSA !
Posté par Renault (site web personnel) . Évalué à 6 (+3/-0).
En fait je dirais même que si ça améliore la situation par rapport à ne rien faire, ça donne un faux sentiment de sécurité si on considère l'usage de ressources en ligne (ce qui est suggéré comme workflow possible).
Reprenons :
Bon déjà résumer un compte résultat clients sans les montants ça doit être un exercice rigolo. Outre les risques d'hallucinations, le risque que des données à filtrer ne le soient pas me semble loin d'être négligeable. Ensuite, c'est oublier que les données personnelles permettant d'identifier une personne ou une entreprise sont vastes.
Avec l'âge, la profession, la ville où vivent une personne, sans même avoir le reste, peut permettre dans de nombreux cas d'identifier des personnes. De même pour une entreprise avec son secteur d'activité et sa localisation et potentiellement d'autres données non spécifiques individuellement mais qui avec d'autres le sont assurément.
Et sans ces données personnelles, les résultats seront limités de toute façon. Dans le cadre d'une analyse de justice il faut tenir compte du passé et de la situation de la personne et ces données personnelles peuvent faire pencher la balance que ce soit pour la prise en compte du contexte juridique applicable comme des circonstances atténuantes ou aggravantes qui peuvent être utilisées.
Donc dire "respect RGPD" dans tous les cas dans ce contexte ça me paraît mensonger et trompeur. La seule solution de le garantir c'est d'utiliser exclusivement des services qui sont compatibles avec ou d'utiliser des services purement locaux (et avec le secret professionnel qui encadre des professions, le RGPD n'est pas la seule limite, ils doivent éviter d'envoyer des documents n'importe où de fait).
# un jeudi férie, c'est aussi un trolldi
Posté par Tonton Th (site web personnel, Mastodon) . Évalué à 9 (+7/-0). Dernière modification le 14 mai 2026 à 19:34.
Donc ça n'est pas vraiment un logiciel libre. Par exemple, une association n'aurait pas le droit de s'en servir ?
Donc, ça n'est absolument pas un logiciel libre, tu devrais plutôt aller poster ton annonce dans LinkedIn ou GitHub, deux filiales d'un géant spécialisé dans le
non libre.Ah, je pensais depuis longtemps que la licence MIT permettait de fourcheter quasiment sans limite à part la citation de l'auteur. Mais comme tu as « déja donné », ton cas précis mérite d'être cité pour qu'on en discute demain qui sera le vrai trolldi.
Et paf le RGPD, et paf la privacy !
# Evidemment !!!
Posté par ElyDeFranck . Évalué à -10 (+4/-12).
Je m'attendais à ce genre de commentaires…
Lisez attentivement, testez avant de dezingger bêtement !
Le RGPD est respecté, rien de confidentiel ne sort de la bécane, si vous lisiez attentivement, Mistral est privilégié, Gemini est proposé pour pouvoir tester gratuitement sans payer de clé API, vous pouvez l'utiliser avec un modèle local. Bref, l'exact opposé de ce que vous dites.
Je propose, faites en ce que vous voulez et, comme je le dis dans mon texte, j'encadre des devs (comme vous j'imagine) depuis des années et suis habitué aux retours négatifs. Ce que font les autres est toujours moins bien et, d'ailleurs, allez y. Faites mieux ;)
La critique est facile
Franck
[^] # Re: Evidemment !!!
Posté par ElyDeFranck . Évalué à -1 (+4/-2).
Bon, je reprends point par point après reflexion. Vos critiques m'ont décues, d'où ma première réponse, et c'est exactement ce qu'il ne faut pas faire face à des commentaires qui sont, finalement, en partie techniquement fondées.
@volts — Gemini = pas RGPD : critique légitime, et mon pitch était ambigu. La stack par défaut a effectivement DeepSeek (CN) en plus de Mistral (EU). Ce qui existe vraiment dans le code :
Mode 100% local : tier A sur Ministral 3B servi via LM Studio, sur la machine de l'utilisateur. Zéro token ne sort.
Mode 100% EU : tier A/B/C tous sur Mistral (Paris). RGPD direct.
Mode performant mixte : DeepSeek + Mistral, avec anonymisation native qui retire PII (mails, IBAN, noms, IDs) avant tout call API.
Le choix est exposé dans Réglages → Routage. Je vais reformuler la page d'accueil pour rendre ces 3 modes explicites au lieu de laisser supposer un « RGPD par défaut » qui dépend en réalité de la config choisie.
@Tonton Th — PolyForm Strict ≠ libre : exact.
Source-available, pas open-source au sens OSI/FSF. Ce n'est pas du flou marketing volontaire — j'ai fait ce choix pour pouvoir générer des revenus plus tard via une licence commerciale, tout en gardant le code lisible/auditable et l'usage personnel/éducatif/recherche/associatif gratuit (cf. PolyForm Strict 1.0, section « Permissions »). Je vais remplacer « open-source » par « source-available » / « code source ouvert et auditable » partout où c'était imprécis.
@Tonton Th — associations exclues : non, l'usage non-commercial est explicitement permis (asso loi 1901 incluse). C'est l'usage commercial qui nécessite une licence.
@Tonton Th — Cloudflare Tunnel : c'est ma commodité de déploiement pour exposer mon Mac Studio à agent-ely.fr. Pas une dépendance d'ELY. Pour un déploiement souverain sans CF : Tailscale, WireGuard, reverse proxy local — je vais documenter ces 3 alternatives dans docs/installation.md.
@steph1978 — anonymisation déterministe pas fiable : critique partiellement fondée. Le déterminisme préserve la fréquence des mentions, donc une attaque de fréquence sur un corpus de prompts dumpés serait potentiellement reversible.
Le compromis assumé : le LLM peut raisonner sur les relations entre entités, au prix de cette propriété de fréquence. Je vais ajouter une section « Limites de l'anonymisation déterministe » à docs/security.md.
@fork_bomb — journal généré par IA : non écrit par une IA mais relu avec une IA (Claude) pour la structure et l'orthographe. Tu as raison, le ton trop « plaquette » a probablement participé à ce ressenti. Je posterai la suite en plus brut (D'ailleurs, je ne pense pas qu'une IA aurait eu la réaction de mon premier message)
Franck
[^] # Re: Evidemment !!!
Posté par Colin Pitrat (site web personnel) . Évalué à 5 (+4/-1).
Je trouve que tu te prends plus de mauvaises remarques que tu le mérites. Ton journal est bien écrit, le contenu n'est pas complétement à côté de la plaque, le problème principal que je vois c'est que ce n'est pas libre. Mais c'est open source, et ce n'est pas la première fois qu'on parle de projets open source ici. L'idée est intéressante et le problème soulevé est pertinent (même si personnellement je ne trouve pas la solution proposée pertinente).
Au final, je pense que tu te prends la haine causée par des contenus de bien piètre qualité postés plus tôt. J'en suis désolé. Ton journal mérite peut être un score proche de zéro, mais pas le -33 qu'il a en ce moment. Bon courage pour la suite de ton projet.
Je t'invite à reconsidérer la liberté du projet. Pour ma part, ce qui touche à la sécurité et à la vie privée, open source ne suffit pas, il faut que ce soit libre. À mes yeux, ça garanti plus de contributions, une meilleure relecture du code et me donne plus de confiance sur les objectifs du projet.
[^] # Re: Evidemment !!!
Posté par thoasm . Évalué à 5 (+2/-0).
Open Source au sens de l'OSI et libre, c'est quasi synonyme.
[^] # Re: Evidemment !!!
Posté par Pol' uX (site web personnel) . Évalué à 6 (+4/-0). Dernière modification le 15 mai 2026 à 12:01.
Et surtout elle est bienvenue !
Adhérer à l'April, ça vous tente ?
[^] # Re: Evidemment !!!
Posté par ElyDeFranck . Évalué à -1 (+4/-2). Dernière modification le 15 mai 2026 à 13:15.
Bien sur ! Lorsqu'elle est constructive…
Pour info commit e9e3553 :
- Reformulations pour éviter toute confusion open source / Source available
- Clarification Tailscale / Cloudflare publiée dans : voir docs/installation.md Tailscale recommandé, CF Tunnel positionné comme alternative avec mention "solution américaine" explicité.
- Limites de l'anonymisation déterministe : Texte ajouté. Voir docs/security.md.
4 limites documentées avec leurs mitigations, conclusion explicite que le tier local reste la bonne réponse pour les cas "sensibles"
Voilà. J'ai fait au mieux pour répondre aux critiques :)
[^] # Re: Evidemment !!!
Posté par Faya . Évalué à 6 (+4/-0).
Ton outil est intéressant mais il est arrivé pile au mauvais moment. En plein dans une vague de journaux sans queue ni tête postés par des IA… Rien qu'au titre "Un agent IA" tu avais déjà perdu.
[^] # Re: Evidemment !!!
Posté par fork_bomb . Évalué à 1 (+3/-3).
Tu es bien généreux de nous honorer de ta prose alors que nous sommes tes subordonnés.
[^] # Re: Evidemment !!!
Posté par jseb . Évalué à 4 (+2/-0).
Je pense que cette phrase doit plutôt être comprise comme « j'encadre des devs, tout comme vous le faites probablement également ».
Discussions en français sur la création de jeux videos : IRC libera / #gamedev-fr
[^] # Re: Evidemment !!!
Posté par fork_bomb . Évalué à 1 (+0/-0).
Perso j'ai compris la phrase complète "vous faites excessivement de retours négatifs comme les dévs que j'encadre", mais effectivement ton interprétation marche aussi
[^] # Re: Evidemment !!!
Posté par ElyDeFranck . Évalué à -4 (+4/-5).
Merci pour le soutien dans les derniers messages et pour le ton plus courtois.
J'ai posté sur LinuxFR car utilisateur linux depuis longtemps (j'ai commencé l'informatique en 1981 avec les commodore, les ZX81, etc…), je me suis dit que cela devrait intéresser des personnes tech. C'est gratuit et je pensais que certains auraient envie de tester.
Erreur de ma part, après avoir parcourus plusieurs journaux, je retrouve régulièrement les même profil qui, visiblement, prennent plaisir à descendre les personnes qui cherchent à faire quelque chose.
Pour ce qui est de la dernière phrase "les dev que j'encadre…", ce n'est pas de la prétention. J'ai 56 ans, cela fait 14 ans que je gère la boite et les équipes qui travaillent avec moi et je souhaite à beaucoup d'avoir un employeur ou manager aussi ouvert que j'essai de l'être.
Je suis moi même un tech, je fais du dev depuis plus de 20 ans et oui, il faut quelqu'un pour prendre les décisions stratégique, vendre les softs qu'on développe, faire croitre la boite pour que tout le monde touche son salaire chaque mois.
C'est mon dernier message. Je déserte cette communauté qui, même si cela fait vieux c.., a bien changé. C'est tellement plus simple de critiquer que de faire. Allez y, lachez vous, je ne lirai même pas !
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.