Concept

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.

Note ou événement

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 :

decision

Un choix acté, avec le contexte et la justification qui l'accompagnent.

reflection

Une hypothèse ou une analyse vivante — une lecture d'une situation que vous affinez au fil du temps.

observation

Un fait de terrain : quelque chose que vous avez remarqué et voulez consigner.

Provenance

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.
Injection de contexte

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.
Recherche

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.
Vos propres embeddings

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.
Lancer le worker d'embeddings
historis embed run --watch --interval 1h
Dans l'application

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.
Outils MCP

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.

manage_knowledge

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.

search_knowledge

Cherche dans les notes de l'organisation — toujours en plein texte, plus une branche sémantique optionnelle fusionnée par Reciprocal Rank Fusion.

get_person_context

Charge un contact, ses notes actives injectées directement pour que l'agent démarre avec ce que vous savez déjà.

get_organization_context

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.

Exemple : un assistant écrit une note de décision
{
  "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"
}
Apportez votre IA

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.
FAQ

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.

Aller plus loin

À lire aussi