Lernpfad
n8n hat sich zu einem beliebten und leistungsstarken Framework für agentenbasierte KI entwickelt. So können wir automatisierte Arbeitsabläufe erstellen, ohne dass wir komplexe Kodierungen vornehmen müssen.
In diesem Artikel erkläre ich dir Schritt für Schritt, wie du diese robuste Plattform optimal nutzen kannst, um zwei verschiedene Prozesse zu automatisieren:
- Zuerst werde ich dir zeigen, wie du einen KI-Agenten einrichtest, der automatisch E-Mails von Google Mail verarbeitet und so wertvolle Zeit spart und den manuellen Aufwand reduziert.
- Dann werden wir einen intelligenten Agenten schaffen, der über jedes beliebige Dokument chatten kann und uns schnellen Zugriff auf Informationen bietet.
Wir halten unsere Leserinnen und Leser mit The Median auf dem Laufenden, unserem kostenlosen Freitags-Newsletter, der die wichtigsten Meldungen der Woche aufschlüsselt. Melde dich an und bleibe in nur ein paar Minuten pro Woche auf dem Laufenden:
Was ist n8n?
n8n ist ein Open-Source-Automatisierungstool, das uns hilft, verschiedene Apps und Dienste miteinander zu verbinden, um Arbeitsabläufe zu erstellen, ähnlich wie ein digitales Fließband. Sie ermöglicht es den Nutzern, diese Arbeitsabläufe visuell mit Knoten zu gestalten, von denen jeder einen anderen Schritt im Prozess darstellt.
Mit n8n können wir Aufgaben automatisieren, den Datenfluss verwalten und sogar APIs integrieren - und das alles, ohne dass wir über umfangreiche Programmierkenntnisse verfügen müssen. Hier ist ein Beispiel für eine Automatisierung, die wir in diesem Lernprogramm erstellen werden:
Ohne ins Detail zu gehen, hier eine Beschreibung dessen, was diese Automatisierung tut:
- Es greift auf unser Gmail-Konto zu, um nach neuen E-Mails zu suchen.
- Neue E-Mails werden zur KI-Verarbeitung an ChatGPT geschickt.
- Die KI identifiziert die relevanten Informationen, die dann in einem Tabellenblatt gespeichert werden.
Wie benutzt man n8n?
Wir haben zwei Möglichkeiten, n8n zu nutzen:
- Benutze das Webinterface hier. Dafür brauchst du ein Konto und ein kostenpflichtiges Abonnement, aber es gibt eine 14-tägige kostenlose Testversion, die du nutzen kannst, um diesem Tutorial zu folgen.
- Da es Open Source ist, können wir es auch lokal betreiben oder selbst hosten. Sie ist kostenlos und bietet Zugang zu fast allen Funktionen (einige wenige Funktionen sind exklusiv für die kostenpflichtigen Cloud- oder Enterprise-Tarife).
Mit beiden Optionen kannst du diesem Tutorial kostenlos folgen. Wir führen es lokal aus, aber wenn du lieber das Webinterface verwendest, sind die Schritte die gleichen.
n8n Lokale Einrichtung
Das offizielle Repository von n8n erklärt, wie man n8n lokal einrichtet. Der einfachste Weg ist:
- Download und Installation von Node.js von der der offiziellen Website.
- Öffne ein Terminal und führe den Befehl
npx n8n
aus.
Das war's! Nachdem du den Befehl ausgeführt hast, solltest du Folgendes im Terminal sehen:
Um die Schnittstelle zu öffnen, drücke entweder "o" auf der Tastatur oder öffne die im Terminal angezeigte localhost URL - in meinem Fall http://localhost:5678
.
n8n verstehen
Bevor wir unsere erste Automatisierung bauen, ist es gut zu verstehen, wie n8n funktioniert. Ein n8n-Workflow besteht aus einer Abfolge von Knotenpunkten. Er beginnt mit einem Auslöseknoten, der eine Bedingung für die Ausführung des Workflows festlegt.
Knotenpunkte verbinden sich, um Daten zu bewegen und zu verarbeiten. In diesem Beispiel verbindet sich der Gmail-Trigger-Knoten mit einem OpenAI-Knoten. Das bedeutet, dass die E-Mail an ChatGPT zur Bearbeitung weitergegeben wird. Schließlich wird die Ausgabe von ChatGPT an einen Google Sheet-Knoten gesendet, der eine Verbindung zu einem Google Sheet in unserem Google Drive herstellt und eine neue Zeile in ein Tabellenblatt schreibt.
Dieser besondere Arbeitsablauf verwendet chatGPT, um Rechnungen zu identifizieren, die bezahlt werden müssen, und weist eine Zeile im Blatt mit der Rechnungs-ID und dem Preis zu.
n8n-Workflows können viel komplexer sein. n8n unterstützt über 1.047 Integrationen, sodass wir nicht alle in einem Tutorial behandeln können. Stattdessen werde ich mich darauf konzentrieren, dir eine allgemeine Vorstellung davon zu geben, wie es funktioniert, und dir das nötige Hintergrundwissen zu vermitteln, um es auf eigene Faust zu erkunden. Wenn es ein Tool gibt, das du regelmäßig benutzt, ist die Wahrscheinlichkeit groß, dass es entweder von n8n unterstützt wird oder du es manuell integrieren kannst.
Beispiel 1: Rechnungsbearbeitung aus E-Mails automatisieren
In diesem Abschnitt erfährst du, wie du den obigen Workflow aufbaust.
Das ist ein echter Anwendungsfall, den ich zur Verwaltung meiner Mietrechnungen verwende. Ich habe ein Haus mit ein paar Zimmern, die ich vermiete. Die Rechnungen werden zu gleichen Teilen zwischen allen Mietern aufgeteilt. Jedes Mal, wenn ich eine Rechnung erhalte, muss ich den Gesamtbetrag in eine Tabelle eintragen, die ich mit meinen Mietern teile.
Ich habe eine bestimmte E-Mail-Adresse, an die Rechnungen für Hausrechnungen weitergeleitet werden. Auf diese Weise weiß ich, dass alle E-Mails in diesem Postfach einer Rechnung entsprechen. Ich schicke den Inhalt der E-Mail an ChatGPT, um die Rechnungs-ID und den zu zahlenden Gesamtbetrag zu ermitteln. Diese Informationen werden dann in eine neue Zeile in der gemeinsamen Tabelle eingetragen.
Konfigurieren des E-Mail-Auslösers
Um einen neuen Workflow zu starten, musst du auf die Schaltfläche "Ersten Schritt hinzufügen..." klicken.
Da es sich um den ersten Knoten handelt, muss es ein Auslöser sein, also wird uns ein Panel angezeigt, in dem wir einen Auslöserknoten auswählen können. Ein Auslöseknoten definiert die Bedingungen für die Ausführung des Workflows.
Es gibt eine Vielzahl von möglichen Auslöseknoten. Wählen wir einen Gmail-Trigger-Knoten aus, indem wir "gmail" in das Suchfeld eingeben und auf den Gmail-Knoten klicken.
Dann wählen wir den einzigen verfügbaren Auslöser für Google Mail: "Auf Nachricht erhalten".
Dadurch wird das Knotenkonfigurationsfenster geöffnet, in dem wir unsere Gmail-Anmeldedaten konfigurieren müssen, damit der n8n-Workflow auf unser Gmail-Konto zugreifen kann. Dazu klickst du auf "Neue Zugangsdaten". Daraufhin wird das folgende Fenster geöffnet:
Auf der rechten Seite (1) gibt es eine Anleitung zur Einrichtung, in der die Schritte erklärt werden, die erforderlich sind, um die Anmeldedaten auf Google Cloud. Die von n8n bereitgestellten Anleitungen sind recht umfassend, daher werden wir die Schritte hier nicht wiederholen. Achte darauf, dass du die Gmail-API auch in der Google Cloud Console aktivierst.
Sobald sie konfiguriert ist, müssen wir die Client-ID (2) und das Client-Geheimnis (3) aus der Google Cloud in die Anmeldeinformationen von n8n kopieren.
Um sicherzustellen, dass alles richtig konfiguriert ist, können wir den Knoten testen, indem wir auf "Test-Event abrufen" klicken.
Nach dem Test sollten wir die letzte E-Mail, die wir in unserem Posteingang erhalten haben, im Ausgabebereich sehen. Der Inhalt der E-Mail ist das Feld snippet
.
Das Feld snippet
speichert den Inhalt der E-Mail. Sie sagt, dass meine Internetrechnung für April verfügbar ist. Sie enthält die Rechnungs-ID und den zu zahlenden Gesamtbetrag. Das sind die Informationen, die wir in das Arbeitsblatt einfügen wollen.
Zu Testzwecken empfehle ich, die Ausgabe durch einen Klick auf den Pin-Button in der oberen rechten Ecke anzuheften:
Dadurch wird das Ergebnis an den Auslöser gebunden, d. h., immer wenn wir diesen Workflow ausführen, wird dieselbe Ausgabe verwendet, was das Testen des Workflows erleichtert, da die Ergebnisse nicht durch neue E-Mails beeinflusst werden. Wir heben die Anheftung auf, sobald der Arbeitsablauf richtig eingerichtet ist.
In diesem Stadium sollte unser Workflow einen einzigen Auslöseknoten haben (wir erkennen ihn an der kleinen Blitzmarkierung auf der linken Seite).
Da du wahrscheinlich keine E-Mail-Rechnung in deinem Postfach hast, wird dir ChatGPT später wahrscheinlich eine Antwort geben, die keinen Sinn ergibt. Wenn du genau diesen Arbeitsablauf testen willst, kannst du dir eine Test-E-Mail mit folgendem Inhalt (oder etwas Ähnlichem) schicken:
Dear customer,
Your internet invoice number FT 2025**/****** for April is now available in the attachment.
Amount
€**.**
This invoice must be paid by 19/05/2025.
Nach dem Versenden musst du das Ergebnis entpinnen, den Gmail-Knoten erneut ausführen und das neue Ergebnis anpinnen.
Konfigurieren des ChatGPT-Knotens
Der nächste Schritt ist die Konfiguration des OpenAI-Knotens. Beginne, indem du auf die "+"-Schaltfläche auf der rechten Seite des Gmail-Auslöseknotens klickst:
Gib "OpenAI" ein und wähle die entsprechende Option aus der Liste.
Wähle dann unter "Text-Aktionen" den Knoten "Nachricht an ein Modell". Dieser Knoten wird verwendet, um eine LLM zu melden.
Wie zuvor müssen wir einen Berechtigungsnachweis für den Zugang zu OpenAI erstellen. Sobald ein Berechtigungsnachweis erstellt wurde, kann er in jedem Arbeitsablauf wiederverwendet werden. Wir müssen es nicht jedes Mal neu einstellen.
Für die OpenAI-Anmeldung brauchen wir nur einen API-Schlüssel. Wenn du noch keine hast, kannst du eine erstellen hier. Wenn du damit Probleme hast, findest du bei n8n auch eine Anleitung dazu.
Bei der Konfiguration müssen wir das KI-Modell, das wir verwenden wollen, und die Nachricht, die wir an das Modell senden, auswählen. Für das Modell können wir GPT 4.1 verwenden:
Im Nachrichtenfeld müssen wir die Aufforderung angeben. In diesem Beispiel geben wir dem Modell den Inhalt der E-Mail und bitten es, die Rechnungs-ID und den zu zahlenden Gesamtbetrag zu ermitteln. Hier ist die Aufforderung, die ich benutzt habe:
Der Inhalt der E-Mail wird als {{ $json.snippet }}
zur Verfügung gestellt. In n8n kann die Eingabeaufforderung Variablen enthalten, die aus der Ausgabe der vorherigen Knoten, in unserem Fall der E-Mail, gefüllt werden. Die Liste der verfügbaren Felder findest du auf der linken Seite. Wir können das Feld manuell eingeben oder es per Drag & Drop in die Eingabeaufforderung ziehen.
Um das zu testen, klickst du auf die Schaltfläche "Schritt testen" oben im Konfigurationsfenster. Das Ergebnis wird auf der rechten Seite angezeigt:
Das Ergebnis ist ein String mit der Antwort aus dem Modell. Wir würden die beiden Felder gerne getrennt haben, damit wir die Nachricht nicht weiter verarbeiten müssen. Wir können dies erreichen, indem wir die Ausgabe des LLM in JSON ändern:
Wenn wir diesen Schritt erneut testen, erhalten wir die beiden Felder als JSON-Daten:
Senden der Daten an ein Google Sheet
Der letzte Schritt in diesem Workflow besteht darin, die Rechnungs-ID und den Preis an eine neue Zeile in einem Google Sheet zu senden. In diesem Schritt müssen wir die Ausgabe des OpenAI-Knotens mit Google Sheets verbinden. Dazu klickst du wie zuvor auf die Schaltfläche "+" links neben dem Knoten:
Hier wollen wir Google Sheets eingeben und den Knoten "Zeile im Blatt anhängen" auswählen:
Wir können die gleichen Anmeldedaten verwenden, die wir für den Gmail-Zugang benutzt haben. Aber wir müssen die folgenden APIs in der Google Cloud-Konsole:
- Google Sheets API
- Google Drive API
Um den Google Sheets-Knoten zu konfigurieren, müssen wir das Blatt auswählen und die Werte festlegen, mit denen die Felder gefüllt werden sollen. Das Blatt sollte manuell mit zwei Spalten erstellt werden, eine für die Rechnungs-ID und eine für die Rechnungssumme.
Diese Werte werden von der Ausgabe des OpenAI-Knotens übernommen. Wir können sie in die Spalten ziehen und ablegen.
Ausführen des Workflows
Das war's! Wir haben einen Workflow, der unsere Rechnungen automatisch in einem Google Sheet verarbeitet. Wir können ihn testen, indem wir unten auf "Workflow testen" klicken:
Wenn wir sie ausgeführt haben, sehen wir in unserem Google Sheet eine neue Zeile mit den Daten:
In der Standardeinstellung wird ein Workflow jede Minute ausgeführt. Je nach Workflow sollten wir eine angemessene Häufigkeit für die Ausführung konfigurieren. In diesem konkreten Beispiel ist einmal pro Minute viel zu häufig. Einmal am Tag ist eine angemessenere Frequenz.
Wir können das konfigurieren, indem wir auf den Trigger-Knoten doppelklicken und einen anderen Wert in das Feld "Abfragezeiten" eingeben:
Beispiel 2: Einen RAG-Agenten aufbauen
In diesem Abschnitt bauen wir einen komplexeren RAG-Agenten-Workflow auf. RAG steht für Retrieval-Augmented Generation, eine Technik, bei der relevante Informationen aus einer Datenbank oder einem Dokument abgerufen und dann mithilfe eines Sprachmodells Antworten auf der Grundlage der abgerufenen Informationen generiert werden.
Das ist sehr nützlich, wenn wir eine bestimmte Wissensbasis haben, z. B. ein langes Textdokument, und einen KI-Agenten bauen wollen, der Fragen dazu beantworten kann.
Ich spiele gerne Brettspiele, aber meine Freunde und ich streiten oft über die Regeln und verbringen dann Zeit mit der Suche nach den richtigen Regeln, anstatt zu spielen, was frustrierend sein kann. Einen RAG-Agenten zu bauen, der auf den Spielregeln basiert, ist eine gute Lösung, um dieses Problem zu lösen, denn wenn wir das nächste Mal eine Frage haben, können wir den Agenten einfach fragen.
Um diesen Agenten zu erstellen, führen wir zwei Arbeitsabläufe durch:
- Ein Workflow, den wir nur einmal ausführen, um die Daten in eine Pinecone-Datenbank hochzuladen.
- Ein weiterer, der den RAG-Agenten betreibt und die Pinecone-Datenbank nutzt, um unsere Fragen zu beantworten.
Laden der Daten in Pinecone
Pinecone ist eine Art von Datenbank, die Daten in Form von Vektoren verwaltet. Eine Vektordatenbank wie Pinecone ist großartig für unseren RAG-Agenten, denn sie hilft ihm, relevante Informationen schnell zu finden und zu verstehen, sodass er effizienter genaue Antworten geben kann.
Da wir diesen Workflow nur einmal ausführen müssen, können wir einen manuellen Auslöseknoten verwenden. Dies ist ein Auslöseknoten, mit dem du einen Workflow manuell ausführen kannst.
Verbinde den manuellen Auslöseknoten mit einem "Google Drive"-Knoten, um die Daten von Google Drive herunterzuladen.
Verwende die folgende Konfiguration:
Ich habe die öffentlich zugängliche mtgrules.txt
Datei mit den Regeln des Sammelkartenspiels Magic verwendet: The Gathering. Du kannst jede beliebige Datei verwenden, zu der du Fragen stellen möchtest; der Arbeitsablauf ist derselbe.
Um Pinecode zu konfigurieren, logge dich bei Pineconean, kopiere den API-Schlüssel und erstelle einen Index, indem du auf die Schaltfläche "Index erstellen" klickst. Ich habe meinen Index rules
aufgerufen und das Modell text-embedding-3-small
ausgewählt.
Zurück zu n8n, verbinde den Ausgang des Google Drive Knotens mit einem Pinecone Vector Store Knoten für die Aktion "Dokumente zum Vektorspeicher hinzufügen":
Um den Knotenpunkt zu konfigurieren, müssen wir einen Berechtigungsnachweis erstellen, indem wir den API-Schlüssel einfügen und den gerade erstellten Pinecone-Index auswählen. Unter dem Knoten Pinecone Vector Store sehen wir zwei Dinge, die wir konfigurieren müssen: ein Einbettungsmodell und einen Datenlader.
Für die Einbettung erstellst du einen OpenAI Embedding-Knoten mit dem Modell text-embedding-3-small
:
Für den Datenlader erstellen wir einen Standard-Datenlader-Knoten mit einem binären Datentyp:
Schließlich benötigt der Datenlader einen Text-Splitter-Knoten, der angibt, wie die Daten aus der Datei beim Erstellen des Vektorspeichers aufgeteilt werden sollen. Wir verwenden den Knoten Rekursiver Zeichensplitter, der für die meisten Anwendungen empfohlen wird.
Wir konfigurieren es so, dass es eine Chunk-Größe von 1.000 und eine Chunk-Überlappung von 200 verwendet:
Bei der Wahl der Chunk-Größe und der Chunk-Überlappung solltest du bei längeren Dokumenten eine größere Chunk-Größe wählen, um ausreichend Inhalt zu erfassen, und eine kleinere Überlappung, um den Kontext zwischen den Segmenten ohne Redundanz zu erhalten.
So sieht der endgültige Arbeitsablauf aus:
Wir können ihn ausführen, indem wir auf "Workflow testen" klicken, und sobald er fertig ist, können wir in Pinecone überprüfen, ob die Daten geladen wurden.
Einen RAG-Agenten erstellen
Hier ist das endgültige Schema für den RAG-Agenten:
Als Übung möchte ich dich ermutigen, zu versuchen, es zu verstehen und es vielleicht sogar selbst vor Ort nachzubauen, bevor du weiterliest.
Wir beginnen mit einem "On chat message"-Auslöseknoten. Dies wird verwendet, um einen Chat-Workflow zu erstellen.
Als nächstes verbinden wir den Chat-Trigger mit einem "KI-Agenten"-Knoten mit den Standardoptionen.
Unter dem KI-Agenten sehen wir, dass wir drei Dinge konfigurieren können:
- Das vom Agenten verwendete KI-Modell.
- Der Speicher legt fest, wie sich der Agent den Gesprächskontext merkt
- Die Werkzeuge, auf die der Agent Zugriff hat. In diesem Fall stellen wir die Pinecone-Datenbank als Hilfsmittel zur Verfügung, damit der Agent Fragen zu unserem Dokument beantworten kann.
Für das KI-Modell wählen wir einen "OpenAI Chat Model"-Knoten und verwenden das Modell gpt-4.1
:
Für den Speicher verwenden wir einen "Simple Memory"-Knoten mit einem Kontextfenster der Länge 5. Das bedeutet, dass der Agent sich an die fünf vorherigen Interaktionen erinnert und diese bei seiner Antwort berücksichtigt.
Schließlich fügen wir im Tool einen "Pinecone Vector Store"-Knoten mit der folgenden Konfiguration hinzu:
Im Beschreibungsfeld ist es wichtig anzugeben, wann die Werkzeuge eingesetzt werden sollen. Anhand dieser Angaben entscheidet der Agent, ob er das Tool aufrufen soll.
Als Letztes müssen wir die Einbettung konfigurieren, die der Vektorspeicher verwendet. Wie zuvor verwenden wir einen OpenAI Embedding-Knoten mit dem Modell text-embedding-3-small
:
Der Arbeitsablauf ist abgeschlossen, und wir können mit dem Agenten chatten. Hier ist ein Beispiel:
Auf der rechten Seite sehen wir die Schritte, die der Agent unternommen hat, um unsere Frage zu beantworten. Insbesondere griff es auf die Pinecone-Datenbank zu, um die relevanten Regelinformationen abzurufen.
n8n-Vorlagen
n8n bietet eine nützliche Funktion, die unseren Workflow-Erstellungsprozess erheblich beschleunigen kann: die n8n-Vorlagenbibliothek.
Diese Bibliothek ist eine Sammlung von vorgefertigten Workflows, die von der Community und n8n-Experten erstellt wurden. Ganz gleich, ob wir versuchen, einfache Aufgaben oder komplexere Prozesse zu automatisieren, die Chancen stehen gut, dass jemand bereits einen passenden Workflow für unsere Bedürfnisse entwickelt hat.
Wenn wir einen Workflow in unser n8n-Setup importieren, müssen wir nicht immer bei Null anfangen. Stattdessen können wir uns die kreativen Lösungen zunutze machen, die andere Nutzer entwickelt haben. Sobald wir einen Workflow importiert haben, müssen wir ihn nur noch mit unseren Anmeldedaten konfigurieren und an unsere Anforderungen anpassen.
Für jede Aufgabe, die wir automatisieren wollen, von der E-Mail-Verarbeitung bis zum Social Media Management, gibt es höchstwahrscheinlich eine Vorlage in der Bibliothek.
Fazit
n8n bietet ein umfangreiches Ökosystem an Integrationen, mit dem wir über tausend Dienste und Tools verbinden können, um KI-Agenten zu erstellen. Wir haben in diesem Tutorial nur an der Oberfläche dessen gekratzt, was n8n alles kann. Indem wir erforschen, wie man n8n für den Aufbau von KI-Agenten zur Automatisierung alltäglicher Aufgaben nutzen kann, haben wir gerade erst begonnen, sein Potenzial zu erschließen.