Serveur de mémoire MCP open-source avec graphe de connaissances et fonctionnalités d'apprentissage

Un serveur MCP open-source nommé cuba-memorys fournit une mémoire persistente pour les agents IA, allant au-delà des simples bases RAG ou vectorielles. Écrit en Rust avec un backend PostgreSQL + pgvector, il implémente une architecture de graphe de connaissances avec des capacités d'apprentissage.
Architecture et fonctionnalités
Le système stocke des entités, des observations et des relations typées plutôt que des documents plats. Les fonctionnalités clés incluent :
- Décroissance exponentielle — Les souvenirs s'estompent de manière réaliste en utilisant importance = importance * exp(-0,693 * jours/demi-vie) avec une demi-vie de 30 jours
- Métaplasticité hebbienne + BCM — Règle d'Oja avec seuil glissant EMA ; les souvenirs se renforcent avec l'accès et s'auto-normalisent via BCM
- Fusion RRF à 4 signaux (k=60) — Combine ts_rank + trigrammes + pgvector HNSW + importance avec une pondération routée par entropie pour détecter les requêtes dominées par des mots-clés vs sémantiques
- Détection de communautés Leiden — Algorithme de Traag et al. 2019 pour découvrir des clusters dans le graphe de connaissances
- PageRank personnalisé — Classe l'importance des entités basée sur la topologie du graphe
- Vérification anti-hallucination — Triangule les affirmations par rapport aux connaissances stockées avec un système de confiance gradué
- Mémoire d'erreur avec détection de motifs — Déclenche des avertissements lorsque ≥3 erreurs similaires se produisent
Benchmarks de performance
L'implémentation en Rust montre des améliorations significatives par rapport à la version Python originale :
- Taille binaire : ~50 Mo venv (Python) vs 7,6 Mo (Rust)
- Création d'entité : ~2 ms (Python) vs 498 μs (Rust)
- Recherche hybride : <5 ms (Python) vs 2,52 ms (Rust)
- Utilisation mémoire : ~120 Mo (Python) vs ~15 Mo (Rust)
- Dépendances : 12 packages (Python) vs 0 à l'exécution (Rust)
Détails d'implémentation
Le serveur fournit 13 outils MCP et fonctionne avec tout client compatible MCP, y compris Claude Code, Cursor et Windsurf. Il est auto-hébergé avec un backend PostgreSQL et ne fait aucun appel API externe. Tous les algorithmes sont basés sur des articles évalués par des pairs avec des citations dans le README.
Options d'installation :
pip install cuba-memorys
ou
npm install -g cuba-memorys
Le projet est disponible sous licence CC BY-NC 4.0 sur GitHub.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Cull : Moteur de curation de jeux de données open source pour les pipelines d'images IA
Cull extrait des images de plus de 340 sources, dont Civitai, X/Twitter, Reddit, Discord et les sites booru, les classe avec un modèle vision-langage via LM Studio local ou Groq, et les trie dans des dossiers de catégories avec des prompts SD et des enregistrements d'audit.

Pourquoi les flux de travail déterministes surpassent l'orchestration pilotée par l'IA pour les systèmes d'agents
Un développeur avec un an d'expérience dans la construction de systèmes d'agents partage que l'orchestration pilotée par l'IA a échoué de manière fiable en raison d'un routage non déterministe, d'erreurs cumulatives, d'une explosion des coûts et d'un débogage impossible. Passer à des workflows déterministes avec une orchestration basée sur du code a éliminé les échecs d'orchestration.

Jan-Code-4B : Un modèle léger optimisé pour le code, destiné au développement local
L'équipe Jan a publié Jan-Code-4B, un modèle de 4 milliards de paramètres optimisé pour le code, basé sur Jan-v3-4B-base-instruct. Conçu comme un remplacement direct pour Haiku dans Claude Code, il offre une assistance améliorée pour le codage tout en fonctionnant localement.

Sens : SDK Go pour les assertions de test basées sur les LLM et l'extraction de texte structuré
Sense est un SDK Go qui utilise Claude pour deux fonctions principales : évaluer les sorties non déterministes dans les tests avec des assertions en langage naturel, et extraire des structures typées de textes non structurés via la réflexion et l'utilisation forcée d'outils.