An open API service indexing awesome lists of open source software.

https://github.com/franckolv-dev/elyagent

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.
https://github.com/franckolv-dev/elyagent

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

Last synced: 2 days ago
JSON representation

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.

Awesome Lists containing this project

README

          

English · Français

ELY — agent IA souverain

# ELY

### Un agent IA auto-hébergé qui anonymise les données sensibles *avant* tout appel LLM.

Multi-utilisateur · multi-canal · RGPD natif · validation humaine sur chaque action irréversible.
Conçu pour les particuliers, les familles et les PME qui ne peuvent pas se permettre de fuiter leurs données vers une IA tierce.

[**Site web**](https://agent-ely.fr) ·
[**Documentation**](./docs/START_HERE.md) ·
[**Licence**](https://agent-ely.fr/pricing.html) ·
[**Discussions**](https://github.com/franckolv-dev/ElyAgent/discussions)

[![Elastic License v2](https://img.shields.io/badge/license-Elastic%20License%20v2-13bbc2?style=flat-square)](LICENSE)
[![Latest release](https://img.shields.io/github/v/release/franckolv-dev/ElyAgent?style=flat-square&color=13bbc2)](https://github.com/franckolv-dev/ElyAgent/releases)
[![CI](https://img.shields.io/github/actions/workflow/status/franckolv-dev/ElyAgent/ci.yml?style=flat-square&label=tests)](https://github.com/franckolv-dev/ElyAgent/actions)
[![Stars](https://img.shields.io/github/stars/franckolv-dev/ElyAgent?style=flat-square&color=13bbc2)](https://github.com/franckolv-dev/ElyAgent/stargazers)
[![Discussions](https://img.shields.io/github/discussions/franckolv-dev/ElyAgent?style=flat-square&color=13bbc2)](https://github.com/franckolv-dev/ElyAgent/discussions)

[![Python](https://img.shields.io/badge/Python-3.12+-3776ab?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.115+-009688?style=flat-square&logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/)
[![Next.js](https://img.shields.io/badge/Next.js-16-000?style=flat-square&logo=nextdotjs&logoColor=white)](https://nextjs.org/)
[![LangGraph](https://img.shields.io/badge/LangGraph-1.0-orange?style=flat-square)](https://langchain-ai.github.io/langgraph/)
[![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square&logo=docker&logoColor=white)](https://docs.docker.com/compose/)

> **À 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.

---

## Pourquoi ELY existe

Les 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.

Pour 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.

ELY 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.**

---

## Les quatre piliers

### Souveraineté
**Votre matériel. Vos données. Votre juridiction.**

- Auto-hébergé sur Mac, serveur, NAS, on-premise ou cloud souverain
- 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.
- RGPD natif par construction · DPA disponible · modèle d'AIPD fourni
- Zéro télémétrie · zéro phone-home · aucune dépendance cloud forcée
- Code source auditable (Elastic License v2)

### Sécurité
**Les données sensibles n'atteignent jamais le LLM. Les actions irréversibles ne s'exécutent jamais sans autorisation.**

- **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.
- **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**.
- Coffre chiffré (AES-256-GCM, zero-knowledge) pour les identifiants.
- Journal d'audit immuable — chaque validation tracée, exportable pour la conformité.

### Intégration
**Branché sur les outils que vos équipes utilisent déjà.**

- **Google Workspace complet** — Gmail, Calendar, Drive, Docs, Sheets, Tasks, Contacts (75 outils, lecture/écriture intégrale avec HITL sur chaque action destructive)
- 10 canaux — Web · Voix (mot-clé « Éli ») · PWA · iOS natif · Android natif · Telegram · WhatsApp · Slack · Discord · push ntfy
- Notifications push natives pour les validations HITL (FCM + APNs) — la plupart des concurrents ne proposent qu'un proxy via bot de messagerie
- 181 outils sur web automation, système, RAG, coffre, missions, auto-amélioration

### Architecture
**Multi-utilisateur. Multi-LLM. Conçu pour passer à l'échelle d'une famille ou d'une organisation.**

- **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.
- **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.
- 11 fournisseurs LLM supportés · bascule automatique en cas de panne · cache de prompt Anthropic activé
- Mappage canal-utilisateur empêchant l'usurpation entre plateformes

---

## Ce qui rend ELY différent : elle s'améliore toute seule

La plupart des agents sont statiques. **ELY observe ses propres échecs et progresse — en toute transparence, avec vous aux commandes.**

- **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.)*
- **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.
- **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.
- **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.
- **Client MCP.** Consommez n'importe quel serveur Model Context Protocol — l'outillage d'ELY s'étend sans changement de code.
- **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.

---

## ELY face aux alternatives — comparatif honnête

Nous respectons ce que les autres projets font bien. Nous sommes explicites sur ce qui nous distingue.

| | **ELY** | Autres agents auto-hébergés | Assistants IA hébergés |
|---|:---:|:---:|:---:|
| Auto-hébergé sur votre matériel | ✅ | ✅ | ❌ |
| **PII anonymisées avant l'appel LLM** | ✅ Natif | ⚠️ Plugin ou absent | ❌ |
| **HITL actif par défaut, non désactivable** | ✅ Structurel | ⚠️ Configurable | N/A |
| **Multi-utilisateur (famille / équipe / PME)** | ✅ | ❌ Souvent mono-user | ✅ (cloud éditeur) |
| **Routage hybride local / cloud** | ✅ Tiers explicites | ⚠️ Manuel / partiel | ❌ |
| Apps mobiles natives (iOS + Android) | ✅ | ❌ Rare | ✅ |
| Coffre chiffré (zero-knowledge) | ✅ AES-256-GCM | ❌ Rare | ❌ |
| Interface française complète | ✅ | ⚠️ Souvent EN only | ⚠️ Partielle |
| Licence | Source-available | Variable | Propriétaire |

> **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.**

---

## À qui s'adresse ELY

ELY est conçu pour deux audiences distinctes. Toutes deux exécutent le même code.

**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.

**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.

→ Personas détaillés et scénarios de déploiement sur **[agent-ely.fr](https://agent-ely.fr)**.

---

## Démarrage rapide

**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).

```bash
# 1. Cloner
git clone https://github.com/franckolv-dev/ElyAgent.git
cd ElyAgent

# 2. Configurer — minimum requis : un secret JWT
cp .env.example .env
# Génère un secret hex de 64 caractères et remplace le placeholder dans .env :
sed -i.bak "s|^JWT_SECRET_KEY=.*|JWT_SECRET_KEY=$(openssl rand -hex 32)|" .env && rm .env.bak

# 3. Choisir un fournisseur LLM (OBLIGATOIRE — sans ça, ELY ne peut rien répondre)
# Option gratuite la plus simple : clé Google Gemini (Anthropic / Mistral / OpenAI marchent aussi)
# 1. Récupérer une clé gratuite sur https://aistudio.google.com/apikey
# 2. La coller dans .env sur la ligne GEMINI_API_KEY=
# 3. Changer ACTIVE_LLM_PROVIDER de "ollama" à "gemini" dans .env
#
# Liste complète des fournisseurs et liens de configuration : docs/SETUP_AI_PROVIDERS.md

# 4. Lancer la stack (le premier `make up` télécharge ~2 Go d'images, durée 5-10 min)
make up

# 5. Surveiller les logs jusqu'à ce que le backend soit prêt
make logs s=backend # ctrl-C dès que tu vois "Application startup complete"

# 6. Ouvrir http://localhost:3000 — la première inscription devient admin
# Politique de mot de passe : min 12 caractères, au moins 1 majuscule + 1 caractère spécial (!@#$%^&*…)
```

> **Sans clé LLM** : ELY démarre mais chaque message de chat échouera avec
> une erreur de connexion. La valeur par défaut `ACTIVE_LLM_PROVIDER=ollama`
> suppose qu'un Ollama tourne en local sur la machine hôte — installe-le
> depuis https://ollama.ai ou bascule sur un fournisseur cloud dans `.env`.

→ **[Guide d'installation complet pour non-développeurs →](./docs/START_HERE.md)**
Quatre 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).

→ **[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.

→ **[Dépannage →](./docs/TROUBLESHOOTING.md)** si `make up` plante, le premier chat échoue ou des ports sont déjà occupés.

---

## Ce qu'ELY sait faire

Une 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.

Pipeline de sécurité — masquage PII · HITL · coffre · journal d'audit

- **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.
- **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).
- **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.
- **Journal d'audit.** Chaque décision de validation est journalisée de manière immuable (JSON Lines). Exportable pour la conformité.

[Modèle de sécurité complet →](./docs/security.md)

Moteur multi-LLM — vos clés, routage par complexité

Configurez 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"`.

- **Cloud :** OpenAI · Anthropic · Gemini · Qwen API · Moonshot Kimi K2.x · Mistral · DeepSeek · Zhipu · OpenRouter
- **Local :** Ollama · LM Studio (MLX sur Apple Silicon)
- **Bascule automatique** si un fournisseur tombe — désactivable par tier pour des tests 100 % locaux.
- **Cache de prompt Anthropic** activé là où c'est supporté (jusqu'à 90 % de réduction de coût).

Missions — boucle orientée objectif, persistante entre redémarrages

Donnez 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).

Cinq 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 ».

Auto-amélioration & compétences apprises — ELY transforme ses échecs en playbooks que vous validez

Les 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.

Transparence radicale — voyez ce qu'ELY a appris de vous, et changez-le

`/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é.

Canaux — 10 façons de joindre ELY

Web · Voix (mot-clé « Ély ») · PWA · iOS natif · Android natif · Telegram · WhatsApp · Slack · Discord · push ntfy.

Mê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.

Mémoire & RAG — Qdrant local + SQLite FTS5

PDF · 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.

Arena LLM — comparatif aveugle avec classement ELO

Choisissez 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]`.

ELY Desktop — daemon Go natif pour l'automatisation locale

Connexion 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.

Smart File Manager (Android) — nettoyage on-device

Dé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.

---

## Architecture

```
┌──────────────────────────────────────────────────────────────────────┐
│ ENTRÉE ─→ SecurityFilter (masquage PII) ─→ Routeur complexité │
│ │ │
│ RÉPONSE ←─ Restitution réelle ←─ HITL ←─ LangGraph │
│ │ │
│ ┌───────────┼─────────┐ │
│ ▼ ▼ ▼ │
│ LLM local Outils Cloud│
│ (Ollama) (181) (PII- │
│ masqué)│
└──────────────────────────────────────────────────────────────────────┘
```

Un 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.

→ [Architecture complète](./docs/architecture.md) · [Modèle de sécurité](./docs/security.md)

---

## Stack

| Couche | Technologie |
|--------|-------------|
| Backend | Python 3.12 · FastAPI · LangGraph · uv |
| Frontend | Next.js 16 · TypeScript · Tailwind · Three.js |
| Mobile | iOS SwiftUI · Android Kotlin/Compose |
| Daemon desktop | Go (Linux · macOS · Windows) |
| Fournisseurs LLM | 11 (cloud + local) |
| Mémoire | Qdrant · SQLite FTS5 · fastembed |
| Automation navigateur | Playwright |
| STT / TTS | faster-whisper · edge-tts |
| Auth | JWT HS256 · Argon2id · cookie HttpOnly |
| Coffre | AES-256-GCM, dérivation de clé par utilisateur |
| Push | FCM · APNs · Telegram · WebSocket |
| Infra | Docker Compose · nginx · Cloudflare Tunnel |

---

## Roadmap

**Livré** *(mai–juin 2026)*
- **Mémoire cognitive typée** — 5 types de mémoire, rappel transversal entre conversations
- **Transparence radicale** — tableaux de bord `/me/learning` + `/me/state`
- **Boucle d'auto-amélioration mesurée** — signaux d'échec, mission-critic LLM-juge, playbooks de compétences auto-apprises avec revue/promotion admin
- **Client MCP** — consommer n'importe quel serveur Model Context Protocol
- **Banc de régression 50 scénarios** + CI nocturne
- Registre d'outils auto-découvert · routage multi-domaines des tâches planifiées · garde-fous anti-hallucination durcis

**Suivant**
- **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.
- **Serveur MCP** — exposer ELY elle-même comme serveur MCP.

→ [Roadmap publique complète avec efforts annoncés →](https://agent-ely.fr/roadmap.html)

[Envie d'influencer la roadmap ? Ouvrez une discussion →](https://github.com/franckolv-dev/ElyAgent/discussions)

---

## Contribuer

ELY est source-available. Les contributions sont bienvenues dans le cadre de la licence :

✅ Corrections de bugs · documentation · traductions · adaptateurs de canaux · améliorations de performance · couverture de tests
⚠️ Changements architecturaux — ouvrez d'abord une issue
❌ 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

[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)

---

## Licence

**Code source** — [Elastic License v2](LICENSE)

En langage clair (informatif — le fichier [LICENSE](LICENSE) fait foi) :

**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.

**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.

→ [Résumé en langage clair sur le site officiel →](https://agent-ely.fr/pricing.html)

**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.

**Contact :** [contact@agent-ely.fr](mailto:contact@agent-ely.fr) — réponse sous 48 h, toujours.

---

**Construit en Nouvelle-Aquitaine, France **

[Site web](https://agent-ely.fr) · [Documentation](./docs/START_HERE.md) · [Newsletter](https://agent-ely.fr/newsletter.html)