Większość tutoriali o RAG w sieci pokazuje wciąż tę samą zabawkę: “porozmawiaj ze swoim PDF-em”. Rzadko się przy tym wspomina, że te demonstracje są dalekie od zastosowania produkcyjnego. Gdy tylko baza wiedzy rośnie, dokumenty są aktualizowane albo użytkownicy zadają pytania, których nikt nie testował, zaczynają się problemy. Dokładnie w tym miejscu wchodzi opisane tu podejście.
W swoim filmie Cole Medin pokazuje, jak za pomocą dwóch narzędzi — n8n (automatyzacja przepływów pracy, porównywalna z Make.com lub Zapier) i Supabase (platforma bazodanowa ze wsparciem wektorów przez PG Vector) — zbudować agenta RAG opartego na AI, który jest bliższy praktyce niż wiele innych poradników. Obietnica: bez kodu, przewidywalny nakład pracy i konstrukcja, która rośnie razem z bazą wiedzy. Dla decydentów w MŚP jest to interesujące przede wszystkim dlatego, że pozwala uczynić wewnętrzne dokumenty, protokoły czy podręczniki przeszukiwalnymi bez zatrudniania zespołu deweloperskiego.
- RAG (Retrieval Augmented Generation) łączy model językowy z własną bazą wiedzy, dzięki czemu agent sięga do Pani dokumentów, a nie tylko do wiedzy z treningu.
- n8n przejmuje automatyzację, Supabase służy jednocześnie jako pamięć czatu i baza wektorowa.
- Cała konstrukcja działa bez programowania i według filmu daje się skonfigurować w mniej niż 15 minut.
- Dwa szczegóły odróżniają to podejście od powierzchownych tutoriali: skalowalna pamięć historii czatu i usuwanie nieaktualnych wektorów, aby uniknąć duplikatów.
- Darmowy poziom Supabase według filmu w zupełności wystarcza na start.

Co agent daje w praktyce
Sposób działania pokazano w filmie na prostym przykładzie. Na początku baza wiedzy jest pusta, odpowiednia tabela w Supabase nie zawiera wpisów. Na testowe pytanie o zadania z pewnego spotkania agent konsekwentnie nie potrafi odpowiedzieć.
Następnie do monitorowanego folderu trafia dokument z notatkami ze spotkania jako Google Doc. W ciągu mniej więcej minuty w tle uruchamia się workflow n8n, który przetwarza plik i wstawia go do bazy wiedzy. Potem w Supabase pojawia się nowy rekord z zawartością strony, metadanymi (między innymi identyfikatorem pliku Google Drive) i tak zwanym wektorem embeddingu. Gdy zada się to samo pytanie ponownie, agent podaje teraz poprawną odpowiedź z dokumentu. Aktualizacje pliku są również wykrywane i nadrabiane.
Konstrukcja w skrócie
Workflow składa się z dwóch części: właściwego agenta czatu i osobnej ścieżki, która automatycznie wprowadza dokumenty do bazy wiedzy. Gotowy szablon JSON można według filmu pobrać z repozytorium GitHub i wczytać do własnej instancji n8n przez “Import from file”. Potem trzeba już tylko uzupełnić własne dane dostępowe i wybrany folder.
Przygotowanie Supabase
Supabase konfiguruje się za pomocą konta GitHub. Dwa obszary ustawień projektu dostarczają potrzebnych danych dostępowych:
- Database: host, nazwa bazy danych, port, użytkownik i hasło do połączenia z Postgres. Te dane są używane dla pamięci czatu.
- API: adres URL specyficzny dla projektu oraz service role secret. Te dane są potrzebne dla bazy wektorowej.
Dla wyszukiwania wektorowego n8n udostępnia w swojej dokumentacji gotowy kod SQL. Uruchamia się go jednorazowo w edytorze SQL w Supabase, a on automatycznie zakłada rozszerzenie PG Vector, tabelę dokumentów i funkcję dopasowania dla RAG. Własny kod programu nie jest do tego potrzebny.
Agent czatu
Agenta uruchamia wyzwalacz “When a chat message is received”. Daje on zarazem okno czatu bezpośrednio w n8n, dzięki czemu agenta można testować bez wdrożenia. W razie potrzeby ten sam interfejs da się osadzić na stronie gotowym kodem osadzenia. Do agenta podłączone są trzy elementy:
- Model czatu: w przykładzie GPT-4o mini, podłączony przez klucz API OpenAI. Alternatywnie możliwy jest także Anthropic.
- Pamięć czatu: tu świadomie używa się Postgres przez Supabase zamiast często polecanej lokalnej pamięci okna. Lokalna pamięć obciąża serwer n8n i słabo się skaluje. Potrzebną tabelę n8n zakłada w razie potrzeby samo.
- Narzędzie RAG: narzędzie “retrieve documents” z Supabase jako magazynem wektorów, konfigurowane przez nazwę tabeli i funkcję zapytania.
Automatyczne wprowadzanie dokumentów
Druga część workflow utrzymuje bazę wiedzy w aktualnym stanie. Wyzwalacz Google Drive regularnie sprawdza w ustalonym folderze nowe lub zmienione pliki. Dalszy przebieg:
- Identyfikator pliku zostaje wyodrębniony i przekazany do kolejnych kroków.
- Istniejące wektory z tym samym identyfikatorem pliku są usuwane w Supabase (o tym więcej niżej).
- Plik zostaje pobrany, dokumenty są zamieniane na tekst, a Google Sheets na CSV, aby uzyskać czystą treść tekstową.
- Tekst zostaje wstawiony do bazy wektorowej. Przy małych plikach dzielenie na fragmenty odpada; w pozostałych przypadkach używany jest prosty rekurencyjny text splitter.
Dwa szczegóły, które decydują o przydatności w praktyce
Wpis podkreśla dwa punkty, których brakuje w wielu tutorialach i które prowadzą do problemów dokładnie tam, gdzie robi się poważnie.
Skalowalna pamięć czatu
Historia rozmowy jest często zapisywana lokalnie na instancji n8n, bo to najprostsze. Właśnie to przeciąża serwer wraz ze wzrostem użycia. Przeniesienie jej do bazy Postgres w Supabase to krok, który czyni agenta naprawdę odpornym na obciążenie.
Usuwanie nieaktualnych wektorów
Ważniejszy punkt dotyczy aktualizacji. Opcje wektorowe w n8n nie działają jak “upsert”: istniejący wektor przy ponownym wstawieniu nie jest zastępowany, lecz duplikowany, ponieważ identyfikator pliku nie służy jako identyfikator wektora. Jeśli aktualizuje się ten sam plik wielokrotnie, zbierają się duplikaty, a jakość odpowiedzi cierpi. Rozwiązanie w workflow: przed każdym wstawieniem usuwane są wszystkie wektory, których metadane niosą identyfikator aktualnego dokumentu Google Drive. Dopiero potem wstawiana jest nowa, zaktualizowana wersja. Dzięki temu na każdy dokument przypada dokładnie jeden aktualny rekord.
Ocena dla decydentów
Pokazana konstrukcja jest wyraźnie pomyślana jako solidny punkt wyjścia, a nie gotowe rozwiązanie docelowe. Rozszerzenia takie jak lepsze wyszukiwanie semantyczne czy dodatkowe wyszukiwanie po słowach kluczowych są możliwe, ale świadomie pozostawione otwarte. Dla pierwszej, zbliżonej do produkcyjnej bazy wiedzy podejście jest mimo to nośne.
Godna uwagi jest strona kosztowa: darmowy poziom Supabase według filmu wystarcza na start, przejście na plan płatny opłaca się dopiero przy skalowaniu. Kto i tak pracuje z n8n, może w krótkim czasie postawić agenta na własnych dokumentach, bez zlecania prac zewnętrznemu deweloperowi.
Wniosek
Wpis pokazuje trzeźwo i zrozumiale, jak wdrożyć agenta RAG opartego na AI z n8n i Supabase bez programowania. Właściwa wartość nie leży w szybkim efekcie demonstracyjnym, lecz w dwóch często pomijanych szczegółach: skalowalnej pamięci czatu i konsekwentnym usuwaniu nieaktualnych wektorów. Dokładnie te punkty decydują, czy agent pozostanie użyteczny przy rosnącej bazie wiedzy, czy z czasem stanie się zawodny. Kto chce uczynić wewnętrzne dokumenty przeszukiwalnymi, dostaje tu pragmatyczny schemat, który da się rozbudowywać krok po kroku.
Źródło: Cole Medin, “This RAG AI Agent with n8n + Supabase is the Real Deal”, https://www.youtube.com/watch?v=PEI_ePNNfJQ
