pletzenauer — digital consulting

Agente RAG senza codice: combinare n8n e Supabase in modo produttivo

La maggior parte dei tutorial su RAG in rete mostra sempre lo stesso giocattolo: “Parli con il Suo PDF”. Quello che raramente si dice: queste demo sono lontane da un impiego produttivo. Non appena la base di conoscenza cresce, i documenti vengono aggiornati o gli utenti pongono domande che nessuno ha testato, iniziano i problemi. È esattamente qui che interviene l’approccio descritto di seguito.

Nel suo video Cole Medin mostra come costruire, con i due strumenti n8n (automazione dei flussi di lavoro, paragonabile a Make.com o Zapier) e Supabase (piattaforma di database con supporto vettoriale tramite PG Vector), un agente IA RAG più vicino alla pratica di molte altre guide. La promessa: nessun codice, impegno contenuto e un’architettura che cresce insieme alla base di conoscenza. Per i decisori nelle PMI questo è interessante soprattutto perché consente di rendere ricercabili documenti interni, verbali o manuali senza impiegare un team di sviluppo.

L’essenziale in breve

  • RAG (Retrieval Augmented Generation) collega un modello linguistico a una base di conoscenza propria, così che l’agente acceda ai Suoi documenti e non solo al sapere acquisito in addestramento.
  • n8n si occupa dell’automazione, Supabase funge al tempo stesso da memoria della chat e da database vettoriale.
  • L’intera architettura funziona senza programmazione ed è configurata, secondo il video, in meno di 15 minuti.
  • Due dettagli distinguono questo approccio dai tutorial superficiali: una memoria scalabile per la cronologia della chat e la cancellazione dei vettori obsoleti per evitare duplicati.
  • Il piano gratuito di Supabase, secondo il video, è del tutto sufficiente per iniziare.
Confronto su due colonne: a sinistra i tipici tutorial su RAG orientati alla demo e con memoria locale, a destra l'approccio adatto alla pratica con memoria su Supabase e cancellazione dei vettori obsoleti.
Due dettagli spesso trascurati decidono se un agente RAG resti utilizzabile man mano che la base di conoscenza cresce.

Che cosa fa l’agente nella pratica

Il funzionamento viene mostrato nel video con un esempio semplice. All’inizio la base di conoscenza è vuota, la relativa tabella in Supabase non contiene voci. A una domanda di prova sui compiti emersi da una riunione l’agente, coerentemente, non sa rispondere.

Poi viene depositato un documento con gli appunti della riunione come Google Doc in una cartella monitorata. Nel giro di circa un minuto gira in background un flusso di lavoro n8n che elabora il file e lo inserisce nella base di conoscenza. Dopodiché in Supabase compare un nuovo record con il contenuto della pagina, i metadati (tra cui l’ID del file di Google Drive) e il cosiddetto vettore di embedding. Ponendo di nuovo la stessa domanda, l’agente fornisce ora la risposta corretta tratta dal documento. Anche gli aggiornamenti del file vengono riconosciuti e recepiti.

L’architettura in sintesi

Il flusso di lavoro si compone di due parti: l’agente di chat vero e proprio e un percorso separato che inserisce automaticamente i documenti nella base di conoscenza. Un template JSON già pronto si può scaricare, secondo il video, da un repository GitHub e caricare nella propria istanza n8n tramite “Import from file”. Dopodiché occorre solo aggiungere le proprie credenziali e la cartella desiderata.

Preparare Supabase

Supabase si configura con un account GitHub. Due sezioni delle impostazioni di progetto forniscono le credenziali necessarie:

  • Database: host, nome del database, porta, utente e password per la connessione Postgres. Questi dati vengono usati per la memoria della chat.
  • API: l’URL specifico del progetto e il service role secret. Questi dati servono per il database vettoriale.

Per la ricerca vettoriale n8n mette a disposizione nella sua documentazione codice SQL già pronto. Lo si esegue una sola volta nell’editor SQL di Supabase e crea automaticamente l’estensione PG Vector, la tabella dei documenti e la funzione di matching per RAG. Non serve scrivere codice proprio.

L’agente di chat

L’agente viene avviato da un trigger “When a chat message is received”. Questo mette a disposizione anche una finestra di chat direttamente in n8n, con cui testare l’agente senza deployment. All’occorrenza la stessa interfaccia si può integrare in un sito web tramite codice di incorporamento già pronto. All’agente sono collegati tre elementi:

  • Modello di chat: nell’esempio GPT-4o mini, collegato tramite la chiave API di OpenAI. In alternativa è possibile anche Anthropic.
  • Memoria della chat: qui si usa volutamente Postgres su Supabase al posto della memoria a finestra locale spesso consigliata. La memoria locale grava sul server n8n e scala male. La tabella necessaria la crea n8n stesso all’occorrenza.
  • Strumento RAG: il tool “retrieve documents” con Supabase come archivio vettoriale, configurato tramite nome della tabella e funzione di query.

Inserire i documenti automaticamente

La seconda parte del flusso di lavoro mantiene aggiornata la base di conoscenza. Un trigger di Google Drive controlla regolarmente in una cartella definita la presenza di file nuovi o modificati. Il seguito della procedura:

  • L’ID del file viene estratto e passato ai passaggi successivi.
  • I vettori esistenti con lo stesso ID di file vengono cancellati in Supabase (più avanti maggiori dettagli).
  • Il file viene scaricato, i documenti vengono convertiti in testo e i Google Sheets in CSV, per ricavarne il puro contenuto testuale.
  • Il testo viene inserito nel database vettoriale. Per i file piccoli la suddivisione in sezioni non serve; altrimenti si usa un semplice text splitter ricorsivo.

Due dettagli che decidono l’idoneità alla pratica

L’articolo mette in evidenza due punti che in molti tutorial mancano e che creano problemi proprio dove le cose si fanno serie.

Memoria della chat scalabile

La cronologia di una conversazione viene spesso salvata localmente sull’istanza n8n, perché è la via più semplice. È proprio questo a sovraccaricare il server con l’aumentare dell’uso. Lo spostamento in un database Postgres su Supabase è il passaggio che rende l’agente davvero robusto.

Cancellare i vettori obsoleti

Il punto più importante riguarda gli aggiornamenti. Le opzioni vettoriali in n8n non funzionano come “Upsert”: un vettore esistente, al nuovo inserimento, non viene sostituito ma duplicato, perché l’ID del file non funge da ID del vettore. Aggiornando più volte lo stesso file si accumulano doppioni e la qualità delle risposte ne risente. La soluzione adottata nel flusso di lavoro: prima di ogni inserimento vengono cancellati tutti i vettori i cui metadati riportano l’ID del file del documento Google Drive corrente. Solo dopo viene inserita la nuova versione aggiornata. Così per ogni documento resta esattamente un record aggiornato.

Inquadramento per i decisori

L’architettura mostrata è pensata esplicitamente come un solido punto di partenza, non come soluzione finale già pronta. Ampliamenti come una ricerca semantica migliore o una ricerca per parole chiave aggiuntiva sono possibili, ma vengono volutamente lasciati aperti. Per una prima base di conoscenza vicina alla produzione l’approccio è comunque sostenibile.

Notevole è il lato dei costi: il piano gratuito di Supabase basta, secondo il video, per iniziare, e il passaggio al piano a pagamento conviene solo quando si scala. Chi lavora già con n8n può allestire l’agente con i propri documenti in poco tempo, senza commissionare sviluppo esterno.

Conclusione

L’articolo mostra in modo sobrio e comprensibile come realizzare un agente IA RAG con n8n e Supabase senza programmazione. Il valore aggiunto reale non sta nell’effetto demo immediato, ma in due dettagli spesso trascurati: una memoria della chat scalabile e la rimozione sistematica dei vettori obsoleti. Sono proprio questi punti a decidere se un agente resti utilizzabile con una base di conoscenza crescente o se col tempo diventi inaffidabile. Chi vuole rendere ricercabili i documenti interni trova qui uno schema pragmatico, ampliabile passo dopo passo.

Fonte: Cole Medin, “This RAG AI Agent with n8n + Supabase is the Real Deal”, https://www.youtube.com/watch?v=PEI_ePNNfJQ

VistaMinimalClassicoDark