CortHeXis
Moteur de mémoire open source pour agents IA

La mémoire de vos agents qui se relit, se corrige, et prouve qu'elle marche.

CortHeXis fait d'un dossier de notes une mémoire durable : rappelée à chaque tour avant que l'agent réponde, relue toutes les heures par une revue qui trouve ce qui casse, et mesurée par un banc de questions plutôt que jugée à l'impression. Seul, avec tout agent qui parle MCP — ou intégré à SOKKAN.

Apache-2.0MCP · Claude Code et autresNinabot Sàrl · Genève
La question de l'utilisateur › comment on termine une mission ?
Rappel CortHeXis · avant la réponse
  1. 01mission-clore-proprement0,59
  2. 02methode-restitution-en-une-page0,42
  3. 03prospection-recommandation0,34
  4. 04mission-comite-pilotage0,33
Revue de santé
92/1002 constats · 1 lien cassé · 3 orphelines

Vraie recherche et vraie revue de la démo publique (corpus fictif), relevées le 05.10.2026.

Le produit, en six temps

Ce qui se passe dans une mémoire qui se tient.

La scène suit un corpus de démonstration public, mesuré sur la vraie démo : des notes, des liens, un rappel, une casse, une revue, un score.

Le graphe 38 notes · 60 traits
projet règle référence nous lien cassé
01 — Les notes

Un fait par fichier, et rien d'autre.

Chaque nœud est un fichier markdown : une description qui sert de hameçon, un corps, une date. La couleur dit le type — un chantier, une règle apprise, une référence, ou qui vous êtes. La taille dit le poids en mots.

Les 38 notes affichées sont le corpus de démonstration Mirabeau Conseil, un cabinet fictif : un conseil en organisation romand de deux associés, ses clients, ses missions, ses méthodes, ses outils et ses pièges. Quatorze familles, 5 253 mots — la taille d'une mémoire d'entreprise au bout de quelques mois.

02 — Les liens

Le savoir n'est utile que relié.

Un [[lien]] dans une note crée une synapse. « Clore une mission proprement » tire sur la restitution en une page, sur « comment on écrit », sur la règle RGPD/nLPD et sur la prospection : quatre arêtes depuis une seule note, et c'est de là que le reste se déplie.

70 liens dans le corpus, 60 traits à l'écran : une note et sa mission qui se citent l'une l'autre ne font qu'une synapse. Les impulsions qui circulent sont le rappel en action — la recherche sémantique part d'une note et se propage à ses voisines.

03 — Le rappel

À chaque tour, avant que l'agent réponde.

La question part dans la mémoire, et les notes qui y répondent arrivent dans le contexte de l'agent — sans qu'il ait à penser à chercher. Ici, « comment on termine une mission ? » fait remonter 4 notes, classées par un score qui mêle le sens et les mots.

C'est la vraie recherche de la démo, relevée le 05.10.2026. Posée en anglais, la même question remonte les mêmes notes, écrites en français : le rappel est multilingue.

04 — La casse

Une note se renomme. Le lien, lui, ne le sait pas.

Le gabarit de restitution s'appelait modele-restitution-2025. Il a été renommé en septembre, quand il a cessé d'y en avoir un par année. La note methode-restitution-en-une-page le cite toujours sous l'ancien nom : le lien pointe vers une cible qui n'existe plus, ne lève aucune erreur, et rend juste la session un peu plus bête.

Trouvé, pas mis en scène. Ce lien cassé est réellement dans le corpus : c'est la revue qui l'a signalé, et il coûte six points au score. Ouvrez l'endpoint public, il y est.

05 — La revue

Toutes les heures, la mémoire se relit.

Chaque contrôle correspond à une panne déjà vécue sur un vrai corpus. Deux se déclenchent ici : le lien cassé, et 3 notes hors du graphe. Les notes signalées restent allumées, les autres s'éteignent.

  • broken_linksUn [[lien]] sans note en facewarn
  • orphansHors du graphe : trouvable seulement par rechercheinfo
  • no_descriptionPas de hameçon — la note ne remontera jamaiscrit
  • secretsUne chaîne qui ressemble à une clé (jamais affichée)crit
  • dead_pathsUn chemin cité qui n'existe plus dans le dépôtinfo
  • stale_openChantier ouvert depuis plus de 60 jourswarn
  • near_duplicatesDeux notes à cosinus ≥ 0,86 — à fusionnerinfo

Sept des vingt-cinq contrôles. Les autres surveillent la chaîne elle-même — serveur MCP injoignable, modèle d'embedding tombé, index désynchronisé ou en retard.

06 — Le score

Un chiffre, et ce qui le retient.

92 / 100
2 constats · 0 critique
1 lien cassé · 3 orphelines

Score = 100 moins la somme des poids de sévérité, amortie par le logarithme du nombre d'occurrences. Il ne récompense pas le volume : il sanctionne l'entropie. Le corpus est passé de 14 à 38 notes sans bouger d'un point — puis a perdu six points sur un seul lien cassé.

Relevé le 05.10.2026 à 10:13 UTC sur demo.corthexis.com/api/review, endpoint public.
Corpus : 38 notes · 5 253 mots · 14 familles · 70 liens · 1 cassé.

Ce que ce n'est pas

Pas un meilleur RAG. Une mémoire qui ne pourrit pas en silence.

Stocker et retrouver, d'autres le font bien — Mem0, Zep, Letta, et le RAG de votre framework. CortHeXis part de la question suivante : comment savoir que ce que l'agent retrouve est encore là, encore vrai, et encore trouvé ?

La mémoire tombe sans bruit

Un serveur MCP retiré d'une config, un index trop gros pour le contexte, un lien vers une note renommée : l'agent ne plante pas, il devient juste moins bon. La revue relit la chaîne entière toutes les heures et le dit.

Des fichiers, pas une boîte noire

Une note est un fichier markdown qu'un humain lit et corrige, avec une date et sa provenance. L'index se reconstruit à partir d'eux à tout moment ; aucun fait n'existe seulement dans une base.

Mesuré, pas promis

Le rappel se chiffre sur vos propres questions, et un changement de modèle qui le fait baisser est bloqué. Nos chiffres sont publiés avec leur méthode — et leurs limites.

Les capacités

Six capacités, une seule promesse : une mémoire qui reste vraie.

Chaque capacité est née d'une panne vécue sur une vraie mémoire de travail. Toutes sont dans le dépôt public, et c'est ce même code qui tourne sur notre mémoire et sur la démo.

  1. 01

    Rappel à chaque tour

    Un hook injecte les notes pertinentes avant chaque réponse, pas seulement au démarrage de la session : l'agent qui savait au premier message sait encore au quinzième. Le même rappel arrive dans les sous-agents qu'il lance — c'est là qu'il se perdait.

    Dans le dépôtEn service chez nous
    Où le rappel arrive
    Démarrage de la sessioninjecté
    Chaque message suivantinjecté
    Sous-agents lancés par l'agentinjecté
  2. 02

    Une revue qui détecte et répare

    Toutes les heures, vingt-cinq contrôles nés de pannes réelles : liens cassés, notes sans hameçon, chantiers oubliés, secrets en clair, doublons, description qui contredit le corps, serveur MCP injoignable, index en retard. Le nommage se répare à l'indexation, sans perte ; le reste — liens à recoller, notes à fusionner, chantiers à clore — arrive en proposition avec son diff, appliquée seulement après votre accord.

    Dans le dépôtEn service chez nousDémo live
    Revue de la démo, 05.10.2026
    broken_links1 constat
    orphans3 notes
    contrôles25 · toutes les heures
    score92/100
  3. 03

    La vérité des notes : dates et provenance

    Chaque note rappelée arrive avec son âge et l'origine de sa date — écrite dans la note, reconstruite par l'indexeur, ou inconnue. Une réécriture en masse ne rajeunit plus tout le corpus, et une note renommée garde son histoire.

    Dans le dépôtEn service chez nous
    Ce que l'agent lit avec la note
    date écrite dans la notefiable
    date reconstruite à l'indexationjour non garanti
    aucune trace fiableinconnue
  4. 04

    Mesuré sur vos notes

    Un banc de questions dont on connaît la bonne note — récoltées dans vos sessions, écrites à la main ou importées. Un modèle ou un réglage ne change que si le rappel ne régresse pas, chiffre à l'appui. La démo publique montre le sien : 60 questions, que chacun peut relancer.

    Dans le dépôtEn service chez nousDémo live
    Le banc, 03.10.2026
    Questions, note attendue connue300
    Bonne note en premier (profil léger)73 %
    Langues des questionsFR · EN · DE
  5. 05

    Tourne partout, du petit serveur au GPU

    Un profil léger pour une machine de 4 cœurs sans GPU, un profil GPU qui ajoute un second étage de classement. Même code, même format de notes ; le profil se choisit selon la machine, et un changement se mesure avant d'être appliqué.

    Dans le dépôtEn service chez nous
    Rappel mesuré (MRR) par profil
    Léger · CPU 4 cœurs, sans GPU0,82
    GPU · avec reclassement0,88
    Première génération0,55
  6. 06

    Open source et souverain

    Apache-2.0, sans compte à créer. Vos notes restent des fichiers markdown chez vous, le modèle tourne sur votre machine : après le premier téléchargement, ni l'indexation ni le rappel n'ont besoin d'appeler quoi que ce soit dehors.

    Dans le dépôtEn service chez nous
    Ce que vous installez
    LicenceApache-2.0
    Format des notesmarkdown
    Protocole vers l'agentMCP
    Appels sortants pour rappeleraucun
Dans le dépôt public, version 2.0. Tourne sur notre propre mémoire de travail.
La preuve

On ne dit pas que le rappel est meilleur. On le mesure.

300 questions dont on connaît la bonne note, posées à notre propre mémoire de travail — 415 notes, 2 498 morceaux, questions en français, anglais et allemand. Deux chiffres : la bonne note arrive-t-elle en premier, et à quel rang en moyenne (MRR : 1 = toujours première).

Bonne note en premier

42 % → 82 %
  • Première génération du moteur42 %
  • Profil léger · CPU 4 cœurs, sans GPU73 %
  • Profil GPU · avec reclassement82 %

Rang moyen de la bonne note (MRR)

0,55 → 0,88
  • Première génération du moteur0,55
  • Profil léger · CPU 4 cœurs, sans GPU0,82
  • Profil GPU · avec reclassement0,88
Là où c'est dur

52 questions n'ont leur réponse que dans le corps d'une note, jamais dans sa description. Sur celles-là, le rang moyen passe de 0,42 à 0,73 en profil léger.

Pourquoi 300 questions

Notre premier banc, 35 questions, était saturé : l'ancien moteur y faisait déjà 0,91. Un banc qui ne départage plus rien ne prouve rien — on l'a élargi.

Ce que ça ne dit pas

Ces 300 questions sont écrites par nous, sur notre corpus, qui reste privé. Le vôtre donnera un autre chiffre : la mesure tourne sur vos notes avec corthexis eval. Et pour vérifier sans nous croire, un banc public de 60 questions sur le corpus de démo, à relancer chez vous.

Les chiffres en tableau
ConfigurationEn premierMRRMRR, réponse dans le corps
Première génération du moteur42 %0,550,42
Profil léger · CPU 4 cœurs, sans GPU73 %0,820,73
Profil GPU · avec reclassement82 %0,88non mesuré

Mesuré les 02 et 03.10.2026 sur la deuxième génération du moteur, en service sur notre mémoire depuis le 03.10.2026. Profil léger : 53 à 69 ms par requête sur 4 cœurs.

Démarrer

Seul, en quelques commandes. Ou dans SOKKAN.

Stand-alone

Avec votre agent, via MCP

Le dépôt public, c'est le moteur entier : rappel à chaque tour et dans les sous-agents, recherche par MCP, revue, réparations, tableau de bord et banc. Docker, quatre cœurs, aucun GPU nécessaire.

$ git clone https://github.com/ninabot-ch/corthexis && cd corthexis
$ ./setup.sh ~/.claude/projects/<projet>/memory
$ docker compose up -d
$ claude mcp add -s user --transport http corthexis http://localhost:8420/mcp …
$ python3 corthexis/hook.py install

Le guide complet sur GitHub →

Intégré

Dans SOKKAN, le cockpit

SOKKAN pilote des sessions Claude Code en parallèle. Depuis SOKKAN 3.0, CortHeXis en est l'onglet mémoire : le même moteur, installé et câblé pour vous, plus le cockpit qui fait tourner les agents.

$ curl -fsSL https://sokkan.ch/install.sh | sh

sokkan.ch →

La démo est ouverte

Posez vos questions à une vraie mémoire.

Corpus fictif — un cabinet de conseil, 38 notes —, mais moteur, recherche et revue réels. Graphe, constellation sémantique, âge, santé, et le panneau de chaque note. Sans compte, sans formulaire.

Capture de demo.corthexis.com : une question posée en anglais, et les notes écrites en français qui remontent avec leur score.
Capture réelle de demo.corthexis.com, 03.10.2026 — question en anglais, notes en français.
Né en production

Le moteur est sorti d'une mémoire de travail réelle.

417notes
442 330mots
1 359commits
5 moisdepuis le 19.04.2026

Produite en pilotant réellement une entreprise, pas en remplissant un dossier de démonstration. Ce corpus est privé et ne sera pas publié : il est plein d'infrastructure et de clients. Le moteur, lui, est ouvert — et la preuve qui compte, c'est ce qui se passe quand vous le lancez sur vos notes.

Relevé le 05.10.2026 sur le dépôt de Ninabot Sàrl.

Training

Vous préférez apprendre la méthode en direct, sur vos propres fichiers ? Une cohorte de six sessions existe, à côté du produit. Voir le Training →