Spacebot : agent IA multi-utilisateur pour équipes et communautés avec exécution concurrente
https://github.com/spacedriveapp/spacebot
📌 SPACEBOT est un agent IA conçu pour les équipes et communautés, capable de gérer des conversations simultanées sans blocage. Développé par l’équipe Spacedrive en Rust, ce logiciel open-source rompt avec les frameworks traditionnels qui exécutent tout dans une seule session LLM. L’architecture divise les responsabilités en processus spécialisés qui opèrent indépendamment : un channel par conversation reste toujours réactif pendant que les branches réfléchissent en arrière-plan, les workers exécutent les tâches lourdes, les compactors gèrent la taille du contexte, et le cortex supervise la mémoire globale. Cette approche permet à cinquante personnes d’interagir simultanément sans attente.
L’installation se fait de trois manières : via spacebot.sh pour un déploiement hébergé en un clic, en self-hosted avec un binaire Rust unique sans dépendances serveur, ou via Docker avec une image tout-en-un. Les connexions natives aux plateformes de messagerie incluent Discord, Slack, Telegram, Twitch et un webchat intégrable. Chaque plateforme bénéficie de fonctionnalités avancées : regroupement de messages rapides, gestion de fichiers, messages riches avec embeds et boutons, threading automatique, réactions, indicateurs de frappe, historique de contexte, et permissions par canal.
Points clés
- 🔄 Exécution concurrente — Architecture multi-processus où channels, branches, workers et cortex opèrent indépendamment sans blocage mutuel
- 💬 Multi-plateforme native — Adapters Discord, Slack, Telegram, Twitch avec support complet des fonctionnalités de chaque plateforme
- 🧠 Mémoire typée et graphique — Huit types de mémoires (Fact, Preference, Decision, Identity, Event, Observation, Goal, Todo) reliées par des edges sémantiques
- 🛠️ Outils intégrés — Shell, fichiers, exécution de programmes, navigateur headless Chrome, recherche web Brave et agent de codage OpenCode
- 📊 Routage de modèles à 4 niveaux — Routing structurel, par type de tâche, par complexité de prompt, et chaînes de fallback automatiques
- 🔌 Système de skills extensible — Intégration avec skills.sh, compatibilité OpenClaw, injection dans les workers et ressources packagées
- 🔐 Sécurité multicouche — Isolation des credentials, sandbox système, détection de fuites, et chiffrement AES-256-GCM
- ⏰ Cron jobs natifs — Planification expressions cron, intervals legacy, timeouts configurables et circuit breaker
Le système de mémoire distingue Spacebot des autres agents IA. Au lieu de fichiers markdown ou de blocs non structurés dans une base vectorielle, les mémoires sont des objets structurés dans SQLite avec métadonnées typées et connexions de graphe. Chaque mémoire possède un type, un score d’importance et des arêtes la reliant à des mémoires connexes. L’agent ne se contente pas de se souvenir — il distingue les faits appris, les décisions prises, les objectifs poursuivis et les préférences exprimées. Le cortex génère périodiquement un bulletin de mémoire injecté dans chaque conversation, assurant une connaissance cohérente à travers tous les canaux.
Les workers disposent d’outils pour le travail réel : Shell exécute des commandes avec timeouts configurables, File gère lecture/écriture/liste de fichiers avec création automatique de répertoires, Exec lance des programmes spécifiques avec arguments et variables d’environnement, OpenCode spawne un agent de codage persistant avec exploration de codebase, conscience LSP et gestion profonde du contexte, Browser automatise Chrome headless avec arbre d’accessibilité, et Brave search effectue des recherches web avec filtres de fraîcheur.
Le routage de modèles à quatre niveaux choisit le bon modèle pour chaque appel LLM. Le routing structurel gère le cas courant — les types de processus et tâches sont connus au spawn. Le routing par prompt analyse les messages utilisateur pour dégrader les requêtes simples vers des modèles moins coûteux. Les chaînes de fallback prennent le relais automatiquement lorsqu’un modèle retourne 429 ou 502. Les profils par agent (eco, balanced, premium) ajustent les mappings de modèles selon le budget.
L’intégration MCP (Model Context Protocol) connecte les workers à des serveurs MCP externes pour un accès arbitraire aux outils — bases de données, APIs, produits SaaS, intégrations personnalisées — sans implémentations Rust natives. Chaque agent déclare ses propres serveurs MCP dans config.toml, les deux transports stdio et HTTP sont supportés, les outils sont découverts automatiquement via le protocole MCP et enregistrés sur les ToolServers avec noms namespacés, et la réconciliation est hot-reloadable.
La sécurité est conçue en couches. Les credentials sont divisés en système (clés API LLM, tokens messagerie — jamais exposés aux sous-processus) et outil (credentials CLI comme GH_TOKEN — injectés comme variables d’environnement dans les workers). Le sandbox processus exécute shell et exec dans un confinement filesystem système. La détection de fuites scanne chaque argument d’outil et résultat pour des motifs de secrets, les fuites dans les arguments sautent l’appel d’outil, les fuites dans les sorties terminent l’agent. Le chiffrement au repos avec AES-256-GCM utilise une clé dérivée via Argon2id stockée dans le trousseau d’identités OS.
Les skills extensible s’intègrent avec skills.sh pour installer n’importe quelle compétence de l’écosystème public avec une commande. La gestion CLI permet d’installer, lister, supprimer et inspecter les skills. Les compétences sont injectées dans les system prompts des workers pour des tâches spécialisées avec des scripts, références et assets packagés. La compatibilité OpenClaw permet de déposer des skills OpenClaw existants ou n’importe quel skill de skills.sh.
Pour les communautés Discord, Spacebot gère les conversations concurrentes à travers les channels et threads, se souvient du contexte de chaque membre, et fait un vrai travail — code, recherche, opérations fichiers — sans devenir sombre. Pour les équipes Slack, chaque channel obtient une conversation dédiée avec mémoire partagée. Pour les configurations multi-agent, plusieurs agents peuvent tourner sur une instance avec identité, mémoire et permissions de sécurité distinctes. Un binaire, un déploiement.
