De meeste RAG-tutorials op internet laten steeds hetzelfde speelgoed zien: “Chat met uw PDF”. Wat daarbij zelden wordt vermeld: deze demo’s staan ver af van productief gebruik. Zodra de kennisbasis groeit, documenten worden bijgewerkt of gebruikers vragen stellen die niemand heeft getest, beginnen de problemen. Precies op dat punt zet de hier beschreven aanpak in.
In zijn video laat Cole Medin zien hoe zich met de twee instrumenten n8n (workflow-automatisering, vergelijkbaar met Make.com of Zapier) en Supabase (databaseplatform met vectorondersteuning via PG Vector) een RAG-AI-agent laat opbouwen die dichter bij de praktijk staat dan veel andere handleidingen. De belofte: geen code, overzichtelijke inspanning, en een opzet die met de kennisbasis meegroeit. Voor beslissers in het mkb is dat vooral interessant omdat interne documenten, notulen of handboeken zo doorzoekbaar worden zonder dat er een ontwikkelteam aan te pas komt.
- RAG (Retrieval Augmented Generation) verbindt een taalmodel met een eigen kennisdatabase, zodat de agent toegang heeft tot uw documenten in plaats van alleen tot zijn trainingskennis.
- n8n neemt de automatisering voor zijn rekening, Supabase dient tegelijk als chatgeheugen en als vectordatabase.
- De hele opzet werkt zonder programmeren en is volgens de video in minder dan 15 minuten ingericht.
- Twee details tillen deze aanpak boven oppervlakkige tutorials uit: een schaalbare opslag voor het chatverloop en het verwijderen van verouderde vectoren om duplicaten te voorkomen.
- Het gratis niveau van Supabase volstaat volgens de video ruimschoots om te beginnen.

Wat de agent in de praktijk presteert
De werking wordt in de video aan een eenvoudig voorbeeld getoond. In het begin is de kennisdatabase leeg, de bijbehorende tabel in Supabase bevat geen records. Een testvraag naar de taken uit een vergadering kan de agent dan ook niet beantwoorden.
Vervolgens wordt een document met vergadernotities als Google-document in een bewaakte map geplaatst. Binnen ongeveer een minuut loopt op de achtergrond een n8n-workflow die het bestand verwerkt en in de kennisdatabase invoegt. Daarna verschijnt in Supabase een nieuw record met de pagina-inhoud, de metadata (onder meer de Google Drive-bestands-ID) en de zogenoemde embedding-vector. Stelt men dezelfde vraag opnieuw, dan levert de agent nu het juiste antwoord uit het document. Actualiseringen van het bestand worden eveneens herkend en verwerkt.
De opzet in vogelvlucht
De workflow bestaat uit twee delen: de eigenlijke chatagent en een apart traject dat documenten automatisch in de kennisbasis opneemt. Een kant-en-klare JSON-template laat zich volgens de video uit een GitHub-repository downloaden en via “Import from file” in de eigen n8n-instantie laden. Daarna hoeven alleen de eigen inloggegevens en de gewenste map te worden aangevuld.
Supabase voorbereiden
Supabase wordt met een GitHub-account ingericht. Twee onderdelen van de projectinstellingen leveren de benodigde toegangsgegevens:
- Database: host, databasenaam, poort, gebruiker en wachtwoord voor de Postgres-verbinding. Deze gegevens worden gebruikt voor het chatgeheugen.
- API: de projectspecifieke URL en het service-role secret. Deze gegevens zijn nodig voor de vectordatabase.
Voor het vectorzoeken stelt n8n in zijn documentatie kant-en-klare SQL-code beschikbaar. Die wordt eenmalig in de SQL-editor van Supabase uitgevoerd en legt automatisch de PG Vector-extensie, de documententabel en de matchingfunctie voor RAG aan. Eigen programmacode is daarvoor niet nodig.
De chatagent
De agent wordt gestart door een trigger “When a chat message is received”. Die levert tegelijk een chatvenster direct in n8n, waarmee de agent zonder deployment getest kan worden. Desgewenst kan dezelfde interface via kant-en-klare embedcode op een website worden ingebouwd. Aan de agent zijn drie bouwstenen gekoppeld:
- Chatmodel: in het voorbeeld GPT-4o mini, aangesloten via de OpenAI-API-sleutel. Als alternatief is ook Anthropic mogelijk.
- Chatgeheugen: hier wordt bewust Postgres via Supabase gebruikt in plaats van het vaak aanbevolen lokale venstergeheugen. De lokale opslag belast de n8n-server en schaalt slecht. De benodigde tabel legt n8n zo nodig zelf aan.
- RAG-tool: het tool “retrieve documents” met Supabase als vectoropslag, geconfigureerd via tabelnaam en queryfunctie.
Documenten automatisch opnemen
Het tweede deel van de workflow houdt de kennisbasis actueel. Een Google Drive-trigger controleert in een vastgelegde map regelmatig op nieuwe of gewijzigde bestanden. Het verdere verloop:
- De bestands-ID wordt geëxtraheerd en aan de volgende stappen doorgegeven.
- Bestaande vectoren met dezelfde bestands-ID worden in Supabase verwijderd (daarover hieronder meer).
- Het bestand wordt gedownload, documenten worden naar tekst en Google Sheets naar CSV omgezet om de pure tekstinhoud te verkrijgen.
- De tekst wordt in de vectordatabase ingevoegd. Bij kleine bestanden vervalt het opdelen in fragmenten; anders komt er een eenvoudige recursieve tekstsplitter aan te pas.
Twee details die de praktijkgeschiktheid bepalen
De bijdrage licht twee punten uit die in veel tutorials ontbreken en juist daar tot problemen leiden waar het menens wordt.
Schaalbaar chatgeheugen
Het verloop van een gesprek wordt vaak lokaal op de n8n-instantie opgeslagen, omdat dat het eenvoudigst is. Precies dat overbelast de server bij toenemend gebruik. Het uitplaatsen naar een Postgres-database bij Supabase is de stap die de agent werkelijk robuust maakt.
Verouderde vectoren verwijderen
Het belangrijkere punt betreft actualiseringen. De vectoropties in n8n werken niet als “upsert”: een bestaande vector wordt bij het opnieuw invoegen niet vervangen maar gedupliceerd, omdat de bestands-ID niet als vector-ID dient. Werkt men hetzelfde bestand meermaals bij, dan stapelen dubbelingen zich op en lijdt de antwoordkwaliteit eronder. De oplossing in de workflow: vóór elke invoeging worden alle vectoren verwijderd waarvan de metadata de bestands-ID van het actuele Google Drive-document dragen. Pas daarna wordt de nieuwe, bijgewerkte versie ingevoegd. Zo blijft er per document precies één actueel record over.
Inschatting voor beslissers
De getoonde opzet is uitdrukkelijk bedoeld als solide startpunt, niet als kant-en-klare eindoplossing. Uitbreidingen zoals beter semantisch zoeken of een aanvullende trefwoordzoekfunctie zijn mogelijk, maar worden bewust opengelaten. Voor een eerste productiegerichte kennisdatabase is de aanpak niettemin houdbaar.
Opvallend is de kostenkant: het gratis Supabase-niveau volstaat volgens de video om te beginnen, overstappen naar het betaalde plan loont pas bij opschalen. Wie toch al met n8n werkt, kan de agent met de eigen documenten in korte tijd opzetten zonder externe ontwikkeling in te huren.
Conclusie
De bijdrage laat nuchter en navolgbaar zien hoe een RAG-AI-agent met n8n en Supabase zonder programmeren te realiseren is. De eigenlijke meerwaarde ligt niet in het snelle demo-effect, maar in twee vaak overgeslagen details: een schaalbaar chatgeheugen en het consequent verwijderen van verouderde vectoren. Precies deze punten bepalen of een agent bruikbaar blijft naarmate de kennisbasis groeit, of mettertijd onbetrouwbaar wordt. Wie interne documenten doorzoekbaar wil maken, krijgt hier een pragmatische blauwdruk die stap voor stap uitgebreid kan worden.
Bron: Cole Medin, “This RAG AI Agent with n8n + Supabase is the Real Deal”, https://www.youtube.com/watch?v=PEI_ePNNfJQ
