À propos du projet

abmind est un système de mémoire persistante conçu pour les agents IA qui fonctionnent en continu, en particulier ceux qui gèrent des conversations multilingues. Ce n'est pas un simple wrapper de base de données vectorielle mais un moteur complet de gestion de mémoire construit sur SQLite. **Architecture centrale** - **Ingestion** : Les messages sont enregistrés, puis une extraction en ligne crée des souvenirs typés, classifiés et notés. - **Rappel** : Les requêtes déclenchent une recherche à 4 couches : FTS5 plein texte (anglais), FTS5 plein texte (langue d'origine), correspondance floue par trigrammes et embeddings sémantiques (similarité cosinus). Les résultats sont classés, dédupliqués et filtrés par classification. - **Sleep** : Un pipeline de maintenance nocturne effectue des résumés quotidiens, l'extraction, l'analyse rétrospective, l'attribution de sujets, le darwinisme mémoriel (promotion/rétrogradation/fusion), la traduction, le suivi des arcs émotionnels, la consolidation et le ramasse-miettes. Il exécute 10 à 14 appels LLM par cycle de manière autonome. **Fonctionnalités clés** - **Langues agglutinantes** : Utilise la recherche floue par trigrammes en complément de FTS5 pour gérer des langues comme le japonais, le turc et le hongrois où les limites de mots ne sont pas claires. Cela permet de stocker et de rappeler dans n'importe quelle langue. - **Coffre d'identifiants** : Les secrets sont chiffrés au repos (AES-256-GCM), expurgés de l'historique de conversation et uniquement récupérables par le propriétaire via un rappel filtré par classification. Les sauvegardes ne contiennent jamais d'identifiants en clair. - **Contexte multi-résolution** : Offre trois niveaux de zoom—tours verbatim récents, atomes compressés par tour (format ABM-L avec réduction de 3x des tokens) et résumés thématiques à long terme—donnant 3x plus de couverture dans le même budget de tokens. - **Classification** : Utilise les codes d'amirauté OTAN (0 public à 3 secret/chiffré) avec des scores de confiance, d'intégrité et de crédibilité. Le rappel filtre selon l'habilitation de l'utilisateur, et l'isolation multi-utilisateur empêche les fuites entre utilisateurs. - **Détection d'injection** : 14 catégories de détection (injection de prompt, jailbreak, détournement de rôle, etc.) bloquent les entrées malveillantes avant qu'elles n'entrent en mémoire, avec une sensibilité configurable. **Voies d'intégration** - **Bibliothèque** : Importer `MemoryManager` dans n'importe quel agent Node.js. - **CLI** : Commandes comme `abmind store`, `abmind recall`, `abmind sleep` et `abmind mcp`. - **Serveur MCP** : Démarre un serveur MCP stdio pour les éditeurs et hôtes comme kiro-cli, Claude Code, Codex CLI, Gemini CLI, Cursor et OpenCode. - **Hooks d'agent** : Compatible avec Kiro CLI, Claude Code, Gemini CLI et Codex. - **Frameworks** : Fonctionne comme plugin pour Hermes Agent, emplacement mémoire natif pour OpenClaw et mémoire in-process pour abTARS. **Stockage des données** L'emplacement par défaut est `~/.abmind/` (remplaçable avec `ABMIND_HOME`). Il contient une base de données SQLite (`memory.db`) pour les messages, les souvenirs extraits et les embeddings, ainsi que des résumés narratifs quotidiens et des journaux d'audit de sleep. Les prompts de sleep peuvent être remplacés. **Configuration LLM** La maintenance sleep nécessite de définir `ABMIND_LLM_CMD` avec un espace réservé `{PROMPT_FILE}`, prenant en charge des commandes comme `kiro-cli chat --no-tool-use < {PROMPT_FILE}` ou `cat {PROMPT_FILE} | claude -p`. **Version** : 0.2.7 | **Licence** : Apache 2.0