La plupart des tutoriels RAG que l’on trouve en ligne montrent toujours le même jouet : « discutez avec votre PDF ». Ce qui y est rarement dit : ces démonstrations sont loin d’un usage productif. Dès que la base de connaissances grandit, que des documents sont mis à jour ou que des utilisateurs posent des questions que personne n’a testées, les problèmes commencent. C’est précisément là qu’intervient l’approche décrite ici.
Dans sa vidéo, Cole Medin montre comment, avec les deux outils que sont n8n (automatisation de flux de travail, comparable à Make.com ou Zapier) et Supabase (plateforme de base de données avec prise en charge vectorielle via PG Vector), on peut construire un agent IA RAG plus proche de la pratique que beaucoup d’autres guides. La promesse : pas de code, un effort raisonnable, et une architecture qui grandit avec la base de connaissances. Pour les décideurs de PME, l’intérêt tient surtout à ceci : cela permet de rendre consultables des documents internes, des comptes rendus ou des manuels, sans mobiliser une équipe de développement.
- Le RAG (Retrieval Augmented Generation) relie un modèle de langue à une base de connaissances propre, de sorte que l’agent accède à vos documents et non uniquement à son savoir d’entraînement.
- n8n prend en charge l’automatisation, Supabase sert à la fois de mémoire de conversation et de base de données vectorielle.
- L’ensemble du montage fonctionne sans programmation et, selon la vidéo, se met en place en moins de 15 minutes.
- Deux détails distinguent cette approche des tutoriels superficiels : un stockage évolutif de l’historique de conversation et la suppression des vecteurs obsolètes, afin d’éviter les doublons.
- Le palier gratuit de Supabase suffit largement pour démarrer, selon la vidéo.

Ce que l’agent fait concrètement
Le fonctionnement est montré dans la vidéo à partir d’un exemple simple. Au départ, la base de connaissances est vide, la table correspondante dans Supabase ne contient aucune entrée. À une question test sur les tâches issues d’une réunion, l’agent ne peut logiquement pas répondre.
Ensuite, un document contenant des notes de réunion est déposé sous forme de Google Doc dans un dossier surveillé. En une minute environ, un workflow n8n s’exécute en arrière-plan, traite le fichier et l’insère dans la base de connaissances. Un nouvel enregistrement apparaît alors dans Supabase avec le contenu de la page, les métadonnées (dont l’ID du fichier Google Drive) et ce que l’on appelle le vecteur d’embedding. Si l’on repose la même question, l’agent fournit à présent la bonne réponse tirée du document. Les mises à jour du fichier sont également détectées et reprises.
Vue d’ensemble du montage
Le workflow comprend deux parties : l’agent conversationnel proprement dit et une chaîne distincte qui intègre automatiquement les documents dans la base de connaissances. Un modèle JSON prêt à l’emploi peut, selon la vidéo, être téléchargé depuis un dépôt GitHub et chargé dans sa propre instance n8n via « Import from file ». Il ne reste ensuite qu’à compléter ses propres identifiants et le dossier souhaité.
Préparer Supabase
Supabase se met en place avec un compte GitHub. Deux sections des paramètres du projet fournissent les identifiants nécessaires :
- Database : hôte, nom de la base, port, utilisateur et mot de passe pour la connexion Postgres. Ces données servent à la mémoire de conversation.
- API : l’URL propre au projet ainsi que le Service-Role-Secret. Ces données sont nécessaires pour la base de données vectorielle.
Pour la recherche vectorielle, n8n met à disposition du code SQL prêt à l’emploi dans sa documentation. Celui-ci est exécuté une seule fois dans l’éditeur SQL de Supabase et crée automatiquement l’extension PG Vector, la table des documents et la fonction de correspondance pour le RAG. Aucun code propre n’est nécessaire.
L’agent conversationnel
L’agent est lancé par un déclencheur « When a chat message is received ». Celui-ci fournit en même temps une fenêtre de chat directement dans n8n, avec laquelle l’agent peut être testé sans déploiement. Au besoin, la même interface peut être intégrée sur un site web au moyen d’un code d’intégration prêt à l’emploi. Trois briques sont raccordées à l’agent :
- Modèle de chat : dans l’exemple GPT-4o mini, connecté via la clé API OpenAI. Anthropic est également possible.
- Mémoire de conversation : ici, Postgres via Supabase est délibérément utilisé plutôt que la mémoire à fenêtre locale souvent recommandée. Le stockage local charge le serveur n8n et passe mal à l’échelle. n8n crée lui-même la table nécessaire au besoin.
- Outil RAG : l’outil « retrieve documents » avec Supabase comme stockage vectoriel, configuré via le nom de table et la fonction de requête.
Intégrer les documents automatiquement
La deuxième partie du workflow maintient la base de connaissances à jour. Un déclencheur Google Drive vérifie régulièrement la présence de fichiers nouveaux ou modifiés dans un dossier défini. La suite du déroulement :
- L’ID du fichier est extrait et transmis aux étapes suivantes.
- Les vecteurs existants portant le même ID de fichier sont supprimés dans Supabase (voir plus bas).
- Le fichier est téléchargé, les documents sont convertis en texte et les Google Sheets en CSV, afin d’obtenir le contenu textuel brut.
- Le texte est inséré dans la base de données vectorielle. Pour les petits fichiers, le découpage en sections n’a pas lieu ; sinon, un simple découpeur de texte récursif est utilisé.
Deux détails qui décident de l’aptitude à la pratique
L’article met en avant deux points absents de beaucoup de tutoriels et qui posent problème précisément là où les choses deviennent sérieuses.
Mémoire de conversation évolutive
L’historique d’un échange est souvent stocké localement sur l’instance n8n, parce que c’est le plus simple. C’est exactement cela qui sature le serveur à mesure que l’usage augmente. L’externalisation vers une base Postgres chez Supabase est l’étape qui rend l’agent réellement robuste.
Supprimer les vecteurs obsolètes
Le point le plus important concerne les mises à jour. Les options vectorielles dans n8n ne fonctionnent pas comme un « upsert » : lors d’une nouvelle insertion, un vecteur existant n’est pas remplacé mais dupliqué, car l’ID du fichier ne sert pas d’ID de vecteur. Si l’on met à jour plusieurs fois le même fichier, les doublons s’accumulent et la qualité des réponses en souffre. La solution retenue dans le workflow : avant chaque insertion, tous les vecteurs dont les métadonnées portent l’ID du document Google Drive courant sont supprimés. Ce n’est qu’ensuite que la nouvelle version, mise à jour, est insérée. Ainsi, il reste exactement un enregistrement à jour par document.
Ce qu’il faut en retenir comme décideur
Le montage présenté se veut explicitement un point de départ solide, pas une solution finie. Des extensions comme une meilleure recherche sémantique ou une recherche par mots-clés supplémentaire sont possibles, mais sont délibérément laissées de côté. Pour une première base de connaissances proche de la production, l’approche tient néanmoins la route.
Le volet coûts mérite d’être noté : le palier gratuit de Supabase suffit pour démarrer, selon la vidéo, et le passage au plan payant ne devient utile qu’au moment de la montée en charge. Qui travaille de toute façon avec n8n peut mettre en place l’agent avec ses propres documents en peu de temps, sans commander de développement externe.
Conclusion
L’article montre sobrement et de façon compréhensible comment mettre en œuvre un agent IA RAG avec n8n et Supabase sans programmation. La véritable valeur ne réside pas dans l’effet de démonstration rapide, mais dans deux détails souvent négligés : une mémoire de conversation évolutive et la suppression systématique des vecteurs obsolètes. Ce sont précisément ces points qui décident si un agent reste utilisable quand la base de connaissances grandit, ou s’il devient peu fiable avec le temps. Qui veut rendre consultables ses documents internes trouvera ici un plan pragmatique, extensible étape par étape.
Source : Cole Medin, « This RAG AI Agent with n8n + Supabase is the Real Deal », https://www.youtube.com/watch?v=PEI_ePNNfJQ
