{"id":2100,"date":"2025-02-26T11:05:00","date_gmt":"2025-02-26T10:05:00","guid":{"rendered":"https:\/\/pletzenauer.com\/?p=2100"},"modified":"2026-08-05T17:22:34","modified_gmt":"2026-08-05T15:22:34","slug":"agentic-rag-n8n-base-de-connaissances","status":"publish","type":"post","link":"https:\/\/pletzenauer.com\/fr\/2025\/02\/26\/agentic-rag-n8n-base-de-connaissances\/","title":{"rendered":"Agentic RAG dans n8n : pourquoi le RAG classique \u00e9choue souvent \u2013 et comment faire mieux"},"content":{"rendered":"<p>Beaucoup d&#8217;entreprises misent aujourd&#8217;hui sur des assistants IA cens\u00e9s r\u00e9pondre \u00e0 des questions portant sur leurs propres documents \u2013 comptes rendus de r\u00e9union, tableaux d&#8217;indicateurs ou retours clients. Le proc\u00e9d\u00e9 courant derri\u00e8re cela s&#8217;appelle Retrieval Augmented Generation (RAG). Il est r\u00e9pandu, bien pris en charge et rapidement mis en \u0153uvre dans des outils no-code comme n8n. Seulement voil\u00e0 : dans la pratique, le RAG classique livre \u00e9tonnamment souvent des r\u00e9ponses fausses ou incompl\u00e8tes. Dans sa vid\u00e9o, Cole Medin montre d&#8217;o\u00f9 cela vient et comment un montage dit Agentic RAG contourne les faiblesses typiques. Nous en r\u00e9sumons sobrement les points essentiels.<\/p>\n<div style=\"background:#FFE6D6;border-left:4px solid #F26A21;padding:16px 20px;border-radius:6px;margin:24px 0;\"><strong>L&#8217;essentiel en bref<\/strong><\/p>\n<ul>\n<li>Le RAG classique \u00e9choue surtout sur deux choses : il ne sait pas \u00ab d\u00e9zoomer \u00bb sur des documents entiers et il ne sait pas mener une v\u00e9ritable analyse de donn\u00e9es sur des tableaux.<\/li>\n<li>L&#8217;Agentic RAG donne \u00e0 l&#8217;agent IA plusieurs outils au lieu d&#8217;une seule recherche \u2013 il d\u00e9cide lui-m\u00eame comment interroger la base de connaissances.<\/li>\n<li>Les tableaux (CSV\/Excel) sont stock\u00e9s s\u00e9par\u00e9ment, de sorte qu&#8217;ils peuvent \u00eatre interrog\u00e9s en SQL \u2013 sans devoir cr\u00e9er une table d\u00e9di\u00e9e pour chaque fichier.<\/li>\n<li>L&#8217;agent peut lister des documents, r\u00e9cup\u00e9rer des fichiers entiers, citer des sources et, au besoin, am\u00e9liorer sa recherche.<\/li>\n<li>Le montage n8n pr\u00e9sent\u00e9 est un mod\u00e8le extensible, pas un produit fini \u2013 les prompts et les outils doivent \u00eatre adapt\u00e9s \u00e0 votre propre cas d&#8217;usage.<\/li>\n<\/ul>\n<\/div>\n<figure style=\"margin:28px 0;\"><img decoding=\"async\" src=\"https:\/\/pletzenauer.com\/wp-content\/uploads\/2026\/06\/1487-1.png\" alt=\"Zwei-Spalten-Vergleich von klassischem RAG und Agentic RAG mit je vier Stichpunkten\" style=\"width:100%;height:auto;border-radius:8px;border:1px solid #E5E2DE;\"\/><figcaption style=\"font-size:0.9em;color:#6b6b6b;margin-top:8px;\">L&#8217;Agentic RAG donne \u00e0 l&#8217;agent IA plusieurs outils au lieu d&#8217;une seule recherche.<\/figcaption><\/figure>\n<h2>Pourquoi le RAG classique d\u00e9\u00e7oit dans la pratique<\/h2>\n<p>Le RAG fonctionne par recherche de similarit\u00e9 : la requ\u00eate est compar\u00e9e \u00e0 des morceaux de texte stock\u00e9s (\u00ab chunks \u00bb), et les plus pertinents sont transmis au mod\u00e8le de langue. Le probl\u00e8me, c&#8217;est la s\u00e9lection. Elle passe r\u00e9guli\u00e8rement \u00e0 c\u00f4t\u00e9 d&#8217;un contexte important.<\/p>\n<p>Medin cite deux faiblesses concr\u00e8tes :<\/p>\n<ul>\n<li><strong>Aucune vue sur les documents entiers :<\/strong> le RAG ne mobilise que des extraits isol\u00e9s. Qui veut analyser des tendances dans un tableau n&#8217;obtient peut-\u00eatre qu&#8217;un quart des lignes \u2013 et donc un r\u00e9sultat faux.<\/li>\n<li><strong>Pas de v\u00e9ritable analyse de donn\u00e9es :<\/strong> des sommes ou des valeurs maximales sur un tableau ne se calculent pas de fa\u00e7on fiable avec une simple recherche textuelle.<\/li>\n<\/ul>\n<p>S&#8217;y ajoute une contrari\u00e9t\u00e9 pratique : lorsqu&#8217;on demande le compte rendu d&#8217;une date pr\u00e9cise, le RAG remonte parfois le document du mauvais jour \u2013 alors m\u00eame que la date figure dans le titre. Et relier diff\u00e9rents documents entre eux pour \u00e9tablir un contexte plus large r\u00e9ussit rarement.<\/p>\n<h2>Ce que l&#8217;Agentic RAG fait diff\u00e9remment<\/h2>\n<p>L&#8217;id\u00e9e de fond est simple : au lieu de ne donner \u00e0 l&#8217;agent IA qu&#8217;un unique outil de recherche, il en re\u00e7oit plusieurs \u2013 et peut d\u00e9cider lui-m\u00eame comment explorer la base de connaissances. Medin d\u00e9finit l&#8217;Agentic RAG ainsi :<\/p>\n<blockquote><p>L&#8217;Agentic RAG consiste \u00e0 donner \u00e0 l&#8217;agent la capacit\u00e9 de r\u00e9fl\u00e9chir \u00e0 <strong>la mani\u00e8re dont<\/strong> il interroge la base de connaissances \u2013 au lieu de le clouer \u00e0 un seul outil.<\/p><\/blockquote>\n<p>Concr\u00e8tement, l&#8217;agent peut ainsi am\u00e9liorer ses requ\u00eates de recherche, choisir au besoin un autre outil et essayer plusieurs voies jusqu&#8217;\u00e0 obtenir une r\u00e9ponse solide. Si la seule recherche RAG \u00e9choue, il n&#8217;est plus bloqu\u00e9.<\/p>\n<h3>Les quatre outils de l&#8217;agent<\/h3>\n<p>Dans le workflow n8n, l&#8217;agent dispose des outils suivants :<\/p>\n<ul>\n<li><strong>Recherche RAG<\/strong> \u2013 la recherche de similarit\u00e9 classique, dans sa version am\u00e9lior\u00e9e avec indication de la source.<\/li>\n<li><strong>Lister les documents<\/strong> \u2013 l&#8217;agent r\u00e9cup\u00e8re tous les documents avec leurs titres et leurs ID et r\u00e9fl\u00e9chit \u00e0 ceux qui pourraient \u00eatre pertinents.<\/li>\n<li><strong>R\u00e9cup\u00e9rer le contenu d&#8217;un fichier<\/strong> \u2013 via l&#8217;ID du fichier, il obtient le texte complet d&#8217;un document donn\u00e9 (par exemple le compte rendu du 23 f\u00e9vrier, reconnaissable au titre).<\/li>\n<li><strong>Requ\u00eate SQL sur des tableaux<\/strong> \u2013 les fichiers CSV et Excel sont interrog\u00e9s comme des tables SQL, afin de permettre sommes, maxima et \u00e9valuations similaires.<\/li>\n<\/ul>\n<p>Dans le prompt syst\u00e8me, l&#8217;agent est invit\u00e9 \u00e0 commencer par le RAG et \u00e0 ne se rabattre sur les autres outils que si la recherche ne donne pas ce qu&#8217;il faut. Une remarque importante tir\u00e9e de la vid\u00e9o : demander explicitement \u00e0 l&#8217;agent d&#8217;\u00eatre honn\u00eate \u2013 c&#8217;est-\u00e0-dire de dire ouvertement lorsqu&#8217;aucune r\u00e9ponse n&#8217;a \u00e9t\u00e9 trouv\u00e9e \u2013 r\u00e9duit sensiblement les hallucinations.<\/p>\n<h2>Comment les donn\u00e9es tabulaires sont stock\u00e9es<\/h2>\n<p>La partie techniquement la plus int\u00e9ressante concerne les tableaux. Trois tables sont cr\u00e9\u00e9es \u00e0 cette fin dans Supabase :<\/p>\n<ul>\n<li><strong>documents<\/strong> \u2013 contient les embeddings pour le RAG, les m\u00e9tadonn\u00e9es et le contenu des diff\u00e9rents chunks.<\/li>\n<li><strong>document_metadata<\/strong> \u2013 stocke les informations de niveau sup\u00e9rieur : titres, URL pour les indications de source et \u2013 pour les tableaux \u2013 le sch\u00e9ma (c&#8217;est-\u00e0-dire les noms de colonnes).<\/li>\n<li><strong>document_rows<\/strong> \u2013 conserve les lignes des tableaux. Les donn\u00e9es proprement dites atterrissent dans une colonne <strong>JSONB<\/strong> flexible nomm\u00e9e <code>row_data<\/code>.<\/li>\n<\/ul>\n<p>L&#8217;astuce : gr\u00e2ce \u00e0 JSONB, on peut stocker des structures de colonnes quelconques sans devoir cr\u00e9er une table SQL propre \u00e0 chaque fichier CSV ou Excel. L&#8217;agent lit d&#8217;abord le sch\u00e9ma dans les m\u00e9tadonn\u00e9es, comprend les colonnes disponibles, puis formule une requ\u00eate SQL sur <code>row_data<\/code>. Medin souligne express\u00e9ment que ce montage est simplifi\u00e9 \u2013 le sch\u00e9ma ne dit par exemple rien des types de donn\u00e9es, si bien qu&#8217;une somme sur une colonne comportant un symbole dollar peut \u00e9chouer. Ce qui l&#8217;int\u00e9resse, c&#8217;est le concept, pas une mise en \u0153uvre parfaite.<\/p>\n<h2>Le pipeline RAG : de Google Drive vers Supabase<\/h2>\n<p>Avant que l&#8217;agent puisse travailler, la base de connaissances doit \u00eatre remplie. Le pipeline se d\u00e9roule en plusieurs \u00e9tapes :<\/p>\n<ul>\n<li><strong>D\u00e9clencheur :<\/strong> un d\u00e9clencheur Google Drive v\u00e9rifie chaque minute la pr\u00e9sence de fichiers nouveaux ou modifi\u00e9s. Dropbox ou un d\u00e9clencheur de fichier local fonctionnent aussi. Les fichiers supprim\u00e9s ne sont toutefois pas d\u00e9tect\u00e9s.<\/li>\n<li><strong>Plusieurs fichiers \u00e0 la fois :<\/strong> une boucle nouvellement ajout\u00e9e traite d\u00e9sormais aussi plusieurs fichiers arrivant dans le m\u00eame intervalle de polling \u2013 une lacune connue de la version pr\u00e9c\u00e9dente.<\/li>\n<li><strong>Supprimer les anciennes donn\u00e9es :<\/strong> avant chaque import, les entr\u00e9es existantes rattach\u00e9es \u00e0 l&#8217;ID du fichier concern\u00e9 sont supprim\u00e9es. Ainsi, aucun chunk obsol\u00e8te ne subsiste lorsqu&#8217;un document a \u00e9t\u00e9 raccourci.<\/li>\n<li><strong>Extraire le contenu :<\/strong> un n\u0153ud Switch aiguille selon le type de fichier \u2013 PDF, Google Doc, texte ou tableau sont lus diff\u00e9remment. D&#8217;autres formats comme JSON ou HTML peuvent \u00eatre ajout\u00e9s via des n\u0153uds suppl\u00e9mentaires.<\/li>\n<li><strong>Stocker les tableaux en double :<\/strong> les fichiers CSV sont d&#8217;une part pr\u00e9par\u00e9s comme document texte pour le RAG, d&#8217;autre part enregistr\u00e9s ligne par ligne dans <code>document_rows<\/code> pour les requ\u00eates SQL.<\/li>\n<\/ul>\n<p>Un \u00e9cueil pratique lors de la mise en place : pour la connexion Postgres vers Supabase, il faut utiliser, selon la vid\u00e9o, le <strong>Transaction-Pooler<\/strong> (port 6543), et non la connexion directe. La documentation de n8n serait peu claire sur ce point.<\/p>\n<h3>Mod\u00e8les utilis\u00e9s<\/h3>\n<p>Pour les embeddings, c&#8217;est <code>text-embedding-3<\/code> d&#8217;OpenAI qui est employ\u00e9, et comme mod\u00e8le de langue <code>GPT-4o mini<\/code> \u2013 choisi d\u00e9lib\u00e9r\u00e9ment pour son co\u00fbt faible et sa rapidit\u00e9. Pour des cas plus exigeants, Medin recommande des mod\u00e8les plus performants comme GPT-4o ou Claude Sonnet 4. Important : lors de l&#8217;insertion et lors de la r\u00e9cup\u00e9ration, le m\u00eame mod\u00e8le d&#8217;embedding avec le m\u00eame nombre de dimensions doit \u00eatre utilis\u00e9.<\/p>\n<h2>Trois exemples tir\u00e9s de la vid\u00e9o<\/h2>\n<p>Medin montre comment l&#8217;agent choisit diff\u00e9rents outils selon la question :<\/p>\n<ul>\n<li><strong>Question sur un tableau :<\/strong> \u00e0 \u00ab Quel mois avons-nous eu le plus de nouveaux clients ? \u00bb, l&#8217;agent \u00e9crit une requ\u00eate SQL et fournit le r\u00e9sultat correct (d\u00e9cembre, 129 nouveaux clients) \u2013 au lieu de s&#8217;en remettre \u00e0 des chunks incomplets.<\/li>\n<li><strong>Question purement RAG :<\/strong> \u00e0 \u00ab O\u00f9 pouvons-nous nous am\u00e9liorer ? \u00bb, la recherche de similarit\u00e9 trouve le document de retours clients, bien que le mot \u00ab am\u00e9lioration \u00bb n&#8217;ait volontairement pas \u00e9t\u00e9 utilis\u00e9.<\/li>\n<li><strong>R\u00e9cup\u00e9ration de fichier avec source :<\/strong> lors de la r\u00e9cup\u00e9ration d&#8217;un compte rendu de r\u00e9union complet, l&#8217;agent livre les action items et, sur demande, un lien cliquable vers la source.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>L&#8217;article montre sobrement pourquoi un RAG na\u00eff ne suffit pas pour beaucoup d&#8217;applications m\u00e9tier : il passe \u00e0 c\u00f4t\u00e9 du contexte et ne sait pas calculer sur des tableaux. L&#8217;approche agentique r\u00e9sout cela de fa\u00e7on pragmatique, en donnant \u00e0 l&#8217;agent IA plusieurs outils et une marge de d\u00e9cision. Pour les d\u00e9cideurs de PME qui envisagent un assistant documentaire, c&#8217;est un enseignement important : la qualit\u00e9 ne tient pas au seul mod\u00e8le, mais \u00e0 l&#8217;architecture qui le porte. Qui reprend le montage n8n pr\u00e9sent\u00e9 devrait le consid\u00e9rer comme un point de d\u00e9part \u2013 prompts, outils et mod\u00e8le de donn\u00e9es sont \u00e0 adapter \u00e0 ses propres donn\u00e9es. La requ\u00eate SQL sur les tableaux et le traitement des types de donn\u00e9es offrent en particulier une marge d&#8217;am\u00e9lioration.<\/p>\n<p><strong>Source :<\/strong> Cole Medin \u2013 \u00ab I Built the ULTIMATE n8n RAG AI Agent Template \u00bb, <a href=\"https:\/\/www.youtube.com\/watch?v=mQt1hOjBH9o\">https:\/\/www.youtube.com\/watch?v=mQt1hOjBH9o<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le RAG classique passe souvent \u00e0 c\u00f4t\u00e9 du contexte et des donn\u00e9es tabulaires. Comment un montage Agentic RAG dans n8n interroge les bases de connaissances de fa\u00e7on plus fiable \u2013 expliqu\u00e9 concr\u00e8tement.<\/p>\n","protected":false},"author":0,"featured_media":1507,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2100","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unkategorisiert"],"_links":{"self":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts\/2100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/comments?post=2100"}],"version-history":[{"count":1,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts\/2100\/revisions"}],"predecessor-version":[{"id":2503,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts\/2100\/revisions\/2503"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/media\/1507"}],"wp:attachment":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/media?parent=2100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/categories?post=2100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/tags?post=2100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}