À propos du projet
Fermix est une plateforme personnelle d'agents IA auto-hébergée écrite en Elixir/OTP. Elle fonctionne comme un démon en arrière-plan sur votre propre machine et vous atteint via les applications de chat que vous utilisez déjà. Vous apportez votre propre clé de fournisseur de modèle—il n'y a pas de cloud Fermix, et votre configuration, votre historique et vos journaux restent dans `~/.fermix`.
**Fonctionnalités clés :**
- **Un seul runtime :** Tout est une seule application Elixir/OTP dans une VM BEAM—pas de ponts HTTP, de pools de workers externes ou de courtiers de messages. Les agents persistants, les conversations concurrentes et les sous-agents in-process découlent tous de cette conception.
- **Vous atteint partout :** Telegram, WhatsApp, Slack, Discord, Signal et une CLI locale aboutissent tous dans la même boucle d'agent. Un compagnon iPhone propriétaire (canal mobile) est en préparation, dormant derrière un drapeau de configuration jusqu'à la sortie de l'application.
- **Apportez votre propre modèle :** Sept fournisseurs—OpenAI, OpenAI Codex, Anthropic, SpaceXAI, OpenRouter, Mistral et un Ollama local sans clé—choisis comme principal avec une chaîne de repli automatique. Les sous-agents et les tâches planifiées peuvent être épinglés à leur propre modèle moins cher.
- **Toujours actif :** Les tâches planifiées exécutent des résumés, des surveillants, des rappels et des vérifications—chacune isolée, limitée, stockée durablement et livrée via vos canaux. Le travail survit aux redémarrages.
- **Autonome :** Livré comme un binaire auto-extractible par plateforme et installe une unité de service OS au premier lancement.
**Démarrage rapide :**
```bash
brew install tezra-io/tap/fermix
fermix setup
```
`fermix setup` installe et démarre le service en arrière-plan, puis imprime l'URL de configuration et ouvre `http://127.0.0.1:4030/setup` dans votre navigateur pour terminer la configuration. Sur un hôte sans interface graphique, il exécute un assistant terminal à la place (`--cli` le force) ; `--no-service` configure sans installer le service, et `--no-browser` imprime l'URL au lieu d'ouvrir un navigateur.
**Installation :**
- Homebrew (macOS, Linux) : `brew install tezra-io/tap/fermix` (nécessite `cosign` pour la vérification des plugins)
- Compilation à partir des sources : Nécessite Elixir ≥ 1.17, Erlang/OTP 28 et Zig 0.15.2. Clonez, `mix deps.get`, compilez les assets, empaquetez avec Burrito, installez le binaire, puis `fermix setup`.
**Configuration :**
`fermix setup` est le point d'entrée unique pour la configuration initiale. Il écrit un instantané typé dans `~/.fermix/config.toml` et crée des racines d'espace de travail (`skills`, `journals`, `realtime`, `traces`, `logs`, `auth.json`). Les modes d'authentification des fournisseurs (clé API vs OAuth), la configuration des canaux et la planification sont couverts dans le README.
Précédence d'exécution : valeurs par défaut à la compilation → état de configuration persisté → remplacements par variables d'environnement.
La livraison des tâches planifiées peut cibler une cible explicite par tâche ou une cible de canal par défaut spécifique à cron dans `config.toml`. La transcription des notes vocales est enfichable (OpenAI, SpaceXAI, Deepgram).
**Variables d'environnement :**
Les variables d'identifiants sont facultatives si vous utilisez `fermix setup` (qui stocke les secrets dans votre trousseau OS). Pour les déploiements sans interface graphique/conteneurs, définissez `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `XAI_API_KEY`, `OPENROUTER_API_KEY`, `MISTRAL_API_KEY`, plus les jetons de canal (WhatsApp, Discord, Slack, Signal) et les boutons opérationnels comme `FERMIX_HOME`, `FERMIX_TRACE_DIR`, `FERMIX_LOG_FILE`, `FERMIX_HTTP_BIND` et les paramètres vocaux Realtime.
**Utilisation :**
- Contrôle du démon : `fermix service install`, `start`, `status`, `ask`, `logs`, `stop`, `restart`, `service uninstall`
- Compagnon vocal local (FermixPet) : application macOS native facultative qui parle au démon via un socket Unix ; activez via la page de configuration, vérifiez avec `fermix voice status`
- Canaux : Telegram (long-poll), WhatsApp (webhook), Slack (Events API), Discord (Gateway), Signal (`signal-cli`), CLI et mobile (dormant)
- Points de terminaison HTTP : `/health/live`, `/health/ready`, `/health`, `/setup`, webhooks WhatsApp/Slack
**Référence CLI :** Inclut `setup`, `auth login`, `run`, `service install/uninstall`, `start/stop/restart`, `status`, `health`, `voice status`, `pair`, `devices list/revoke`, `ask`/`chat`, `sandbox explain`, `grant path`, `revoke path`, `agents`, `capabilities`, `skills`, `plugins`, `memory`, `logs`, `upgrade`, `doctor`, `version`, `help`.
**Commandes de canal :** `/compact`, `/new`, `/clear`, `/help`, `/whoami`, `/background`, `/tasks`, `/stop`, `/ultra`, `/sandbox`, `/soul`—fonctionnent tous sur les canaux via le répartiteur partagé.
**Architecture :**
Projet parapluie avec quatre applications : `fermix_core` (agents, fournisseurs, outils, mémoire, configuration, CLI, authentification, traçage), `fermix_channels` (Telegram, WhatsApp, Slack, Discord, Signal, CLI), `fermix_web` (Phoenix : setup LiveView, santé, entrée webhook) et `fermix_nif` (NIF C pour le shim de signal de groupe de processus).
Flux de données : adaptateur de canal → Dispatcher → MainAgent → exécution de capacité → fournisseur → LLM → réponse.
Les outils intégrés incluent `shell`, `file_read`, `file_write`, `file_edit`, `glob_search`, `content_search`, `git_read`, `git_write`, `web_fetch`, `web_search`, `place_search` et `subagents`. Les capacités (skills) sont des fonctionnalités séparées, installables par l'utilisateur, avec leurs propres instructions et limites d'outils autorisés.
Fermix est en statut alpha (pré-1.0), sous licence MIT, et nécessite Elixir ≥ 1.17 et Erlang/OTP ≥ 28.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.