Mémoire de connaissances
Une note de connaissance est une note Markdown durable — un titre et un corps — rattachée à votre organisation et liée aux contacts, événements ou autres notes qu'elle concerne. Là où un événement consigne une interaction datée, une note capture un savoir qui dure : une décision, une réflexion en cours, une observation de terrain. C'est la mémoire que votre assistant lit avant d'agir, et où il écrit quand il apprend quelque chose à garder.
Une note, c'est ce qui reste vrai
Un événement répond à ce qui s'est passé un jour donné ; une note répond à ce que vous savez. Une livraison en retard est un événement. « On est passé à des conditions net-30 avec ce fournisseur après ce litige » est une décision qui vaut d'être gardée — elle reste vraie dans toutes les conversations à venir, donc elle a sa place dans une note, liée au fournisseur.
Trois tags sémantiques indiquent le type de savoir que porte une note, pour que votre assistant retrouve le bon :
Un choix acté, avec le contexte et la justification qui l'accompagnent.
Une hypothèse ou une analyse vivante — une lecture d'une situation que vous affinez au fil du temps.
Un fait de terrain : quelque chose que vous avez remarqué et voulez consigner.
Chaque note est datée et signée
Les notes écrites par un agent IA via MCP portent l'origine « agent » ; dès qu'un humain en modifie une depuis l'application, son origine bascule sur « humain ». Vous distinguez toujours ce que vous avez écrit d'une suggestion de votre assistant.
Les notes écrites par un agent s'affichent avec le losange ambre, le même marqueur de provenance que les événements et les descriptions.
- Les écritures d'un agent s'appliquent directement, mais restent traçables : marquées, journalisées, attribuables et réversibles.
- La première modification humaine s'approprie la note — son origine devient « humain » et le reste.
- Un agent ne supprime jamais une note ; une personne l'archive pour la retirer, et ne peut la supprimer définitivement qu'une fois archivée.
- Quand une note est remplacée, elle pointe vers celle qui lui succède, gardant intact le fil d'une décision ancienne vers la nouvelle.
Cessez de ré-expliquer le contexte à votre IA
Tout l'intérêt d'une note, c'est que votre assistant la lit sans qu'on le lui demande. Quand un agent charge un contact avec get_person_context, les notes actives liées à ce contact reviennent automatiquement — sans prompt savant, sans copier-coller depuis la dernière conversation.
- get_person_context injecte les notes actives du contact directement (titre, aperçu et tags), plafonnées à dix, avec le total réel à côté pour que l'agent puisse parcourir le reste.
- get_organization_context transporte un décompte, à l'échelle de l'organisation, des notes actives, incitant l'agent à chercher avant de questionner l'utilisateur.
- Une nouvelle session, ou un tout autre assistant, lit les mêmes notes : la mémoire vit avec vos données, pas dans un historique de conversation.
Toujours le plein texte, le sémantique quand vous l'apportez
search_knowledge exécute une recherche plein texte sur chaque note, et fusionne facultativement une branche sémantique par-dessus quand votre agent fournit un embedding de la requête.
- Le plein texte est exhaustif et déterministe : racinisation française, insensible aux accents, sur toute la base de notes que votre jeton peut voir.
- Passez un embedding de la requête — calculé avec le modèle sous contrat de votre organisation — et son classement est fusionné avec les résultats texte par Reciprocal Rank Fusion.
- Les notes sans embedding restent trouvées par le plein texte : la recherche n'est jamais aveugle à une note que le worker n'a pas encore indexée.
- Filtrez par tags, statut (active, archivée ou toutes), ou par un contact ou événement lié ; « que sait-on de X ? » se répond au mieux avec le filtre de contact.
Le serveur ne calcule jamais d'embedding
La recherche sémantique est optionnelle et entièrement à votre main. Les embeddings sont calculés par le worker historis embed, un petit outil en ligne de commande que vous exécutez sur votre propre infrastructure avec votre propre fournisseur — le serveur Historis ne calcule jamais d'embedding et ne voit jamais la clé d'API de votre fournisseur.
- Lancez-le une fois, ou en boucle résidente qui réindexe à intervalle régulier, en cron ou en watch.
- embedding_config est le contrat, au niveau de l'organisation — le modèle et ses dimensions — auquel un embedding de requête doit correspondre pour être accepté.
- Modifier le corps d'une note efface son embedding stocké, pour que le worker le recalcule à la passe suivante.
historis embed run --watch --interval 1h
Créer, corriger et entretenir à la main
Les agents écrivent via MCP pendant les conversations ; le produit est l'endroit où une personne entretient. Vous pouvez créer une note à la main, corriger ou archiver ce qu'un agent a écrit, et supprimer définitivement une note une fois archivée — ce que seule une personne peut faire.
- L'écran Connaissances liste vos notes avec un champ de recherche, des filtres de statut et de tag, et un bouton Nouvelle note pour en rédiger une à la main.
- La page d'une note rend le Markdown avec ses sources et ses contacts liés, et vous laisse la modifier, l'archiver et — une fois archivée — la supprimer définitivement.
- Modifier une note à la main s'approprie sa provenance : une note écrite par un agent devient humaine dès que vous modifiez son texte.
- Chaque contact a un onglet Connaissances, pour que les notes d'une personne soient posées sur sa fiche.
Les quatre outils qui touchent à la mémoire
Votre assistant lit et écrit la connaissance via ces outils, sur le même point d'accès MCP que le reste d'Historis.
Créer, modifier, lier, archiver et remplacer des notes. Taguez une note decision, reflection ou observation, et liez-la aux entités qu'elle concerne.
Cherche dans les notes de l'organisation — toujours en plein texte, plus une branche sémantique optionnelle fusionnée par Reciprocal Rank Fusion.
Charge un contact, ses notes actives injectées directement pour que l'agent démarre avec ce que vous savez déjà.
Un briefing de démarrage pour l'organisation, portant le décompte de notes actives pour que l'agent sache que la mémoire existe.
{
"action": "create",
"title": "Switched Maison Laurent to net-30 terms",
"content": "Agreed net-30 after the March late-delivery dispute. Renegotiate if a second slip happens this year.",
"tags": "decision",
"person_name": "Maison Laurent"
}La mémoire est à vous ; l'intelligence aussi
Historis n'embarque aucune IA. Vous connectez l'assistant que vous utilisez déjà via MCP, et il lit et écrit cette mémoire pour vous.
- Aucun modèle ne tourne dans Historis : apportez votre IA — jusqu'à un modèle open source entièrement auto-hébergé — via MCP.
- Vos notes sont stockées sur une infrastructure souveraine européenne, et la clé de votre fournisseur d'embeddings ne quitte jamais votre machine.
- Chaque note reste datée, signée et réversible, qu'elle ait été écrite par une personne ou un agent.
Questions sur la mémoire de connaissances
Qu'est-ce qu'une note de connaissance dans Historis ?
Une note Markdown durable — un titre et un corps — rattachée à votre organisation et liée aux contacts, événements ou autres notes qu'elle concerne. Elle capture un savoir qui dure, comme une décision ou une observation, plutôt qu'une simple interaction datée.
En quoi une note de connaissance diffère-t-elle d'un événement ?
Un événement est une interaction datée — ce qui s'est passé un jour donné. Une note est ce qui reste vrai au fil des conversations : une décision, une réflexion ou une observation de terrain que vous voulez voir votre assistant retenir.
Historis utilise-t-il une IA pour écrire ou chercher mes notes ?
Non. Historis n'embarque aucune IA. Vous apportez votre propre assistant via MCP, et il lit et écrit les notes pour vous. La recherche sémantique est optionnelle, calculée par un worker que vous exécutez vous-même ; le serveur ne calcule jamais d'embedding et ne voit jamais la clé de votre fournisseur.
Comment mon IA se souvient-elle du contexte entre les conversations ?
Les notes liées à un contact sont injectées automatiquement quand votre agent charge ce contact avec get_person_context : une nouvelle session — ou un autre assistant — démarre avec ce que vous savez déjà, sans que vous ayez à le ré-expliquer.
Puis-je supprimer une note de connaissance ?
Oui, mais seule une personne le peut, et seulement après avoir archivé la note — ainsi une note active n'est jamais perdue par accident et aucun agent ne peut effacer votre mémoire. Archiver retire une note des connaissances actives et de la recherche ; supprimer une note archivée l'efface définitivement.