Publié le dans Technologie

Comment nous avons créé un data scientist personnel pour tout le monde chez Notion

Par David Thomas

Technical Engineering Manager, Data Infrastructure

Chez Notion, les questions sur les donnĂ©es se heurtaient toujours au mĂȘme obstacle : le temps de l’équipe en charge des donnĂ©es. Quand quelqu’un publiait un message sur Slack, un data scientist devait examiner la demande, trouver la bonne source, vĂ©rifier la dĂ©finition, rĂ©diger la requĂȘte et expliquer le rĂ©sultat. MĂȘme les questions courantes pouvaient prendre des jours.

Pour raccourcir ce cycle, nous avons créé Data Scout, notre agent de donnĂ©es interne. DĂ©sormais, tout le monde chez Notion peut poser une question en langage courant et obtenir une rĂ©ponse Ă  partir de nos donnĂ©es gouvernĂ©es dans Snowflake. En deux mois, les demandes adressĂ©es chaque semaine Ă  l’équipe en charge des donnĂ©es ont diminuĂ© d’environ 80 %. Les questions qui restaient autrefois en attente ne prennent plus que quelques minutes.

Ce changement a fait gagner un temps prĂ©cieux aux Ă©quipes en charge des donnĂ©es. Au lieu de passer leur temps Ă  extraire les mĂȘmes chiffres ou Ă  exĂ©cuter des variantes de la mĂȘme analyse, elles peuvent se consacrer Ă  des tĂąches plus stratĂ©giques, oĂč leur jugement et leur expertise sont indispensables.

Aujourd’hui, environ la moitiĂ© des employé·es de Notion utilise Data Scout. Mais ce qui a le plus changĂ©, c’est la façon de travailler. Les Ă©quipes lui demandent des chiffres pour leurs recherches, leurs rapports et la prĂ©paration de leurs rĂ©unions. « Est-ce que tu as demandĂ© Ă  Data Scout ? » est devenue une question courante. Plus besoin d’ouvrir un ticket et d’attendre la rĂ©ponse pour prendre des dĂ©cisions basĂ©es sur des donnĂ©es.

Je suis data engineer et j’ai participĂ© Ă  la crĂ©ation de Data Scout. Cet article est destinĂ© aux responsables d’entreprise qui souhaitent comprendre pourquoi nous l’avons créé et ce que cela nous a apportĂ©. Il est Ă©galement destinĂ© Ă  mes collĂšgues data engineers qui veulent savoir comment nous l’avons créé. Je vais commencer par expliquer comment nos Ă©quipes utilisent actuellement Data Scout, puis j’aborderai les choix techniques et les compromis qui ont guidĂ© sa crĂ©ation.

Comment les équipes de Notion utilisent Data Scout

Data Scout connecte les donnĂ©es gouvernĂ©es dans Snowflake aux connaissances de l’entreprise dans Notion et aux sources connectĂ©es comme Slack. Snowflake applique les autorisations de donnĂ©es, tandis que Notion contrĂŽle l’accĂšs Ă  l’agent et Ă  ses outils et fournit le contexte mĂ©tier nĂ©cessaire pour comprendre chaque question.⁠

Schéma du fonctionnement de Data Scout

Cette base commune et ce modĂšle d’autorisation permettent Ă  de nombreuses Ă©quipes d’utiliser le mĂȘme agent pour prendre diffĂ©rentes dĂ©cisions : l’équipe commerciale peut se renseigner sur l’adoption d’un compte, l’équipe produit peut examiner les abandons lors de l’intĂ©gration et l’équipe en charge de l’expĂ©rience client peut Ă©tudier le volume des demandes adressĂ©es au service d’assistance.

Nous avons soumis 200 vraies questions à Data Scout. Voici les thÚmes les plus fréquents :

Équipe

Tùche récurrente

Question représentative

Ventes

Utilisation des comptes, adoption de l’IA, licences, ARR, pipeline et propriĂ©tĂ©

Comment ce compte utilise-t-il Notion et l’IA dans ses espaces de travail ?

Ingénierie

Comportement du produit et de l’IA, recherches d’identitĂ© et validation des donnĂ©es

Quels agents ou espaces de travail sont restĂ©s actifs et oĂč le comportement a-t-il changé ?

Expérience client

Volume de tickets, délai de premiÚre réponse, score de satisfaction client et contexte client

Qu’est-ce qui explique le volume de demandes et le temps de rĂ©ponse de cette file d’attente du service d’assistance ?

Produit

Adoption des fonctionnalités, intégration, activation et conversion

À quel stade les personnes abandonnent-elles l’intĂ©gration et en quoi cela varie-t-il selon la cohorte ?

Marketing

Ciblage de comptes, adoption par les client·es, campagnes et pipeline

Quels comptes cibles utilisent dĂ©jĂ  l’IA de Notion et oĂč concentrer nos efforts de prospection ?

Exemple de notre Ă©quipe GTM : comprendre l’adoption au niveau des comptes

Pour voir comment ces Ă©lĂ©ments s’articulent, suivons un membre de notre Ă©quipe GTM qui prĂ©pare le renouvellement d’un contrat client.

Il demande : « L’adoption de l’IA augmente-t-elle pour ce compte ? » Pour rĂ©pondre, il faut choisir la bonne mĂ©trique d’utilisation et la bonne portĂ©e du compte, et connaĂźtre les objectifs du client ainsi que son plan de dĂ©ploiement de l’IA. Data Scout combine les donnĂ©es d’utilisation de Snowflake avec les notes sur le compte et les rĂ©unions passĂ©es dans Notion pour dĂ©terminer si l’adoption suit le plan du client.

Une premiĂšre rĂ©ponse soulĂšve souvent d’autres questions : « Quelles Ă©quipes contribuent Ă  la hausse de l’adoption de l’IA ? » ou « Cette croissance vient-elle de nouvelles personnes ou d’un usage accru par les personnes dĂ©jĂ  prĂ©sentes ? » PlutĂŽt que d’ouvrir une nouvelle demande de donnĂ©es pour chaque question, notre gestionnaire de compte peut approfondir son analyse dans la mĂȘme conversation et arriver Ă  la prochaine rĂ©union de renouvellement avec une vision complĂšte des changements.

Passer d’un agent de donnĂ©es unique Ă  des workflows rĂ©currents et spĂ©cialisĂ©s

Les questions ponctuelles n’étaient que le dĂ©but. Au fil du temps, les Ă©quipes ont créé des agents qui se connectent Ă  Data Scout via une connexion MCP partagĂ©e, rĂ©utilisant son accĂšs aux donnĂ©es gouvernĂ©es et le contexte de l’entreprise. Deux autres modes de travail ont Ă©mergé :

  • Analyse rĂ©currente : l’agent Data Scout Reporter se connecte Ă  Data Scout pour transformer les spĂ©cifications de rapports enregistrĂ©es en rapports automatisĂ©s dans Notion et Slack. Les Ă©quipes peuvent ainsi suivre les mĂȘmes indicateurs au fil du temps sans exĂ©cuter l’analyse chaque semaine.

  • Expertise sectorielle : les Ă©quipes ont créé des agents spĂ©cialisĂ©s avec des instructions plus prĂ©cises pour leurs workflows, tout en continuant Ă  tirer parti des donnĂ©es gouvernĂ©es et du contexte de Data Scout.

Data Scout est l’agent interne le plus utilisĂ© chez Notion, mais les agents spĂ©cialisĂ©s ont aussi trouvĂ© leur public. Le premier rĂ©pond aux questions spontanĂ©es ; les autres mettent cette mĂȘme base au service de workflows reproductibles et propres Ă  chaque Ă©quipe. Mais plus les Ă©quipes et les agents rĂ©utilisaient cette base, plus il devenait difficile de garantir la fiabilitĂ© de leurs rĂ©ponses.

Pourquoi une requĂȘte SQL qui fonctionne ne suffit pas

Nous avons constatĂ© qu’une requĂȘte pouvait s’exĂ©cuter sans erreur tout en rĂ©pondant Ă  la mauvaise question. Le plus difficile Ă©tait de garder la logique mĂ©tier intacte Ă  mesure qu’une question devenait une requĂȘte, et que la requĂȘte devenait une rĂ©ponse. Prenons la question de l’adoption. MĂȘme si la requĂȘte SQL fonctionne, la rĂ©ponse peut ĂȘtre erronĂ©e sur quatre aspects :

  • Le sens peut ĂȘtre erronĂ©. Compter les appartenances Ă  des espaces de travail plutĂŽt que les personnes peut gonfler l’adoption, car une mĂȘme personne peut appartenir Ă  plusieurs espaces.

  • Le routage peut ĂȘtre erronĂ©. L’agent peut trouver une table ou une connexion plausible sans trouver la dĂ©finition Ă  jour ni les filtres requis.

  • La mesure peut ĂȘtre erronĂ©e. Un changement dans la façon de suivre l’utilisation ou une correction des donnĂ©es historiques peut donner l’impression que l’adoption a augmentĂ© ou diminuĂ© sans que les habitudes des client·es aient rĂ©ellement changĂ©.

  • L’interprĂ©tation peut ĂȘtre erronĂ©e. MĂȘme un chiffre exact peut ĂȘtre mal interprĂ©tĂ©. Une adoption qui semble stagner peut ĂȘtre conforme aux objectifs si le client ou la cliente dĂ©ploie l’IA Ă©quipe par Ă©quipe. Ce contexte se trouve dans les notes du compte et les rĂ©unions passĂ©es dans Notion, mais pas dans Snowflake.

La leçon est claire : un contexte soigneusement prĂ©parĂ© compte autant que la connexion elle-mĂȘme. L’accĂšs aux donnĂ©es n’indique pas Ă  l’agent quelle dĂ©finition privilĂ©gier, quelle source utiliser ni la signification d’un rĂ©sultat pour l’entreprise. Cette connaissance doit avoir un ou une propriĂ©taire chargé·e de la tenir Ă  jour.

Comment nous créons et encadrons les agents de données

Notre approche repose sur un accĂšs encadrĂ© aux agents et aux donnĂ©es, un contexte de donnĂ©es partagĂ© et des instructions claires. Ensemble, ces Ă©lĂ©ments dĂ©finissent les autorisations de l’agent, les connaissances qu’il utilise et le processus qu’il suit.

Data Scout repose sur un accÚs encadré aux agents et aux données, un contexte de données partagé et des instructions claires

Ces piliers ne suffisent pas Ă  garantir la fiabilitĂ© des rĂ©ponses. Nous vĂ©rifions les rĂ©sultats, examinons comment l’agent les a obtenus et mettons Ă  jour les instructions Ă  mesure que les donnĂ©es et l’activitĂ© Ă©voluent.

Encadrer l’agent et son accĂšs aux donnĂ©es

Notion et Snowflake encadrent diffĂ©rentes parties du workflow. Notion gĂšre l’accĂšs Ă  l’espace de travail et les outils disponibles, tandis que Snowflake applique les autorisations d’accĂšs aux donnĂ©es selon l’identitĂ© qui exĂ©cute la requĂȘte.

  • Les utilisateur·rices peuvent se connecter Ă  Snowflake MCP via des custom agents ou leur agent Notion. Quel que soit le point d’entrĂ©e, chaque individu doit se connecter Ă  Snowflake avec ses propres identifiants. De cette façon, les requĂȘtes s’exĂ©cutent sous l’identitĂ© Snowflake authentifiĂ©e de cette personne, et les rĂ©ponses reflĂštent son accĂšs individuel aux donnĂ©es.

  • Les contrĂŽles de donnĂ©es Snowflake appliquent les rĂŽles et les autorisations accordĂ©es, ainsi que les politiques de masquage et de restriction au niveau des lignes, lorsqu’elles sont configurĂ©es. Ils limitent ainsi les privilĂšges aux donnĂ©es et aux actions nĂ©cessaires au workflow.

La requĂȘte du/de la gestionnaire de compte doit respecter les autorisations d’accĂšs aux donnĂ©es de la connexion. Ses rĂ©sultats doivent aussi ĂȘtre appropriĂ©s pour le rapport ou le canal dans lequel ils sont partagĂ©s. Un agent peut mettre la main sur des donnĂ©es difficiles Ă  trouver, mais il ne peut pas contourner les contrĂŽles d’accĂšs.

Connecter les données et le contexte métier

Un contexte de donnĂ©es partagĂ© permet aux agents de s’appuyer sur les mĂȘmes spĂ©cifications et les mĂȘmes documentations source. Notion est notre centre de rĂ©fĂ©rence pour le contexte mĂ©tier : c’est lĂ  que l’agent trouve les plans, les dĂ©cisions et les informations sur les client·es qui l’aident Ă  comprendre la question.

Nous dissocions clairement les responsabilitĂ©s, mĂȘme lorsque les rĂ©fĂ©rences cohabitent :

  • Le contexte de donnĂ©es rĂ©git le calcul : les indicateurs, les sources, le niveau de dĂ©tail, les relations, les filtres requis et fraĂźcheur la rĂ©cence des donnĂ©es.

  • Le contexte mĂ©tier explique les objectifs, la terminologie de l’entreprise, l’historique client et les Ă©vĂ©nements qui peuvent aider Ă  interprĂ©ter le rĂ©sultat.

  • Les instructions de routage sĂ©lectionnent les sources, connexions et outils approuvĂ©s, puis repĂšrent le contexte pertinent. Elles peuvent couvrir plusieurs connexions Snowflake ou diffĂ©rentes plateformes, et pas seulement les tables d’un mĂȘme data warehouse.

Nous utilisons une base de donnĂ©es Notion comme index partagĂ© des spĂ©cifications, des schĂ©mas, des skills et des changements de donnĂ©es connus. Chaque ligne correspond Ă©galement Ă  une page. Ses propriĂ©tĂ©s aident l’agent Ă  trouver les instructions pertinentes, et son contenu rassemble les spĂ©cifications, procĂ©dures, avertissements et rĂ©fĂ©rences dont il a besoin.

L’agent lit le contenu des pages sĂ©lectionnĂ©es et suit les rĂ©fĂ©rences pertinentes, sans charger toute la base de donnĂ©es. Les mĂ©tadonnĂ©es l’aident Ă  trouver le bon contexte, mais ne le remplacent pas. Si une spĂ©cification se trouve ailleurs, l’entrĂ©e renvoie Ă  sa source tenue Ă  jour au lieu de la copier.

Notre choix s’est portĂ© sur Notion car l’outil maintient le contexte directement liĂ© aux plans, aux dĂ©cisions et au partage de connaissances des client·es dĂ©jĂ  gĂ©rĂ©s par nos Ă©quipes. L’agent peut lire une dĂ©finition de mĂ©trique et les notes sur le compte qui l’expliquent dans le mĂȘme espace de travail. Les propriĂ©taires peuvent modifier et partager des pages qu’ils connaissent en s’appuyant sur les autorisations existantes de Notion. Quant aux agents, ils repĂšrent les entrĂ©es grĂące Ă  leurs propriĂ©tĂ©s, puis lisent le contenu des pages. Nous avons essayĂ© de placer toutes les instructions dans les propriĂ©tĂ©s de la base de donnĂ©es pour les retrouver plus vite, mais cela surchargeait les mĂ©tadonnĂ©es et compliquait leur mise Ă  jour.

Le revers de la mĂ©daille, c’est qu’une bibliothĂšque de pages consultables ne permet pas d’imposer la dĂ©finition des indicateurs, ni de remplacer une couche sĂ©mantique. Elle nĂ©cessite toujours des responsables clairement identifiĂ©s, des rĂ©fĂ©rences de sources Ă  jour ainsi qu’un processus de validation. C’est pourquoi nous maintenons la boucle de rĂ©vision et de tri dĂ©crite ci-dessous.

Pour autant, Notion s’imposait comme la solution idĂ©ale. Ceux qui savent interprĂ©ter les donnĂ©es les exploitent dĂ©jĂ  au sein de la plateforme, ce qui permet de lier directement le contexte aux projets qui font vivre ces donnĂ©es. Ce n’est cependant pas une obligation. Les client·es peuvent conserver leur expertise en donnĂ©es dans leurs outils existants, y compris Snowflake Semantic Views et Cortex Analyst, et la relier au contexte mĂ©tier dans Notion.

Les instructions de routage restreignent la recherche avant la rĂ©daction d’une requĂȘte, tout en sĂ©parant les dĂ©finitions des donnĂ©es de leur interprĂ©tation mĂ©tier. Ce modĂšle est donnĂ© Ă  titre d’exemple : les systĂšmes connectĂ©s dĂ©pendent de votre configuration.

Organiser le contexte par domaine et par type de question

Nos instructions de dĂ©couverte commencent par un ou deux domaines pertinents et les skills associĂ©s, avant de sĂ©lectionner des tables. Pour une recherche ponctuelle, une skill prioritaire qui correspond exactement Ă  la question ou Ă  une entrĂ©e des FAQ peut suffire. L’agent Ă©largit sa recherche uniquement lorsque les instructions font dĂ©faut.

DĂ©couverte du contexte : posez une question, trouvez l’entrĂ©e correspondante, puis lisez ses rĂ©fĂ©rences. L’entrĂ©e relie la question aux dĂ©finitions, au contexte mĂ©tier et aux outils appropriĂ©s.
DĂ©couverte du contexte : posez une question, trouvez l’entrĂ©e correspondante, puis lisez ses rĂ©fĂ©rences. L’entrĂ©e relie la question aux dĂ©finitions, au contexte mĂ©tier et aux outils appropriĂ©s.

L’index aide l’agent Ă  trouver la bonne page et Ă  comprendre Ă  quoi elle sert. Ces champs proviennent des instructions de dĂ©couverte. Les valeurs sont donnĂ©es Ă  titre d’exemple.

Champ

Objectif

Exemple

Titre

Nommez l’entrĂ©e clairement

Adoption du compte avant le renouvellement

Domaine

PrĂ©ciser le domaine d’activitĂ©

Ventes, Produit

Type

Indiquer comment utiliser la page

Skill, Définition de métrique, Schéma de table, Questions fréquentes

Description/mots clés

Faire correspondre l’intention avec des termes familiers

Renouvellement, adoption, examen du compte

Priorité

Ordonner les instructions pertinentes

PrioritĂ© de recherche dĂ©finie par l’équipe

Chaque ligne s’ouvre sur une page avec des titres cohĂ©rents. Une skill courte pourrait ressembler Ă  ceci :

Le type compte : une skill fournit la procĂ©dure, une dĂ©finition de mĂ©trique prĂ©cise le calcul et un schĂ©ma de table indique le niveau de dĂ©tails, les filtres, les jointures et les avertissements. L’entrĂ©e renvoie Ă  la dĂ©finition tenue Ă  jour au lieu d’en crĂ©er une autre version.

L’état de rĂ©vision, la rĂ©cence et la propriĂ©tĂ© des donnĂ©es restent importants. La prioritĂ© dĂ©termine l’ordre dans lequel les entrĂ©es sont trouvĂ©es, pas leur approbation ni leur accĂšs.

Des instructions claires pour une analyse reproductible

Pour ĂȘtre utile, un bon contexte doit ĂȘtre exploitĂ© de maniĂšre cohĂ©rente. Des instructions claires aident l’agent Ă  choisir les bonnes sources, Ă  vĂ©rifier son travail et Ă  s’arrĂȘter lorsqu’il n’est pas en mesure de justifier une rĂ©ponse.

Une fois la question et la source identifiées, une exécution réussie nécessite encore une étape de validation avant la génération de la réponse.

Execution and review: query metadata travels with the work and failed checks lead to investigation.
ExĂ©cution et examen : les mĂ©tadonnĂ©es de requĂȘte accompagnent le travail, et les contrĂŽles qui Ă©chouent donnent lieu Ă  un examen.

Les instructions de dĂ©couverte indiquent quoi faire en cas d’échec. Si une colonne requise n’est pas documentĂ©e, examiner le schĂ©ma correspondant. Si Snowflake signale un identifiant invalide, vĂ©rifier le schĂ©ma au lieu d’essayer un autre nom plausible.

Lorsque les instructions chargĂ©es dĂ©crivent dĂ©jĂ  les champs requis, l’agent peut les exploiter sans avoir Ă  rĂ©cupĂ©rer de nouveau l’ensemble du schĂ©ma. Il s’agit lĂ  de choix stratĂ©giques visant Ă  optimiser l’utilisation des requĂȘtes ou des appels de rĂ©cupĂ©ration.

  • DĂ©terminer la mĂ©trique, le compte ou la population, la pĂ©riode et la comparaison avant de procĂ©der au calcul.

  • Orienter la requĂȘte vers la connexion et la source approuvĂ©es, puis utiliser les conseils pertinents du domaine ou la skill correspondant(e).

  • VĂ©rifier la logique de requĂȘte et les donnĂ©es renvoyĂ©es, les relations entre les tables, les filtres, les dĂ©nominateurs et les pĂ©riodes incomplĂštes.

  • Signaler les dĂ©finitions manquantes, les accĂšs refusĂ©s et les vĂ©rifications ayant Ă©chouĂ© au lieu de trouver une solution de contournement.

  • DiffĂ©rencier l’incertitude concernant un nombre de l’incertitude concernant son explication.

Commencez par le rĂ©sultat et les Ă©lĂ©ments qui l’étayent. Ne montrez les requĂȘtes intermĂ©diaires dans la rĂ©ponse principale que si elles aident Ă  la vĂ©rifier.

Revenons Ă  l’exemple de l’adoption par les comptes. Avant d’interprĂ©ter la tendance par rapport aux objectifs du compte, Data Scout vĂ©rifie la fiabilitĂ© de la mesure :

  • VĂ©rification de l’entité : l’association des comptes aux espaces de travail couvre l’intĂ©gralitĂ© du client ciblĂ©, sans gĂ©nĂ©rer de doublons de personnes ou d’activitĂ©s.

  • VĂ©rification de la mĂ©trique : le numĂ©rateur, le dĂ©nominateur, les exclusions et les pĂ©riodes respectent la dĂ©finition tenue Ă  jour.

  • VĂ©rification des donnĂ©es : la pĂ©riode est suffisamment complĂšte pour ĂȘtre comparĂ©e, et les changements de suivi connus ou les backfills sont pris en compte.

  • VĂ©rification Ă  une date donnĂ©e : si une source contient une ligne par entitĂ© et par jour, on utilise une seule date pour connaĂźtre l’état actuel. Une pĂ©riode de plusieurs jours risque de compter plusieurs fois la mĂȘme entitĂ© ; elle est donc utilisĂ©e uniquement pour analyser une Ă©volution dans le temps.

  • VĂ©rification de l’interprĂ©tation : la rĂ©ponse distingue clairement le changement mesurĂ© des explications possibles trouvĂ©es dans les notes de dĂ©ploiement ou les Ă©changes avec les client·es.

Le ou la gestionnaire de compte peut poser des questions de suivi et consulter les sources. L’équipe de gestion du compte reste responsable de la dĂ©cision.

Maintenir les données et le contexte métier à jour

Les donnĂ©es et l’activitĂ© de l’entreprise Ă©voluent sans cesse : les instructions qui les accompagnent doivent suivre. Le contexte de donnĂ©es change avec les modĂšles, les dĂ©finitions et les systĂšmes sources. Le contexte mĂ©tier Ă©volue avec les objectifs, les dĂ©cisions et l’activitĂ© des client·es. Chez Notion, nous tenons ces instructions Ă  jour Ă  l’aide de custom agents dont la portĂ©e est dĂ©finie, et non Ă  l’aide d’automatisations de base de donnĂ©es. Chaque nuit, un agent de rĂ©vision examine les conversations et les requĂȘtes de Data Scout, Slack, Notion et GitHub pour repĂ©rer le contexte manquant, obsolĂšte ou contradictoire, puis consigne ses observations. Un agent de tri Ă©limine ensuite les doublons, apporte des petites corrections justifiĂ©es et confie les cas ambigus ou plus risquĂ©s Ă  une personne pour examen approfondi.

Appliquez uniquement les modifications autorisées. Signalez toute incertitude ou tout risque accru pour que les propriétaires puissent les examiner.
Appliquez uniquement les modifications autorisées. Signalez toute incertitude ou tout risque accru pour que les propriétaires puissent les examiner.

Ce processus de validation permet de bien dissocier le constat d’un changement de l’autorisation de le dĂ©ployer.

  • Une preuve ne vaut pas approbation. Une correction sur Slack justifie une vĂ©rification, mais n’autorise pas Ă  réécrire une mĂ©trique.

  • « Fusionné » ne veut pas dire « dĂ©ployé ». Une pull request ne prouve pas que le changement est en production ni que la mise Ă  jour des donnĂ©es historiques a Ă©tĂ© effectuĂ©e.

  • Examiner avant de rĂ©utiliser. Appliquez uniquement les changements autorisĂ©s, conservez les modifications humaines plus rĂ©centes et valider les mises Ă  jour. Tout changement ambigu ou critique doit ĂȘtre remontĂ© au/Ă  la propriĂ©taire.

Dans l’exemple de l’adoption, si le nom d’un Ă©vĂ©nement change ou si un incident est rĂ©solu, il peut ĂȘtre nĂ©cessaire de mettre Ă  jour les instructions associĂ©es Ă  la source de donnĂ©es. L’agent doit alors s’appuyer sur les instructions mises Ă  jour et validĂ©es, plutĂŽt que de modifier lui-mĂȘme leur interprĂ©tation lorsqu’il formule sa rĂ©ponse. Des instructions complĂ©mentaires expliquent comment ces modifications sont examinĂ©es et traitĂ©es.

Voir ce que l’agent a vraiment fait

Notre outil d’exĂ©cution de requĂȘtes,run_tagged_query, rassemble les mĂ©tadonnĂ©es et l’exĂ©cution en un seul appel. Il ajoute ces mĂ©tadonnĂ©es structurĂ©es sous forme de commentaire JSON directement dans le code SQL, puis appelle en interne l’outil de requĂȘte Snowflake habituel.

Les mĂ©tadonnĂ©es peuvent inclure la mĂ©trique canonique, la rĂ©fĂ©rence vers sa dĂ©finition, les pages de contexte, les filtres, la pĂ©riode analysĂ©e et l’identifiant de la question. Un commentaire dans une requĂȘte SQL n’est pas Ă©quivalent au paramĂštre de session natif QUERY_TAG de Snowflake. Lorsque la couche d’exĂ©cution contrĂŽle une session Snowflake stable, elle peut Ă©galement dĂ©finir ces mĂȘmes mĂ©tadonnĂ©es dans QUERY_TAG. Il devient alors possible de filtrer directement les requĂȘtes par ces informations dans ACCOUNT_USAGE.QUERY_HISTORY. Il ne faut toutefois pas supposer que plusieurs appels Ă  un outil utilisent la mĂȘme session. Avec un pool de connexions, le tag doit ĂȘtre mis Ă  jour ou effacĂ© Ă  chaque rĂ©utilisation pour Ă©viter toute erreur d’attribution.

Ces traces nous aident Ă  examiner l’analyse et Ă  dĂ©terminer oĂč apporter des amĂ©liorations.

  • Les questions Ă©quivalentes utilisent-elles les dĂ©finitions et la portĂ©e prĂ©vues ?

  • Les Ă©checs indiquent-ils un contexte manquant, une mauvaise source ou un problĂšme d’exĂ©cution ?

  • OĂč les requĂȘtes ou les recherches de contexte sont-elles rĂ©pĂ©tĂ©es inutilement ?

  • Quelles questions rĂ©currentes nĂ©cessitent un modĂšle d’analyse ou un rapport rĂ©utilisable ?

Si la question sur l’adoption produit des rĂ©ponses diffĂ©rentes, la trace peut rĂ©vĂ©ler une diffĂ©rence dans le mappage des comptes, le filtre de population ou la pĂ©riode analysĂ©e. Nous pouvons ensuite dĂ©terminer si la correction doit porter sur la dĂ©finition des donnĂ©es, le routage ou les instructions de validation.

Nous amĂ©liorons encore les contrĂŽles en comparant les rĂ©ponses Ă  celles validĂ©es par les responsables des donnĂ©es. Cela consiste Ă  tester les modifications apportĂ©es au contexte et aux instructions sur un mĂȘme ensemble de questions reprĂ©sentatives, en utilisant si nĂ©cessaire des pĂ©riodes fixes ou des instantanĂ©s de donnĂ©es. Le bon fonctionnement des requĂȘtes et l’augmentation de leur utilisation sont des indicateurs utiles, mais ne garantissent pas l’exactitude des rĂ©ponses.

Ces traces sont utiles, mais elles ont des limites. La cohĂ©rence ne signifie pas que le langage SQL doit ĂȘtre identique. Des requĂȘtes Ă©quivalentes peuvent avoir des formes diffĂ©rentes, et des autorisations diffĂ©rentes peuvent lĂ©gitimement produire des rĂ©sultats diffĂ©rents. Nous comparons donc plutĂŽt la dĂ©finition, la portĂ©e et la pĂ©riode. Les requĂȘtes en lecture seule consomment tout de mĂȘme des ressources ; nous veillons donc Ă  ce que les outils restent ciblĂ©s et les pĂ©rimĂštres d’investigation restreints. Multiplier les recherches d’informations ou les tentatives n’amĂ©liore pas automatiquement la qualitĂ© d’une rĂ©ponse. L’outil d’exĂ©cution de requĂȘtes est Ă©galement permissif par dĂ©faut, de sorte qu’une attribution incomplĂšte ne bloque pas une requĂȘte valide. Des vĂ©rifications plus strictes des mĂ©tadonnĂ©es peuvent ĂȘtre activĂ©es, mais aucun de ces modes ne prouve l’exactitude d’une rĂ©ponse ni ne modifie les autorisations d’accĂšs aux donnĂ©es.

Créer votre propre agent de données

Commencez par quelques questions rĂ©currentes, appuyĂ©es par des donnĂ©es approuvĂ©es et des consignes tenues Ă  jour. Au lieu de documenter toute l’entreprise, basez-vous sur ces questions pour dĂ©finir les besoins de l’agent.

  • Choisissez des donnĂ©es et des dĂ©finitions autorisĂ©es auxquelles les propriĂ©taires des donnĂ©es font confiance.

  • Connectez les connaissances mĂ©tier pertinentes et clarifiez le processus d’analyse.

  • Évaluez le travail rĂ©alisĂ© et dĂ©finissez un processus de rĂ©vision des corrections au fil de l’évolution du systĂšme.

Si vous souhaitez en savoir plus sur notre configuration chez Notion, notre guide du Centre d’aide dĂ©taille les choix de connexions, des exemples d’instructions, des conseils de routage, les workflows de maintenance et des exemples de journalisation des requĂȘtes.

Si vous souhaitez crĂ©er un agent de donnĂ©es pour votre Ă©quipe, nous proposons un programme d’accĂšs anticipĂ© pour aider nos client·es Ă  configurer des agents Notion alimentĂ©s par Snowflake. Contactez-nous !

Partager cet article

Demandez une dĂ©mo pour en savoir plus sur nos tarifs et nos cas d’usage.

Powered by Fruition