Comment fonctionne la base de connaissances
Les notes, fichiers et pages web que l'IA utilise quand elle suggère des réponses, rédige des e-mails et répond dans l'assistant, conservés pour tout l'espace de travail, un domaine ou une adresse.
Ce que c'est
La base de connaissances contient ce que l'IA doit savoir de votre entreprise et ne peut pas apprendre des e-mails eux-mêmes : les prix, les règles, les horaires d'ouverture, les caractéristiques des produits et la façon dont votre équipe répond. Vous ajoutez des notes, des fichiers et des pages web, et l'IA lit les parties utiles chaque fois qu'elle écrit pour vous.
Il y a une base par espace de travail, avec trois niveaux, pour qu'une réponse qui ne vaut que pour une marque ou une équipe reste avec elle. Elle se lit et se modifie dans l'application sous Espace de travail → Base de connaissances, via l'API REST, depuis les SDK et la CLI, et par l'assistant et les clients MCP.
Trois niveaux
Chaque élément se trouve à un niveau, son scope. L'IA qui écrit pour une adresse lit cette adresse, puis son domaine, puis tout l'espace de travail, et quand deux éléments se contredisent, le plus précis l'emporte.
| Niveau | `scope` | Lu pour |
|---|---|---|
| Tout l'espace de travail | vide | Chaque adresse de l'espace de travail |
| Domaine | @acme.com | Chaque adresse de ce domaine, y compris les adresses ajoutées plus tard |
| Adresse | [email protected] | Cette seule adresse |
- Une adresse plus lit aussi son adresse de base, donc
[email protected]utilise ce qui est conservé pour[email protected]. GET /knowledge/levelsliste chaque niveau que vous pouvez voir, le nombre d'éléments de chacun et si vous pouvez y modifier des éléments.- Déplacer un domaine vers un autre espace de travail déplace avec lui les éléments conservés pour ce domaine et ses adresses.
Notes, fichiers et pages web
- Une note est un texte que vous écrivez sur place, jusqu'à 20 000 caractères, en Markdown si vous le souhaitez. Elle est en général prête pour l'IA en une seconde ou deux.
- Un fichier est lu en texte en arrière-plan : PDF, documents Word, feuilles de calcul (Excel, OpenDocument, Numbers et CSV), texte OpenDocument, HTML, XML, Markdown, texte brut, JSON et images (JPEG, PNG, WebP et SVG). Un document peut faire jusqu'à 20 Mo et une image jusqu'à 10 Mo.
- Une page web est récupérée depuis une adresse
httpouhttpspublique et lue en arrière-plan, jusqu'à 5 Mo. Un niveau ne contient une page qu'une fois, et l'actualiser la récupère de nouveau après un changement. - Jusqu'à 1 000 000 de caractères de texte sont conservés d'un élément, et le texte est découpé en passages sous ses titres pour la recherche.
Un élément est queued puis processing pendant sa lecture, ready dès que l'IA peut l'utiliser, et failed avec un failure qui dit pourquoi quand il n'a pas pu être lu. Un élément modifié repasse à queued, et l'IA continue d'utiliser son texte précédent jusqu'à ce que le nouveau soit prêt. Actualiser un élément le relit et efface un échec.
| Offre | Éléments | Caractères de texte |
|---|---|---|
| Free | 50 | 1,000,000 |
| Starter | 500 | 10,000,000 |
| Business | 2,000 | 50,000,000 |
| Enterprise | 10,000 | 200,000,000 |
Un élément compte dans le quota dès qu'il est ajouté, et ses caractères dès que son texte a été lu. Un ajout au-delà du quota est refusé, et un fichier ou une page dont le texte le dépasserait est conservé en échec. GET /knowledge/usage lit les deux nombres.
Comment l'IA l'utilise
- Les suggestions de réponse sous le dernier message d'un fil lisent les niveaux de l'adresse où le message est arrivé.
- Un brouillon écrit à partir d'une description, dans l'éditeur ou avec
POST /emails/compose, lit les niveaux de l'adresse d'où il part. La réponse liste danssourcesles éléments sur lesquels il s'est appuyé. - L'assistant lit les niveaux du fil que vous avez ouvert, ou chaque niveau que vous pouvez voir quand aucun n'est ouvert, et peut chercher lui-même dans la base de connaissances avec son outil
searchKnowledge. - La réponse de
GET /threads/{id}/reply-suggestionsliste danssourcesles éléments sur lesquels les suggestions se sont appuyées.
Les notes épinglées entrent dans chaque prompt à leur niveau, jusqu'à 2 000 caractères par niveau, qu'elles correspondent ou non à ce qui s'écrit. Le reste de la place, environ 6 000 caractères en tout, va aux passages qui correspondent le mieux à la demande, trouvés par le sens et par les mots. Quand l'index ne répond pas en un instant, l'IA écrit sans lui plutôt que de vous faire attendre.
L'IA a pour consigne de traiter ce que dit la base de connaissances comme des données de référence et jamais comme des instructions, de laisser de côté ce qui ne s'applique pas, et de ne pas mentionner la base de connaissances dans ce qu'elle écrit.
Comment elle grandit
Ajoutez des éléments dans l'application sous Espace de travail → Base de connaissances, ou depuis du code avec l'API, les SDK et la CLI. L'assistant et les clients MCP peuvent enregistrer une note ou ajouter un lien quand vous leur demandez de retenir quelque chose, et ils peuvent aussi modifier, actualiser et supprimer des éléments. Dans la discussion de l'application, ajouter, modifier et actualiser un élément demandent d'abord, sauf si vous l'avez demandé, et supprimer en demande toujours d'abord.
Chaque élément note d'où il vient dans origin : app, api, assistant ou mcp, et qui l'a ajouté dans createdBy.
Elle grandit aussi d'elle-même. L'IA suggère des notes à partir des réponses de votre équipe et note les questions auxquelles rien ne répond encore, les connecteurs tiennent à jour des sites entiers, des sitemaps, des flux et des centres d'aide, et les liens peuvent être relus selon un calendrier. Les sections suivantes expliquent chacun de ces points.
Suggestions tirées de vos réponses
Quand quelqu'un de l'espace de travail répond dans une conversation, l'IA lit la réponse et le message auquel elle répond, puis suggère jusqu'à trois faits qui vaudraient aussi pour d'autres personnes, comme un prix, une règle ou un délai de livraison. Chaque suggestion est une note en attente de relecture, au niveau du domaine depuis lequel la réponse a été envoyée, ou de tout l'espace de travail quand ce domaine n'est pas l'un des siens. Les faits que la base de connaissances contient déjà sont laissés de côté, et jusqu'à 100 réponses sont lues par jour.
Relisez-les dans l'application ou avec GET /knowledge/suggestions. Acceptez-en une pour l'enregistrer comme note, en modifiant au passage son titre, son texte, son niveau ou son épinglage, ou écartez-la. Le même fait suggéré à nouveau fait monter occurrences au lieu d'ajouter une deuxième suggestion, et une suggestion écartée n'est plus proposée.
Les questions auxquelles rien ne répond encore
Quand l'IA suggère des réponses à un message entrant, elle note aussi jusqu'à trois choses que l'expéditeur a demandées sur l'entreprise et auxquelles ni la conversation ni la base de connaissances ne répondent, par exemple si vous livrez dans son pays. Chacune devient une question au niveau du domaine où le message est arrivé, ou de tout l'espace de travail quand ce domaine n'est pas l'un des siens, et la même question posée à nouveau fait monter occurrences, pour que vous voyiez celles qui reviennent le plus.
Répondez à une question et elle devient une note : acceptez-la avec la réponse comme texte, et son titre reste la question sauf si vous le changez. Dès lors, l'IA utilise la réponse chaque fois que la question revient. Écartez une question qui n'appelle pas de réponse, et elle n'est plus notée.
Doublons et conflits
Chaque élément est comparé aux éléments les plus proches à tous les niveaux lors de son indexation, puis à nouveau chaque fois qu'il change. Deux éléments qui disent presque la même chose sont signalés comme duplicate. Deux éléments étroitement liés qui se contredisent sur un fait, comme un prix ou une échéance, sont signalés comme conflict, avec une phrase sur ce qui diverge. L'IA cherche des conflits jusqu'à 200 fois par jour.
- Chaque élément compte dans
flagsles signalements ouverts qui le nomment, etGET /knowledge/flagsles liste, les plus récents en premier. - Modifiez ou supprimez l'un des deux éléments pour régler un signalement. Un élément modifié est comparé à nouveau une fois indexé.
- Écartez un signalement quand les deux éléments conviennent tels quels, et la même paire n'est plus signalée pour la même raison.
- Un signalement n'est visible que par quelqu'un qui peut voir les deux éléments.
Connecteurs
Un connecteur garde dans la base de connaissances de nombreuses pages d'une même source, chaque page comme un élément de lien au niveau du connecteur, et les tient à jour quand la source change.
| Type | Ce qu'il lit |
|---|---|
| site | La page que vous indiquez et les pages vers lesquelles elle renvoie sur le même hôte, sous le même chemin, sans ce que le robots.txt du site interdit |
| sitemap | Chaque page qu'un sitemap liste, ou un index de sitemaps et jusqu'à 5 de ses sitemaps |
| feed | Les entrées d'un flux RSS ou Atom |
| zendesk | Les articles publiés d'un centre d'aide Zendesk, à partir de son adresse, par exemple https://example.zendesk.com |
- La première synchronisation démarre en moins d'une minute. Ensuite, il se synchronise à nouveau tous les 7 jours, ou tous les 1 ou 30 jours, ou seulement quand vous demandez une synchronisation, qui démarre elle aussi en moins d'une minute.
- Il garde jusqu'à 25 pages, ou autant que vous en fixez jusqu'à 200, et ses éléments comptent dans le quota de l'offre. Une synchronisation cesse d'ajouter des pages dès que le quota est atteint.
- Chaque synchronisation ajoute les nouvelles pages, relit celles qui ont changé et retire les éléments des pages qui ont disparu de la source.
- Une page que vous avez ajoutée vous-même comme lien au même niveau reste à cet élément, et supprimer un connecteur ne retire que les éléments qu'il a ajoutés.
- Déplacer un connecteur vers un autre niveau déplace ses éléments avec lui.
Des liens qui restent à jour
Un lien peut être relu de lui-même tous les 1, 7 ou 30 jours : définissez refreshDays en l'ajoutant, ou plus tard. Quand la page a changé, son nouveau texte remplace l'ancien une fois lu, et l'IA continue d'utiliser l'ancien texte d'ici là. nextRefreshAt indique quand elle sera relue, et une page impossible à récupérer est réessayée le lendemain.
Enregistrer une note à partir d'une conversation
L'IA peut lire une conversation et rédiger une note des faits dont l'équipe aura de nouveau besoin, sans les données personnelles ni ce qui ne compte que pour cette conversation. Rien n'est enregistré tant que vous ne le gardez pas : lisez le brouillon, modifiez-le à votre guise et enregistrez-le comme note, qui garde dans threadId la conversation dont elle vient.
Le brouillon propose un niveau : le domaine où la conversation est arrivée si vous pouvez y ajouter des éléments, sinon tout l'espace de travail ou l'adresse. Chaque brouillon compte pour une action IA. Depuis du code, rédigez avec POST /knowledge/drafts, qui demande threads:read en plus de knowledge:write, et enregistrez avec POST /knowledge/notes et le même threadId.
Réordonner les résultats de recherche
Une recherche trouve des passages par le sens et par les mots. Envoyez rerank: true avec POST /knowledge/search et l'IA lit aussi les 25 meilleurs passages et les range dans l'ordre qui répond le mieux à la question, en laissant de côté ceux qui n'aident pas. Cela ajoute une ou deux secondes et compte pour une action IA, c'est pourquoi cela ne se fait que si vous le demandez. reranked dans la réponse indique si cela a eu lieu, et quand cela ne se termine pas à temps, les passages gardent leur ordre habituel.
Statistiques d'utilisation
GET /knowledge/stats montre comment l'IA a utilisé la base de connaissances sur les 30 derniers jours, ou jusqu'à 90 si vous le demandez.
- Combien de fois une suggestion de réponse, un brouillon, l'assistant ou une recherche a trouvé quelque chose, combien de fois il a cherché sans rien trouver, et la part des recherches fructueuses, jour par jour.
- Où ces utilisations ont eu lieu :
compose,reply,chat,tooletsearch. - Les éléments les plus utilisés, et combien d'éléments prêts n'ont jamais servi. Chaque élément porte son propre décompte dans
uses, aveclastUsedAtpour la dernière fois. - Combien de suggestions et de questions attendent une relecture, et combien de signalements sont ouverts.
Désactiver l'apprentissage
Le réglage d'espace de travail knowledgeLearning est activé par défaut. Désactivez-le avec PATCH /settings et { "knowledgeLearning": false } et l'IA cesse de lire les réponses envoyées pour y chercher des faits à suggérer, cesse de noter les questions du courrier entrant et cesse de vérifier les éléments à la recherche de conflits. Les doublons sont toujours signalés, et ce qui a déjà été suggéré reste là pour que vous l'acceptiez ou l'écartiez.
Qui peut la lire et la modifier
- Lire nécessite
knowledge:readet modifierknowledge:write, qui inclut la lecture. Les rôles intégrés Admin, Member et Developer peuvent modifier des éléments, Viewer peut les lire, et Billing ne les atteint pas. - Modifier un élément demande d'atteindre chaque adresse que couvre son niveau : tout l'espace de travail demande toutes les adresses, un domaine le domaine entier, et une adresse cette adresse. Une clé ou une application limitée à certaines adresses ne peut modifier des éléments qu'à ces adresses, ou aux domaines qu'elle détient en entier.
- Une personne limitée à certaines adresses lit les éléments de tout l'espace de travail et ceux de ses adresses et des domaines de ces adresses. L'assistant et les outils MCP qui agissent pour elle n'ajoutent et ne modifient des éléments qu'aux adresses depuis lesquelles elle peut envoyer.
Confidentialité
- Le texte de chaque élément est chiffré au repos : le contenu d'une note, le texte lu d'un fichier ou d'une page, et chaque passage. Les mots que compare la recherche par mots sont stockés sous forme d'empreintes à clé, pas sous forme de mots.
- Les fichiers sont convertis en texte et les pages web sont lues par OpenEmail. La politique de confidentialité indique chaque service qui traite vos données.
- Pour la recherche par le sens, chaque passage et chaque question sont transformés en vecteur : une liste de nombres qui décrit leur sujet. Les vecteurs sont stockés non chiffrés à côté du texte chiffré, comme pour la recherche par le sens dans les e-mails.
- Les passages qu'utilise un prompt vont au modèle d'IA qui écrit la réponse, le brouillon ou la réplique, comme le reste du prompt.
- Supprimer un élément retire d'un coup son fichier, son texte et ses passages. La base de connaissances fait partie d'un export de l'espace de travail, et supprimer l'espace de travail la supprime.
- Tant que l'apprentissage est activé, le modèle d'IA lit chaque réponse envoyée dans une conversation, avec le message auquel elle répond, pour suggérer des notes, et lit deux éléments étroitement liés pour vérifier qu'ils ne se contredisent pas. Le réglage
knowledgeLearningdésactive les deux.
Depuis le code, le terminal et les agents
Tout ce qui précède se trouve dans l'API REST sous /knowledge, dans les SDK sous la forme openemail.knowledge (TypeScript) et client.knowledge (Python, Ruby et PHP), dans la CLI sous la forme openemail knowledge, et dans les outils MCP. Une clé a besoin de knowledge:read pour lire et de knowledge:write pour modifier des éléments.