@marcmeese/n8n-nodes-companions
v0.0.10
Published
N8N companion nodes for PostgreSQL conversation memory management and many other things
Maintainers
Readme
n8n Companion Nodes
Dieses Paket stellt n8n-Nodes für PostgreSQL Conversation Memory Management und weitere Quality-of-Life Funktionen bereit.
Die Memory Nodes ermöglichen es, Chat-Verläufe strukturiert in PostgreSQL zu speichern und abzurufen - ideal für KI-Assistenten und Chatbots.
Installation
In n8n Settings → Community Nodes:
@marcmeese/n8n-nodes-companionsKonfiguration
PostgreSQL-Credentials einrichten
- Gehe zu n8n → Credentials → New
- Wähle "Postgres"
- Gib deine PostgreSQL-Verbindungsdaten ein:
- Host
- Port
- Database
- User
- Password
- SSL (optional)
- Teste die Verbindung
Verfügbare Nodes
📊 Memory Management
Create Memory Table
Erstellt eine neue PostgreSQL-Tabelle für Conversation Memory.
Parameter:
Memory Bucket ID(string): Eindeutige ID des Memory Speichers (wird Teil des Tabellennamens)
Output: Erfolgsbestätigung mit Tabellennamen
Hinweis: Erstellt automatisch Indizes für optimale Performance
Delete Memory Table
Löscht eine komplette Memory-Tabelle inklusive aller Einträge.
Parameter:
Memory Bucket ID(string): ID des zu löschenden Memory SpeichersConfirm Deletion(boolean): Sicherheitsbestätigung (muss auftruegesetzt werden)
Output: Erfolgsbestätigung
⚠️ Warnung: Dieser Vorgang ist nicht umkehrbar!
Insert Memory Row
Fügt eine neue Nachricht in die Memory-Tabelle ein.
Parameter:
Memory Bucket ID(string): ID des Memory SpeichersChat ID(string): Chat-Identifikator (nicht unique)User ID(string): Benutzer-Identifikator (nicht unique)Message(string): NachrichteninhaltRole(dropdown): Rolle des Senders- User
- Assistant
- System
Output: Eingefügte Row mit ID und Zeitstempel
Fetch Memory Rows
Holt Einträge aus der Memory-Tabelle als strukturierte Daten.
Parameter:
Memory Bucket ID(string): ID des Memory SpeichersLimit(number): Anzahl der zu holenden Einträge (Standard: 10)Max Age (Hours)(number): Maximales Alter in Stunden (0 = unbegrenzt, Standard: 24)Chat ID(string, optional): Filter nach Chat IDUser ID(string, optional): Filter nach User IDRole(dropdown, optional): Filter nach Rolle (All/User/Assistant/System)
Output: Array von Memory-Rows mit allen Feldern (id, chat_id, user_id, message, role, created_at)
Hinweis: Gibt die ältesten passenden Einträge zurück (aufsteigend sortiert)
Fetch Memory Text
Holt Einträge aus der Memory-Tabelle und formatiert sie als lesbaren Text.
Parameter:
Memory Bucket ID(string): ID des Memory SpeichersLimit(number): Anzahl der zu holenden Einträge (Standard: 10)Max Age (Hours)(number): Maximales Alter in Stunden (0 = unbegrenzt, Standard: 24)Chat ID(string, optional): Filter nach Chat IDUser ID(string, optional): Filter nach User IDRole(dropdown, optional): Filter nach Rolle
Formatierungs-Optionen:
Include Row ID(boolean): Zeigt Row ID als (#ID)Include Chat ID(boolean): Zeigt Chat ID als [Chat: CHAT_ID]Include User ID(boolean): Zeigt User ID als [User: USER_ID]Include Time(boolean): Zeigt Zeitstempel (DD.MM.YYYY HH:MM)Include Role(boolean): Zeigt Rolle (User/Assistant/System) - Standard: trueInclude Message(boolean): Zeigt Nachrichteninhalt - Standard: true
Output: Formatierter Text mit einem Eintrag pro Zeile
Beispiel-Output:
User: Hallo, wie geht es dir?
Assistant: Mir geht es gut, danke! Wie kann ich dir helfen?
User: Ich brauche Hilfe bei Python.Delete Memory Rows
Löscht Einträge aus der Memory-Tabelle.
Parameter:
Memory Bucket ID(string): ID des Memory SpeichersDelete Strategy(dropdown): Lösch-Strategie- Delete Oldest X Rows: Löscht die X ältesten Einträge
- Delete by Criteria: Löscht alle Einträge nach Kriterien
Confirm Deletion(boolean): Sicherheitsbestätigung
Bei "Delete Oldest X Rows":
Limit(number): Anzahl der zu löschenden Einträge (Standard: 5)
Bei "Delete by Criteria":
Max Age (Hours)(number): Lösche Einträge älter als X Stunden (Standard: 168 = 1 Woche)Chat ID(string, optional): Filter nach Chat IDUser ID(string, optional): Filter nach User IDRole(dropdown, optional): Filter nach Rolle
Output: Anzahl gelöschter Rows
Typische Workflows
Chat-Verlauf speichern und abrufen
- Create Memory Table - Erstelle Tabelle beim ersten Start
- Insert Memory Row - Speichere jede User- und Assistant-Nachricht
- Fetch Memory Text - Hole die letzten 20 Nachrichten für Context
- Delete Memory Rows - Lösche alte Nachrichten (>7 Tage) regelmäßig
Multi-User Chat-System
- Nutze verschiedene
Chat IDs für verschiedene Conversations - Nutze
User IDum Nachrichten pro Benutzer zu filtern - Ein Memory Bucket kann mehrere Chats/User verwalten
Datenbank-Schema
Jede Memory-Tabelle hat folgende Struktur:
CREATE TABLE conversation_{bucket_id} (
id SERIAL PRIMARY KEY,
chat_id VARCHAR(255) NOT NULL,
user_id VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
role VARCHAR(50) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Indizes für Performance:
idx_{bucket_id}_chat_userauf (chat_id, user_id)idx_{bucket_id}_created_atauf (created_at DESC)
