En résumé
Un agent est un assistant à qui l’on demande en langage courant d’agir sur un projet : construire une cohorte, ajouter un graphique, proposer des alignements de concepts. Il tourne dans un client de conversation — LibreChat, dans un onglet à côté de Linkr, ou OpenCode — et agit sur Linkr par le serveur MCP, avec vos droits et jamais davantage. Chacune de ses modifications apparaît dans Linkr sous vos yeux, dans la cloche des notifications.
Pourquoi un agent
Certaines tâches sont longues sans être difficiles, d’autres sont réellement ardues. L’agent aide dans les deux cas, pour des raisons différentes.
La construction de cohorte est l’exemple le plus parlant. L’agent peut interroger la base pour découvrir quels concepts y sont réellement présents, sous quels codes, avec quelles fréquences. Quelqu’un qui connaît mal un entrepôt oubliera des codes équivalents ; l’agent les cherche, construit les critères, lance la cohorte et lit l’attrition — le nombre de patients restant après chaque critère — pour repérer un critère qui n’élimine personne.
Vient ensuite le code. Décrire l’analyse voulue, obtenir un script R ou Python dans l’IDE du projet, le faire tourner, lire le résultat, corriger.
Enfin, les tâches répétitives : assembler un tableau de bord widget par widget, documenter les colonnes d’un jeu de données, ou passer en revue des centaines de codes locaux à aligner sur OMOP. On les fait très bien à la main, mais il devient agréable de les dicter.
Ce qu’un agent peut faire aujourd’hui
| Domaine | Exemples de demandes |
|---|---|
| Entrepôt | Décrire une base, chercher un concept avec ses effectifs, lancer une requête SQL en lecture seule. |
| Cohortes | Créer et modifier une cohorte, la lancer, produire son rapport, la figer, importer une définition ATLAS, dériver une base restreinte à la cohorte. |
| Concepts | Lire les concept sets de l’espace de travail, gérer les listes de concepts du projet. |
| Jeux de données | Créer un jeu de données à partir d’une requête, renommer ou supprimer des colonnes, documenter une variable. |
| Tableaux de bord | Créer un tableau de bord, ajouter onglets, widgets et filtres. |
| IDE | Lire et écrire les scripts du projet, exécuter du R ou du Python et récupérer la sortie et les figures. |
| Alignement de concepts | Parcourir les concepts source et leurs métadonnées, chercher dans le vocabulaire OMOP, déposer des suggestions à relire. |
| Qualité et ETL | Lancer un jeu de règles de qualité et enquêter sur un contrôle en échec ; lire, écrire et lancer les scripts d’un pipeline ETL. |
| Catalogue et wiki | Créer et calculer un catalogue de données ; lire, chercher et rédiger des pages du wiki. |
| Environnements | Installer ou mettre à jour des packages R et Python, lancer un script en tâche de fond et suivre son avancement. |
| Documentation | Chercher dans cette documentation et citer la page, pour répondre à « comment fait-on… dans Linkr ? ». |
L’agent sait aussi où vous êtes dans Linkr : le projet ouvert, la cohorte ou le tableau de bord affiché. « Ajoute un histogramme de l’âge ici » vise donc l’onglet que vous regardez.
Aligner des concepts avec un skill
Pour l’alignement de concepts, un skill fourni avec Linkr décrit à l’agent la méthode à suivre : lire les métadonnées de chaque code, justifier chaque choix, ne rien valider à votre place. Les propositions arrivent dans l’onglet Suggestions, où vous les relisez.
Vous gardez la main
Vous voyez chaque modification
Linkr se met à jour pendant que l’agent travaille : un widget ajouté apparaît dans le tableau de bord ouvert, un script modifié dans l’IDE. Chaque modification est aussi inscrite dans la cloche des Notifications, en haut de l’écran — « Ajout par MCP », « Modification par MCP » — avec un lien vers l’élément concerné.
Pour les modifications en nombre, le bouton Voir le détail ouvre la liste complète : par exemple chaque suggestion d’alignement déposée, avec son concept source, sa cible et le commentaire de l’agent. Ce qu’un agent fait sur une cohorte, un tableau de bord, un onglet ou un widget — ajout, modification, suppression — ainsi que la création d’un jeu de données s’annule directement depuis la notification, avec Annuler, tant que l’élément n’a pas changé depuis.
- Projet de mapping « Biologie — CHU »24 suggestions IA ajoutéesAjout par MCP · à l'instant
- Dashboard « Description de la cohorte »Widget « Histogramme de l'âge » ajoutéAjout par MCP · il y a 2 minutes
- Cohorte « Sepsis-3, adultes »Modification par MCP · il y a 6 minutes
- Dashboard « Description de la cohorte »Onglet « Brouillon » suppriméSuppression par MCP · il y a 1 heure
Vous confirmez les actions
La demande de confirmation se règle dans le client de conversation, pas dans Linkr. Chaque outil que Linkr expose indique s’il se contente de lire, s’il modifie, ou s’il supprime : un client bien configuré laisse passer les lectures et vous demande votre accord avant le reste.
L’agent n’a jamais plus de droits que vous
L’agent agit avec votre clé API, donc avec vos permissions, revérifiées par le serveur à chaque action. Si vous ne pouvez pas modifier un tableau de bord, l’agent que vous pilotez ne le peut pas davantage.
Certaines actions lui restent hors de portée par construction : aucun outil ne les lui donne.
Hors de portée de l’agent
- Gérer les permissions et les membres.
- Créer, lister ou révoquer des clés API — même la sienne.
- Supprimer un projet ou un espace de travail.
- Pousser vers un dépôt git distant.
- Lire les secrets : les mots de passe de connexion aux bases sont chiffrés et jamais restitués.
- Modifier une base de données : les requêtes SQL qu’il lance sont en lecture seule.
Une consigne donnée au modèle se contourne ; un outil absent, non. Un agent privé d’un outil ne s’abstient pas de s’en servir, il en est incapable.
La question du modèle
C’est le point à trancher avant tout le reste, et il appartient à l’établissement. Le modèle se choisit dans le client de conversation — LibreChat laisse l’administrateur décider lesquels sont proposés.
Modèle local
Un modèle installé sur les machines de l’établissement. Les échanges ne quittent jamais l’établissement, et l’agent peut travailler sur les données cliniques.
Modèle distant
Un service hébergé par un tiers. Tout ce que les outils renvoient au modèle — résultats de requêtes, métadonnées des concepts, extraits de scripts — sort de l’établissement.
Privilégiez l'open source et les modèles locaux
En dehors des données de santé, il est possible d’utiliser Linkr avec un modèle accessible par API chez un fournisseur externe. Il est cependant très fortement conseillé d’utiliser des outils open source — LibreChat, OpenCode — et des modèles hébergés localement. Linkr ne filtre pas ce que les outils renvoient au modèle : avec un modèle distant, limitez-vous à des données ouvertes ou synthétiques — MIMIC-IV Demo, un vocabulaire ATHENA —, jamais à des données de patients réelles.
Pourquoi le mode serveur uniquement
L’agent passe par l’API de Linkr, qu’une installation dans le navigateur seul n’a pas. Voir Modes de déploiement.
Ce qui n’est pas encore tranché
- Une conversation intégrée à Linkr, dans un panneau latéral, plutôt que dans un onglet à côté. Elle sera décidée après un usage réel de LibreChat : ce qui compte le plus — voir les modifications arriver, les annuler — fonctionne déjà quel que soit le client.
- Des clés API plus restreintes : en lecture seule, ou limitées à un projet.
- L’annulation d’un tour entier de conversation, plutôt que modification par modification.
Pour aller plus loin
- Installer LibreChat — le client que nous recommandons, et sa configuration selon votre installation.
- Serveur MCP — créer sa clé API et connecter LibreChat ou OpenCode.
- Skills — les procédures que l’agent applique, dont celle de l’alignement de concepts.