Demandez à une équipe comment elle choisit la prochaine page de documentation à écrire, et vous entendrez en général un mélange de trois choses : ce dont le support s’est plaint le plus fort ce mois-ci, ce que le dernier gros client a demandé, et ce que la personne qui écrit trouve intéressant.
Pendant ce temps, si un assistant IA tourne sur votre centre d’aide, une liste parfaite vous attend déjà. Chaque fois que quelqu’un a posé une question à laquelle vos articles ne répondaient pas, c’était un brief de contenu, écrit par la personne qui en avait besoin, avec ses propres mots.
Simplement, je ne vous l’avais jamais vraiment montrée. Maintenant, si.
Conversations
La page Widget du site a maintenant un onglet Conversations : chaque échange d’un visiteur avec votre assistant, conservé 90 jours.
La recherche porte sur le contenu des messages, pas seulement sur les titres : chercher remboursement trouve les conversations où quelqu’un a écrit « remboursement », même si le titre généré automatiquement parle de tout autre chose. Chaque ligne indique combien de questions ont été posées, combien de réponses ont cité un article, et si des outils ont été exécutés.
Le filtre qui compte, c’est Aucun article cité. Ce sont les conversations dans lesquelles aucune réponse n’a cité d’article d’aide : l’assistant n’a rien trouvé, ou n’a pas cherché. C’est votre file de rédaction, classée selon le seul indicateur qui compte : quelqu’un voulait vraiment savoir.
Ouvrez-en une et vous voyez la transcription, les outils exécutés avec leurs arguments, et (cela s’est révélé plus important que je ne le pensais) la page où se trouvait le visiteur quand il a posé sa question. Une question qui paraît incompréhensible prise isolément devient souvent évidente quand on sait que le visiteur avait votre grille tarifaire sous les yeux en la tapant.
Un indicateur à 157 %
En développant cette vue, j’ai remarqué que la tuile « Sans réponse » de la même page affichait 157,1 %.
La cause était une erreur de bonne foi, et une erreur courante. Le numérateur comptait des tours : chaque fois que l’assistant répondait sans rien citer, le compteur augmentait d’un. Le dénominateur comptait des conversations : un ensemble d’identifiants de session uniques.
Ce n’est pas la même unité. Un visiteur agacé qui pose onze questions sans réponse dans une seule session compte pour onze échecs et une conversation. Divisez, et vous obtenez 1 100 %.
Les deux côtés comptent désormais la même chose : les tours de l’assistant qui ont réellement cherché dans le centre d’aide. Ce qui a fait apparaître un second bug, plus subtil.
Une question sans réponse n’est pas toujours un échec
L’ancien compteur augmentait dès qu’une réponse ne citait aucun article. Or mon prompt système demande explicitement à l’assistant de répondre à certaines choses sans chercher : les salutations, « que savez-vous faire ? », les questions de clarification posées au visiteur. C’est le comportement attendu. Chercher « bonjour » dans votre centre d’aide, ce serait ça, le bug.
Toutes ces réponses étaient enregistrées comme des lacunes de contenu.
La correction a donc deux volets : faire correspondre les unités, et ne compter que les tours où l’assistant a vraiment cherché. Une salutation n’est plus un échec de documentation. La liste Lacunes de contenu ne contient plus que des questions qui méritaient une réponse et n’en ont pas eu.
La leçon que je généraliserais : quand un pourcentage est faux, le bug intéressant est rarement dans l’arithmétique. C’est que les deux nombres ne mesuraient pas la même chose, et que personne ne l’a remarqué avant que l’un d’eux devienne assez grand pour casser l’affichage.
La boucle
Elle tient dans le temps d’un café :
Filtrez sur Aucun article cité.
Lisez-en quelques-unes. Cherchez la même question posée de trois façons différentes.
Écrivez l’article qui aurait dû exister. Publiez-le.
L’assistant le prend en compte immédiatement : pas de réindexation, pas de rebuild.
Revenez dans quinze jours et voyez si cette question a cessé d’apparaître. C’est la seule boucle de retour sur la documentation que je connaisse qui se referme toute seule.
Ce que Kookee conserve, et ce qu’il ne conserve pas
Comme il s’agit d’une boîte de réception de support sous un autre nom, les limites comptent.
Conservé : les messages du visiteur, les réponses de l’assistant, les outils exécutés et leurs arguments, les articles cités, ainsi que l’URL et le titre de la page d’où vient chaque question. Supprimé automatiquement au bout de 90 jours.
Non conservé : le texte de la page lu par l’assistant, tout ce qui est transmis comme contexte de l’application, et les résultats renvoyés par vos propres outils. Ils servent à répondre à la question posée, puis sont jetés.
Les visiteurs sont anonymes, sauf si votre site les identifie. Une conversation est liée à une session de navigateur : le widget ne demande jamais de nom ni d’e-mail, mais votre page peut l’étiqueter avec identify(). Cela dit, les gens tapent des choses personnelles dans les fenêtres de chat : tout membre du projet peut donc lire les transcriptions, et seuls les propriétaires et les administrateurs peuvent les supprimer.
En ligne dès maintenant sur la page Widget du site. Si le widget tourne chez vous depuis un moment, un arriéré vous attend déjà, et il est sans doute plus honnête sur votre documentation que votre dernier audit de contenu.