{"id":49838165,"url":"https://github.com/franckolv-dev/elyagent","last_synced_at":"2026-06-10T09:00:49.700Z","repository":{"id":357249689,"uuid":"1177144693","full_name":"franckolv-dev/ElyAgent","owner":"franckolv-dev","description":"Self-hosted, GDPR-native AI agent for sovereign organisations. Multi-LLM, multi-channel (web, voice, mobile, Telegram, Slack), HITL on every irreversible action, native PII anonymisation pipeline. Free for personal use, commercial licence for business deployment.","archived":false,"fork":false,"pushed_at":"2026-06-10T01:40:02.000Z","size":15345,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T03:10:40.935Z","etag":null,"topics":["ai-agent","fastapi","french","gdpr","hitl","human-in-the-loop","langchain","langgraph","memory","multi-account","multi-llm","nextjs","pii-pipeline","polyform-strict","python","rgpd","rgpd-compliant","self-hosted","sovereign-ai","web-automation"],"latest_commit_sha":null,"homepage":"https://agent-ely.fr","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/franckolv-dev.png","metadata":{"files":{"readme":"README.fr.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-09T18:33:11.000Z","updated_at":"2026-06-10T01:40:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"c65c7944-dcac-43bf-9bd4-cc31df0731d5","html_url":"https://github.com/franckolv-dev/ElyAgent","commit_stats":null,"previous_names":["franckolv-dev/elyagent"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/franckolv-dev/ElyAgent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckolv-dev%2FElyAgent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckolv-dev%2FElyAgent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckolv-dev%2FElyAgent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckolv-dev%2FElyAgent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franckolv-dev","download_url":"https://codeload.github.com/franckolv-dev/ElyAgent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franckolv-dev%2FElyAgent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34144680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","fastapi","french","gdpr","hitl","human-in-the-loop","langchain","langgraph","memory","multi-account","multi-llm","nextjs","pii-pipeline","polyform-strict","python","rgpd","rgpd-compliant","self-hosted","sovereign-ai","web-automation"],"created_at":"2026-05-14T02:01:00.391Z","updated_at":"2026-06-10T09:00:49.689Z","avatar_url":"https://github.com/franckolv-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e · \u003ca href=\"README.fr.md\"\u003eFrançais\u003c/a\u003e\n\n\u003cimg src=\"https://agent-ely.fr/ely-logo.jpeg\" alt=\"ELY — agent IA souverain\" width=\"200\" /\u003e\n\n# ELY\n\n### Un agent IA auto-hébergé qui anonymise les données sensibles *avant* tout appel LLM.\n\nMulti-utilisateur · multi-canal · RGPD natif · validation humaine sur chaque action irréversible.\nConçu pour les particuliers, les familles et les PME qui ne peuvent pas se permettre de fuiter leurs données vers une IA tierce.\n\n[**Site web**](https://agent-ely.fr) ·\n[**Documentation**](./docs/START_HERE.md) ·\n[**Licence**](https://agent-ely.fr/pricing.html) ·\n[**Discussions**](https://github.com/franckolv-dev/ElyAgent/discussions)\n\n[![Elastic License v2](https://img.shields.io/badge/license-Elastic%20License%20v2-13bbc2?style=flat-square)](LICENSE)\n[![Latest release](https://img.shields.io/github/v/release/franckolv-dev/ElyAgent?style=flat-square\u0026color=13bbc2)](https://github.com/franckolv-dev/ElyAgent/releases)\n[![CI](https://img.shields.io/github/actions/workflow/status/franckolv-dev/ElyAgent/ci.yml?style=flat-square\u0026label=tests)](https://github.com/franckolv-dev/ElyAgent/actions)\n[![Stars](https://img.shields.io/github/stars/franckolv-dev/ElyAgent?style=flat-square\u0026color=13bbc2)](https://github.com/franckolv-dev/ElyAgent/stargazers)\n[![Discussions](https://img.shields.io/github/discussions/franckolv-dev/ElyAgent?style=flat-square\u0026color=13bbc2)](https://github.com/franckolv-dev/ElyAgent/discussions)\n\n[![Python](https://img.shields.io/badge/Python-3.12+-3776ab?style=flat-square\u0026logo=python\u0026logoColor=white)](https://www.python.org/)\n[![FastAPI](https://img.shields.io/badge/FastAPI-0.115+-009688?style=flat-square\u0026logo=fastapi\u0026logoColor=white)](https://fastapi.tiangolo.com/)\n[![Next.js](https://img.shields.io/badge/Next.js-16-000?style=flat-square\u0026logo=nextdotjs\u0026logoColor=white)](https://nextjs.org/)\n[![LangGraph](https://img.shields.io/badge/LangGraph-1.0-orange?style=flat-square)](https://langchain-ai.github.io/langgraph/)\n[![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white)](https://docs.docker.com/compose/)\n\n\u003c/div\u003e\n\n\u003e **À propos de la licence.** ELY est sous **[Elastic License v2](LICENSE)** — gratuit pour tout usage personnel ET tout usage professionnel interne, quelle que soit la taille de l'organisation. Vous pouvez exécuter, modifier, redistribuer. La seule restriction : pas de revente comme service hébergé / managé à des tiers (pas de SaaS). Code source intégralement publié et auditable.\n\n---\n\n## Pourquoi ELY existe\n\nLes agents IA cloud — ChatGPT, Claude, Gemini, le futur Google Remy, OpenAI Operator, Microsoft Copilot — sont puissants, mais ils partagent tous la même architecture : **vos données brutes partent vers un serveur tiers aux États-Unis.** E-mails, IBAN, noms de clients, dossiers médicaux, projets de contrats — tout transite par des modèles que vous ne contrôlez pas, dans des juridictions qui ne sont pas la vôtre.\n\nPour un particulier curieux, c'est un compromis. **Pour un cabinet d'avocats, un cabinet médical, une PME qui traite des contrats ou des dossiers clients — c'est un non-sujet.** Le secret professionnel, le RGPD, les secteurs réglementés ne permettent pas ce compromis.\n\nELY est la réponse pour les particuliers et les organisations qui ont besoin d'un agent IA **qui tourne sur leur matériel, anonymise les données sensibles avant tout appel modèle, demande l'autorisation avant chaque action irréversible, et respecte la souveraineté européenne par défaut.**\n\n---\n\n## Les quatre piliers\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### Souveraineté\n**Votre matériel. Vos données. Votre juridiction.**\n\n- Auto-hébergé sur Mac, serveur, NAS, on-premise ou cloud souverain\n- Routage local-first — les tiers simples/moyens utilisent votre modèle local (Ollama, LM Studio MLX). Mistral privilégié pour le tier C cloud, données conservées dans l'UE.\n- RGPD natif par construction · DPA disponible · modèle d'AIPD fourni\n- Zéro télémétrie · zéro phone-home · aucune dépendance cloud forcée\n- Code source auditable (Elastic License v2)\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### Sécurité\n**Les données sensibles n'atteignent jamais le LLM. Les actions irréversibles ne s'exécutent jamais sans autorisation.**\n\n- **Anonymisation PII native** — e-mails, IBAN, cartes bancaires, jetons d'API, numéros de téléphone, SIRET, identifiants salariés masqués avant la construction du prompt. Non désactivable silencieusement.\n- **HITL structurel** — chaque outil irréversible (envoi de mail, suppression, SSH, partage) attend une validation explicite. Autoriser une fois · refuser une fois · **bannir définitivement**.\n- Coffre chiffré (AES-256-GCM, zero-knowledge) pour les identifiants.\n- Journal d'audit immuable — chaque validation tracée, exportable pour la conformité.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### Intégration\n**Branché sur les outils que vos équipes utilisent déjà.**\n\n- **Google Workspace complet** — Gmail, Calendar, Drive, Docs, Sheets, Tasks, Contacts (75 outils, lecture/écriture intégrale avec HITL sur chaque action destructive)\n- 10 canaux — Web · Voix (mot-clé « Éli ») · PWA · iOS natif · Android natif · Telegram · WhatsApp · Slack · Discord · push ntfy\n- Notifications push natives pour les validations HITL (FCM + APNs) — la plupart des concurrents ne proposent qu'un proxy via bot de messagerie\n- 181 outils sur web automation, système, RAG, coffre, missions, auto-amélioration\n\n\u003c/td\u003e\n\u003ctd width=\"50%\" valign=\"top\"\u003e\n\n### Architecture\n**Multi-utilisateur. Multi-LLM. Conçu pour passer à l'échelle d'une famille ou d'une organisation.**\n\n- **Multi-utilisateur natif** — un déploiement sert une famille, une équipe, une PME. Chaque utilisateur a sa mémoire, son coffre, sa file de validation.\n- **Multi-LLM avec tiers de complexité** — assignez des modèles différents aux Tiers A (rapide) / B (standard) / C (profond) / IMG / SYS. Local pour les tâches simples, Mistral ou Anthropic pour les complexes — votre choix, sans redémarrage.\n- 11 fournisseurs LLM supportés · bascule automatique en cas de panne · cache de prompt Anthropic activé\n- Mappage canal-utilisateur empêchant l'usurpation entre plateformes\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## Ce qui rend ELY différent : elle s'améliore toute seule\n\nLa plupart des agents sont statiques. **ELY observe ses propres échecs et progresse — en toute transparence, avec vous aux commandes.**\n\n- **Agent auto-développant (compétences auto-apprises).** Quand ELY refuse, hallucine ou rate une tâche de façon répétée, une boucle en arrière-plan analyse l'échec, rédige un *playbook* réutilisable en Markdown, et un LLM externe le note. Les meilleurs deviennent des **candidates que vous validez et promouvez** depuis l'UI admin — rien ne pilote l'agent tant qu'un humain n'a pas approuvé. *(C'est la fondation de la V2 : ELY écrivant et validant ses propres outils Python.)*\n- **Auto-critique par LLM-juge.** Chaque mission autonome est notée *a posteriori* par un modèle séparé qui lit toute la trace d'étapes et détecte le **« succès en façade »** — quand l'agent prétend avoir réussi alors que les étapes montrent le contraire. Le verdict alimente la boucle d'apprentissage.\n- **Transparence radicale.** Deux tableaux de bord — `/me/learning` et `/me/state` — vous montrent exactement ce qu'ELY a appris de vous et le modèle qu'elle se fait de vous (humeur, focus, dossiers ouverts). Lisibles, modifiables, supprimables, jamais cachés.\n- **Mémoire cognitive typée.** Cinq types de mémoire (épisodique · sémantique · procédurale · erreur · contrainte) au lieu d'un blob opaque — rappelés par type, entre conversations, 100 % en local.\n- **Client MCP.** Consommez n'importe quel serveur Model Context Protocol — l'outillage d'ELY s'étend sans changement de code.\n- **Banc de régression 50 scénarios + CI nocturne.** L'auto-amélioration ne ship en sécurité que parce que chaque sous-système est verrouillé par un banc déterministe qui tourne chaque nuit.\n\n---\n\n## ELY face aux alternatives — comparatif honnête\n\nNous respectons ce que les autres projets font bien. Nous sommes explicites sur ce qui nous distingue.\n\n| | **ELY** | Autres agents auto-hébergés | Assistants IA hébergés |\n|---|:---:|:---:|:---:|\n| Auto-hébergé sur votre matériel | ✅ | ✅ | ❌ |\n| **PII anonymisées avant l'appel LLM** | ✅ Natif | ⚠️ Plugin ou absent | ❌ |\n| **HITL actif par défaut, non désactivable** | ✅ Structurel | ⚠️ Configurable | N/A |\n| **Multi-utilisateur (famille / équipe / PME)** | ✅ | ❌ Souvent mono-user | ✅ (cloud éditeur) |\n| **Routage hybride local / cloud** | ✅ Tiers explicites | ⚠️ Manuel / partiel | ❌ |\n| Apps mobiles natives (iOS + Android) | ✅ | ❌ Rare | ✅ |\n| Coffre chiffré (zero-knowledge) | ✅ AES-256-GCM | ❌ Rare | ❌ |\n| Interface française complète | ✅ | ⚠️ Souvent EN only | ⚠️ Partielle |\n| Licence | Source-available | Variable | Propriétaire |\n\n\u003e **Notre lecture honnête.** D'autres agents auto-hébergés ont des communautés plus larges et plus d'adaptateurs de canaux. **Si vous traitez des données que vous ne pouvez pas vous permettre de divulguer — les vôtres, celles de votre famille, celles de vos clients — le pipeline d'anonymisation et le HITL structurel d'ELY sont les raisons qui vous le feront choisir face aux alternatives.**\n\n---\n\n## À qui s'adresse ELY\n\nELY est conçu pour deux audiences distinctes. Toutes deux exécutent le même code.\n\n**Particuliers et familles soucieux de leur vie privée** — vous voulez un assistant IA puissant mais vous refusez d'envoyer votre boîte mail, vos relevés bancaires et votre historique médical à OpenAI ou Anthropic. Gratuit sous la licence personnelle. Jusqu'à 4 membres de la famille sur un déploiement.\n\n**PME en secteurs réglementés** — cabinets d'avocats, expertise comptable, cabinets médicaux, conseil RH, notaires, collectivités. Vous traitez des données couvertes par le secret professionnel ou le RGPD. Le pipeline d'anonymisation d'ELY fait la différence entre *« on a envisagé l'IA »* et *« on a déployé l'IA »*. L'usage professionnel interne est entièrement couvert par la licence Elastic v2 — aucun contrat additionnel requis.\n\n→ Personas détaillés et scénarios de déploiement sur **[agent-ely.fr](https://agent-ely.fr)**.\n\n---\n\n## Démarrage rapide\n\n**Pré-requis :** Docker · Docker Compose · 16 Go RAM (32 Go pour les LLM locaux) · 20 Go disque · `make` (préinstallé sur Mac et la plupart des Linux) · `openssl` (préinstallé partout).\n\n```bash\n# 1. Cloner\ngit clone https://github.com/franckolv-dev/ElyAgent.git\ncd ElyAgent\n\n# 2. Configurer — minimum requis : un secret JWT\ncp .env.example .env\n# Génère un secret hex de 64 caractères et remplace le placeholder dans .env :\nsed -i.bak \"s|^JWT_SECRET_KEY=.*|JWT_SECRET_KEY=$(openssl rand -hex 32)|\" .env \u0026\u0026 rm .env.bak\n\n# 3. Choisir un fournisseur LLM (OBLIGATOIRE — sans ça, ELY ne peut rien répondre)\n# Option gratuite la plus simple : clé Google Gemini (Anthropic / Mistral / OpenAI marchent aussi)\n# 1. Récupérer une clé gratuite sur https://aistudio.google.com/apikey\n# 2. La coller dans .env sur la ligne GEMINI_API_KEY=\n# 3. Changer ACTIVE_LLM_PROVIDER de \"ollama\" à \"gemini\" dans .env\n#\n# Liste complète des fournisseurs et liens de configuration : docs/SETUP_AI_PROVIDERS.md\n\n# 4. Lancer la stack (le premier `make up` télécharge ~2 Go d'images, durée 5-10 min)\nmake up\n\n# 5. Surveiller les logs jusqu'à ce que le backend soit prêt\nmake logs s=backend     # ctrl-C dès que tu vois \"Application startup complete\"\n\n# 6. Ouvrir http://localhost:3000 — la première inscription devient admin\n#    Politique de mot de passe : min 12 caractères, au moins 1 majuscule + 1 caractère spécial (!@#$%^\u0026*…)\n```\n\n\u003e **Sans clé LLM** : ELY démarre mais chaque message de chat échouera avec\n\u003e une erreur de connexion. La valeur par défaut `ACTIVE_LLM_PROVIDER=ollama`\n\u003e suppose qu'un Ollama tourne en local sur la machine hôte — installe-le\n\u003e depuis https://ollama.ai ou bascule sur un fournisseur cloud dans `.env`.\n\n→ **[Guide d'installation complet pour non-développeurs →](./docs/START_HERE.md)**\nQuatre scénarios, du POC local en 30 minutes (Scénario A) au déploiement à distance complet avec Cloudflare Tunnel et tous les canaux de messagerie (Scénario D).\n\n→ **[Configuration de l'extension navigateur →](./extension/chrome/README.md)** pour qu'ELY agisse dans tes vrais onglets Chrome (LinkedIn, Gmail, GitHub, Amazon…) avec tes sessions existantes. Optionnel mais c'est la fonctionnalité tueuse.\n\n→ **[Dépannage →](./docs/TROUBLESHOOTING.md)** si `make up` plante, le premier chat échoue ou des ports sont déjà occupés.\n\n---\n\n## Ce qu'ELY sait faire\n\nUne vraie UI produit sur chaque surface — **pas un terminal déguisé en site web.** Beaucoup d'agents auto-hébergés sont d'abord des outils en ligne de commande ; ELY traite l'UI comme un citoyen de première classe, y compris pour les utilisateurs non techniques.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePipeline de sécurité\u003c/strong\u003e — masquage PII · HITL · coffre · journal d'audit\u003c/summary\u003e\n\n- **Pipeline de masquage PII.** Détection regex + heuristiques ML pour e-mails, IBAN, cartes bancaires, jetons d'API, numéros de téléphone, SIRET, identifiants salariés. Placeholders déterministes. Restitution uniquement à l'affichage côté utilisateur.\n- **Validation humaine.** Bloque par défaut plus de 30 catégories d'outils. Trois actions : autoriser une fois, refuser une fois, **bannir définitivement** (persisté entre toutes les sessions futures).\n- **Coffre chiffré.** AES-256-GCM, clé dérivée du mot de passe utilisateur. Zero-knowledge — le serveur ne peut rien lire après verrouillage. Stocke clés API, jetons OAuth, identifiants de canaux.\n- **Journal d'audit.** Chaque décision de validation est journalisée de manière immuable (JSON Lines). Exportable pour la conformité.\n\n[Modèle de sécurité complet →](./docs/security.md)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMoteur multi-LLM\u003c/strong\u003e — vos clés, routage par complexité\u003c/summary\u003e\n\nConfigurez les fournisseurs dans **Réglages → Modèles IA**. Assignez chaque tier (A/B/C/IMG/SYS) à un modèle. Changez à tout moment, sans redémarrage. Les modèles locaux (Ollama, LM Studio) bénéficient de prompts compacts auto-détectés pour que les modèles 7B obéissent réellement à `tool_choice=\"required\"`.\n\n- **Cloud :** OpenAI · Anthropic · Gemini · Qwen API · Moonshot Kimi K2.x · Mistral · DeepSeek · Zhipu · OpenRouter\n- **Local :** Ollama · LM Studio (MLX sur Apple Silicon)\n- **Bascule automatique** si un fournisseur tombe — désactivable par tier pour des tests 100 % locaux.\n- **Cache de prompt Anthropic** activé là où c'est supporté (jusqu'à 90 % de réduction de coût).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMissions\u003c/strong\u003e — boucle orientée objectif, persistante entre redémarrages\u003c/summary\u003e\n\nDonnez un objectif à ELY — elle le décompose en étapes, choisit les outils, exécute, évalue, replanifie en cas d'échec et vous notifie quand c'est terminé. Survit aux redémarrages backend (checkpointer LangGraph SQLite).\n\nCinq garde-fous : budget de tokens · budget d'itérations · deadline optionnelle · HITL sur outils critiques · anti-boucle après 3 échecs consécutifs. Notifications en parallèle : web · DM Telegram · push ntfy. Chaque mission terminée est notée par un **LLM-juge** externe qui détecte le « succès en façade ».\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eAuto-amélioration \u0026 compétences apprises\u003c/strong\u003e — ELY transforme ses échecs en playbooks que vous validez\u003c/summary\u003e\n\nLes signaux d'échec (refus HITL, blocages d'hallucination, critiques de mission) alimentent une boucle d'apprentissage. Un modèle Tier-S rédige un **playbook** Markdown réutilisable, un juge externe le note, et les meilleurs deviennent des **candidates** que vous promouvez depuis l'UI admin (`/admin/learning/candidates`). Seules les compétences promues (actives) sont injectées dans le prompt de l'agent — l'humain est toujours le garde-fou. Un banc de régression 50 scénarios + CI nocturne garde toute la boucle honnête. C'est la fondation de la **V2** : ELY générant et validant ses propres outils Python.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eTransparence radicale\u003c/strong\u003e — voyez ce qu'ELY a appris de vous, et changez-le\u003c/summary\u003e\n\n`/me/learning` montre les signaux d'échec + verdicts qu'ELY a enregistrés ; `/me/state` montre le modèle vivant qu'elle a de vous (humeur, focus, sujets récents, dossiers ouverts, énergie). Tout est lisible, modifiable et supprimable par l'utilisateur — aucun profilage caché.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCanaux\u003c/strong\u003e — 10 façons de joindre ELY\u003c/summary\u003e\n\nWeb · Voix (mot-clé « Ély ») · PWA · iOS natif · Android natif · Telegram · WhatsApp · Slack · Discord · push ntfy.\n\nMême agent, même mémoire, même sécurité sur toutes les surfaces. Apps natives iOS (SwiftUI) et Android (Kotlin/Compose) avec push FCM/APNs pour les validations HITL — la plupart des concurrents ne proposent qu'un proxy via bot de messagerie.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMémoire \u0026 RAG\u003c/strong\u003e — Qdrant local + SQLite FTS5\u003c/summary\u003e\n\nPDF · TXT · Markdown · CSV · JSON · DOCX. fastembed + Qdrant pour la recherche sémantique, SQLite FTS5 pour le mot-clé. ELY décide elle-même si une recherche est utile avant de répondre, classe les résultats, cite les sources. Aucune donnée envoyée à des services d'embeddings distants — tout est local.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eArena LLM\u003c/strong\u003e — comparatif aveugle avec classement ELO\u003c/summary\u003e\n\nChoisissez deux fournisseurs configurés. Votez sans savoir lequel est lequel. Classement ELO K=32. Les fournisseurs locaux sont pingés avant d'être ajoutés — plus de matchs `[connection failed]`.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eELY Desktop\u003c/strong\u003e — daemon Go natif pour l'automatisation locale\u003c/summary\u003e\n\nConnexion WebSocket sortante — votre poste n'a jamais besoin d'être joignable depuis l'extérieur. Capacités : capture d'écran · clavier/souris · lanceur d'app · presse-papier · opérations fichiers locales (HITL) · infos système.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSmart File Manager (Android)\u003c/strong\u003e — nettoyage on-device\u003c/summary\u003e\n\nDétection de doublons exacts par MD5 (élagage par taille), doublons visuels par dHash perceptuel (Hamming ≤ 6), filtres déclaratifs (taille/âge/catégorie/extension). **Les fichiers ne transitent jamais par le backend** — tout reste sur votre téléphone.\n\n\u003c/details\u003e\n\n---\n\n## Architecture\n\n```\n┌──────────────────────────────────────────────────────────────────────┐\n│  ENTRÉE  ─→  SecurityFilter (masquage PII)  ─→  Routeur complexité   │\n│                                                          │           │\n│  RÉPONSE ←─  Restitution réelle  ←─  HITL  ←─  LangGraph             │\n│                                                          │           │\n│                                              ┌───────────┼─────────┐ │\n│                                              ▼           ▼         ▼ │\n│                                          LLM local    Outils     Cloud│\n│                                          (Ollama)     (181)    (PII- │\n│                                                                masqué)│\n└──────────────────────────────────────────────────────────────────────┘\n```\n\nUn agent multi-canal, multi-utilisateur, hybride local/cloud bâti sur FastAPI + LangGraph (backend), Next.js 16 (frontend), clients natifs iOS/Android et un daemon desktop en Go.\n\n→ [Architecture complète](./docs/architecture.md) · [Modèle de sécurité](./docs/security.md)\n\n---\n\n## Stack\n\n| Couche | Technologie |\n|--------|-------------|\n| Backend | Python 3.12 · FastAPI · LangGraph · uv |\n| Frontend | Next.js 16 · TypeScript · Tailwind · Three.js |\n| Mobile | iOS SwiftUI · Android Kotlin/Compose |\n| Daemon desktop | Go (Linux · macOS · Windows) |\n| Fournisseurs LLM | 11 (cloud + local) |\n| Mémoire | Qdrant · SQLite FTS5 · fastembed |\n| Automation navigateur | Playwright |\n| STT / TTS | faster-whisper · edge-tts |\n| Auth | JWT HS256 · Argon2id · cookie HttpOnly |\n| Coffre | AES-256-GCM, dérivation de clé par utilisateur |\n| Push | FCM · APNs · Telegram · WebSocket |\n| Infra | Docker Compose · nginx · Cloudflare Tunnel |\n\n---\n\n## Roadmap\n\n**Livré** *(mai–juin 2026)*\n- **Mémoire cognitive typée** — 5 types de mémoire, rappel transversal entre conversations\n- **Transparence radicale** — tableaux de bord `/me/learning` + `/me/state`\n- **Boucle d'auto-amélioration mesurée** — signaux d'échec, mission-critic LLM-juge, playbooks de compétences auto-apprises avec revue/promotion admin\n- **Client MCP** — consommer n'importe quel serveur Model Context Protocol\n- **Banc de régression 50 scénarios** + CI nocturne\n- Registre d'outils auto-découvert · routage multi-domaines des tâches planifiées · garde-fous anti-hallucination durcis\n\n**Suivant**\n- **V2 — Agent auto-développant.** ELY génère et valide ses *propres* outils Python : whitelist AST → ruff/mypy → sandbox eval → régression banc → HITL admin avant toute mise en service.\n- **Serveur MCP** — exposer ELY elle-même comme serveur MCP.\n\n→ [Roadmap publique complète avec efforts annoncés →](https://agent-ely.fr/roadmap.html)\n\n[Envie d'influencer la roadmap ? Ouvrez une discussion →](https://github.com/franckolv-dev/ElyAgent/discussions)\n\n---\n\n## Contribuer\n\nELY est source-available. Les contributions sont bienvenues dans le cadre de la licence :\n\n✅ Corrections de bugs · documentation · traductions · adaptateurs de canaux · améliorations de performance · couverture de tests\n⚠️ Changements architecturaux — ouvrez d'abord une issue\n❌ Les forks sans accord préalable, les suppression des en-têtes de licence et le code désactivant HITL par défaut ne sont pas autorisés\n\n[Guide de contribution complet →](./CONTRIBUTING.md) · [Code de conduite →](./CODE_OF_CONDUCT.md) · [Politique de sécurité →](./SECURITY.md) (merci de signaler les vulnérabilités par e-mail, pas en issue publique)\n\n---\n\n## Licence\n\n**Code source** — [Elastic License v2](LICENSE)\n\nEn langage clair (informatif — le fichier [LICENSE](LICENSE) fait foi) :\n\n**Vous êtes libre de** — utiliser ELY pour tout usage personnel (foyer, famille) · l'utiliser pour tout usage professionnel interne, quelle que soit la taille de l'organisation · modifier le code source et exécuter votre version · le redistribuer (modifié ou non) en conservant le LICENSE + les notices de copyright.\n\n**Vous ne pouvez pas** — proposer ELY comme service hébergé / managé à des tiers (pas de revente SaaS) · retirer ou masquer les notices de copyright / licence · désactiver ou contourner un éventuel mécanisme de clé de licence.\n\n→ [Résumé en langage clair sur le site officiel →](https://agent-ely.fr/pricing.html)\n\n**Marques.** Le nom **Ely** (acronyme de *« Exactly Like You »*, prononcé « Éli »), **agent-ely.fr**, l'avatar 3D et le logo éclair sont protégés indépendamment du code.\n\n**Contact :** [contact@agent-ely.fr](mailto:contact@agent-ely.fr) — réponse sous 48 h, toujours.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Construit en Nouvelle-Aquitaine, France **\n\n[Site web](https://agent-ely.fr) · [Documentation](./docs/START_HERE.md) · [Newsletter](https://agent-ely.fr/newsletter.html)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranckolv-dev%2Felyagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranckolv-dev%2Felyagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranckolv-dev%2Felyagent/lists"}