Haki est la couche mémoire des agents IA où chaque fait a une date, une source et un statut — pour que votre agent utilise ce qui est vrai aujourd'hui, et puisse le prouver.
Sans carte bancaire • en route en 2 minutesVotre agent applique une préférence exprimée il y a trois mois. Elle a changé depuis. Il l'applique quand même, avec assurance, et personne ne s'en aperçoit.
C'est le mode de panne des couches mémoire actuelles : elles savent ajouter, elles ne savent pas corriger. Les faits contradictoires s'empilent, la recherche sémantique tranche au hasard — et à la question « pourquoi l'agent a-t-il dit ça ? », personne ne peut répondre.
Haki est construit autour de la question inverse : qu'est-ce qui est vrai maintenant, et comment le prouver ?
Une seule commande mémorise une préférence, capte le changement d'avis qui la remplace, ouvre une conversation entièrement neuve — et vérifie que l'agent sert la valeur courante, garde l'ancienne marquée comme remplacée, et rattache le tout à une trace.
C'est le test que nous vous demandons de faire avant de nous croire sur parole.
> haki verify ✔ capture "invoices in French" ✔ capture "actually, in English" same thread ✔ consolidate 1 supersession ✔ context NEW thread 0.04 s recalled invoice_language = "en" hidden invoice_language = "fr" superseded trace 7c99a8de… OK — remembered across conversations.
Capture, consolidation, contexte, trace, oubli. Cinq étapes explicites — et à chaque réponse, la preuve de ce qui a été utilisé.
Chaque fait est daté et versionné. Un changement d'avis remplace l'ancien — jamais supprimé, jamais servi comme actuel.
Contradiction non tranchable : les deux versions sont cachées.
Chaque contexte arrive avec ses sources, ses dates et une trace : ce qui a été retenu, écarté ou bloqué — et pourquoi.
« Pourquoi l'agent a dit ça ? » répondu en une minute.
Agent codé, Cursor, n8n, ou un simple changement de base_url. Vous gardez votre stack.
Embeddings calculés localement : aucun appel réseau dans le chemin critique. Mesuré, reproductible — scripts/benchmark_context.py.
Deux détails qui changent tout à l'usage — et une explication complète de chaque décision de contexte.
Quand un fait mentionne une autre personne, Haki élargit la recherche à ses faits à elle aussi — deux sauts maximum, sans appel LLM supplémentaire.
Un fait capturé en français répond à une question posée en anglais. Embeddings multilingues locaux, testé FR / EN / ES en conditions réelles.
Aucun appel réseau pour l'embedding — donc aucune fuite de données vers un tiers.
Chaque fait retenu ou écarté a une raison, pas une boîte noire
Le budget de contexte est limité. Ce qui n'entre pas n'est jamais silencieux : chaque fait porte un statut explicite dans la trace.
Basé sur une recherche publique récente (sites, docs, code source accessible) — pas sur des chiffres qu'on ne peut pas sourcer. Là où on n'a rien pu vérifier, on le dit.
| Haki | Supermemory | Zep | Mem0 | |
|---|---|---|---|---|
| Bi-temporalité stricte (aucune suppression silencieuse) | ✓ | ✓ | ✓ | ~ |
| Auto-hébergement complet, une commande | ✓ | ~ | ✗ | ✓ |
| Raison codée par fait (retenu / écarté / bloqué) | ✓ | ✗ | ✗ | ✗ |
| Isolation garantie par la base (RLS) | ✓ | ~ | ~ | ? |
| Oubli propagé aux données dérivées, avec reçu | ✓ | ~ | ~ | ? |
| Injection mémoire automatique compatible OpenAI | ✓ | ✓ | ✗ | ✗ |
| Écosystème, intégrations, communauté | ~ | ✓ | ✓ | ✓ |
| Résultats de benchmark publiés | ⏳ | ✓ | ✓ | ✓ |
✓ confirmé · ✗ confirmé absent · ~ partiel / mécanisme différent · ? non vérifié publiquement · ⏳ à venir
Chaque symbole sourcé renvoie à sa source publique (survolez ou cliquez). Recherche menée le 10 août 2026 — une erreur ? Écrivez-nous, on corrige et on le signale.
quatre étapes explicites, observables, rejouables — pas une boîte noire.
Chaque tour de conversation est capturé avec sa source, sans bloquer votre agent.
Un job asynchrone extrait les faits, les date, les versionne et détecte les contradictions.
À chaque requête, Haki assemble le paquet de contexte pertinent — p95 mesuré à 249 ms sur 10 000 faits.
Chaque réponse renvoie une trace : ce qui a été retenu, écarté, bloqué — et pourquoi.
Les étapes 01–04 construisent la mémoire. Voici le gain : votre agent y puise au moment de la requête, sans appel réseau dans le chemin critique.
La plupart des couches mémoire décrivent un comportement dans leur documentation. Nous décrivons le nôtre avec le nom du test qui le vérifie, sur une vraie base PostgreSQL — jamais sur des mocks.
Une garantie qui n'est pas testée n'est pas une garantie. Vous en trouvez une qui ne tient pas ? Ouvrez une issue — on la publie.
Le socle d'évaluation du secteur est cassé — un audit indépendant a trouvé 6,4 % d'erreurs dans la clé de réponse de LoCoMo, le benchmark le plus cité du domaine. Plutôt qu'un chiffre qu'on ne peut pas vérifier, on préfère publier ce qu'on peut prouver aujourd'hui.
voir le contrat de garanties →Le vrai est distingué du périmé ; une contradiction est signalée, jamais devinée.
p95 mesuré sur 10 000 faits actifs, en local — reproductible via scripts/benchmark_context.py.
Organisation → projet → sujet : rien ne traverse. Les scopes viennent de votre backend, jamais du modèle. Et l'oubli se propage vraiment, avec un reçu horodaté.
Une clé est liée à un projet. Demander un autre projet renvoie 403 forbidden_scope — sans jamais révéler son existence.
L'isolation est garantie par la base elle-même : même si le code oubliait un filtre, une requête ne peut pas traverser les projets.
POST /v1/forget efface les faits, embeddings, événements et traces dérivés, et écrit un reçu horodaté.
docker compose up -d. Le serveur complet, Apache 2.0, sans version amputée. Zep a déprécié son édition auto-hébergeable en avril 2025.
SDK, serveur MCP, template n8n ou gateway : branchez Haki à votre stack en quelques minutes.
La mémoire arrive dans votre stack…Rejoindre la betaLe même produit à chaque palier — aucune fonctionnalité verrouillée. Seul le volume de crédits change.
Le produit complet, pour essayer en cloud sans engagement.
Ou auto-hébergez gratuitement, sans limite de crédits — code source ci-dessous. GitHub →
Pour un premier agent en production.
Pour plusieurs agents ou une équipe.
Pour un volume important, en croissance.
Périmètres multiples, déploiement dédié, revue de conformité.
Beta privée • self-hosted gratuit et open source • sans engagement
L'équipe Haki répond directement — pas de bot, pas de ticket perdu.
Nous écrireNon — Haki contient déjà son index vectoriel (pgvector, hnsw) et son index plein-texte. Un seul docker compose up suffit.
L'ancien fait passe en « remplacé » : il reste dans l'historique mais n'est plus jamais servi comme actuel. En cas de contradiction réelle, Haki cache les deux versions et le signale plutôt que de deviner.
Non. Les embeddings sont calculés localement, sans appel réseau dans le chemin critique : p95 mesuré à 249 ms sur 10 000 faits (script de benchmark public, reproductible). L'extraction LLM est asynchrone.
Non. Trois lignes autour de votre appel avec le SDK, ou un simple changement de base_url avec le gateway compatible OpenAI. Cursor et n8n ont leurs propres intégrations.
Chaque contexte renvoie un trace_id. L'inspection montre chaque mémoire retenue, écartée ou bloquée, avec son reason code et sa source.
POST /v1/forget propage l'effacement aux faits, embeddings, événements et traces dérivés, et écrit un reçu horodaté dans forget_receipts.
Parce que la précision se dégrade avec la longueur : quand la bonne réponse passe de la position 1 à la position 10 dans un contexte de 20 documents, l'exactitude chute d'environ 30 % — mesuré sur GPT-4.1, Claude Opus 4 et Gemini 2.5. Servir 1 500 tokens pertinents au lieu de 115 000 attaque directement ce problème. Et un contexte complet ne sait ni superséder, ni tracer, ni oublier.
Nous n'en publions pas encore. Le socle d'évaluation du secteur est cassé : un audit public d'avril 2026 a montré que 6,4 % de la clé de réponse de LoCoMo est fausse — le plafond réel est de 93,6 % — et que le juge standard accepte jusqu'à 63 % de réponses volontairement fausses. Nous publierons nos chiffres avec la configuration gelée, les checksums des jeux de données, trois exécutions, et les catégories où nous perdons. Pas avant.
Votre agent continue. Le gateway passe en X-Haki-Memory: degraded et transmet la requête. Nous ne bloquons jamais votre chemin critique — et nous ne l'échouons jamais en silence : une dégradation est toujours visible dans la réponse.