Dein erster KI-Agent in n8n: Smart automatisieren im Home Lab
Servus, Home Lab Freunde und Automation-Nerds! Heute tauchen wir in ein Thema ein, das mir persönlich in den letzten Monaten viel Freude und noch mehr Optimierung in meinen Workflows gebracht hat: KI-Agenten in n8n. Wenn du wie ich schon länger mit n8n arbeitest, weißt du, was für eine Macht dieses Tool ist, um Dinge zu verketten und zu automatisieren. Aber mit KI-Agenten heben wir das Ganze auf ein völlig neues Level.
Vergiss die einfachen Wenn-Dann-Regeln. Wir reden hier davon, einer KI die Fähigkeit zu geben, selbstständig zu denken, sich Dinge zu merken und aktiv Werkzeuge zu nutzen, um Aufgaben für dich zu erledigen. Das ist kein Hexenwerk, sondern solide Ingenieurskunst, die wir uns mit n8n spielend einfach ins Home Lab holen können.
Was ist ein KI-Agent und warum n8n?
Bevor wir uns die Finger schmutzig machen, lass uns kurz klären, was ein KI-Agent überhaupt ist und warum n8n die perfekte Spielwiese dafür ist. Viele denken bei KI sofort an ChatGPT. Aber ein KI-Agent ist mehr als nur ein smarter Chatbot.
Unterschied: KI-Agent vs. ChatGPT
Stell dir vor, du fragst ChatGPT: "Was ist heute in Berlin los und wie wird das Wetter?" ChatGPT kann dir das Wetter sagen und vielleicht ein paar generische Events aufzählen, wenn es Zugriff auf Webdaten hat. Aber es kann nicht proaktiv handeln, deinen Kalender prüfen, dir eine E-Mail schicken oder dir spezifische Empfehlungen geben, die auf deinen persönlichen Daten basieren. Genau das kann ein KI-Agent.
Ein KI-Agent in n8n ist im Grunde ein großes Sprachmodell (LLM), das durch zusätzliche Komponenten erweitert wird:
- Planung und Argumentation: Es kann einen Plan erstellen, um eine Anfrage zu bearbeiten, und seine Schritte begründen.
- Werkzeugeinsatz: Es kann spezifische Tools nutzen, um an Informationen zu kommen oder Aktionen auszuführen (z.B. Kalender lesen, E-Mails senden, Wetter abfragen).
- Gedächtnis: Es kann sich an frühere Interaktionen erinnern und diese in den aktuellen Kontext einbeziehen.
Das ist ein Game Changer, denn plötzlich kann deine Automatisierungsebene nicht nur statische Aufgaben abarbeiten, sondern dynamisch auf Anfragen reagieren und sogar "mitdenken".
Die 3 Komponenten: Gehirn, Gedächtnis, Werkzeuge
Jeder KI-Agent, den wir bauen, basiert auf diesen drei Säulen:
- Das Gehirn (LLM & Prompt): Das ist das Herzstück, in der Regel ein Large Language Model wie GPT-3.5 oder GPT-4. Hier definierst du über einen sogenannten Meta-Prompt, welche Rolle der Agent hat, welche Ziele er verfolgt und wie er sich verhalten soll. Das ist quasi seine Gebrauchsanweisung und Persönlichkeit.
- Das Gedächtnis (Memory): Damit der Agent nicht bei jeder Interaktion alles vergisst, geben wir ihm ein Gedächtnis. Das kann ein einfacher Puffer sein, der die letzten Konversationen speichert, oder komplexere Mechanismen, die relevante Informationen über längere Zeiträume ablegen.
- Die Werkzeuge (Tools/APIs): Ohne Werkzeuge ist das klügste Gehirn nutzlos. Die Tools sind die Schnittstellen zur Außenwelt. In n8n sind das unsere Nodes, die wir sowieso schon kennen und lieben: Google Calendar, OpenWeatherMap, E-Mail-Dienste und so weiter. Der Agent lernt, wann er welches Tool für welche Aufgabe einsetzen muss.
Guardrails (Leitplanken)
Ein ganz wichtiger Aspekt, der oft unterschätzt wird, sind die Guardrails. Das sind die Leitplanken, die wir unserem Agenten geben, damit er nicht vom Weg abkommt oder Dinge tut, die er nicht soll. Das ist besonders wichtig, wenn er Zugriff auf deine Daten oder Systeme hat. Guardrails werden direkt im Meta-Prompt definiert und schränken sein Verhalten, seine Fähigkeiten oder die Art der Informationen, die er verarbeiten darf, ein. Mein Tipp: Sei hier von Anfang an präzise. Lieber zu restriktiv starten und dann lockern, als umgekehrt!
Grundlage: APIs
Am Ende des Tages basiert alles auf APIs. Ob es die OpenAI API ist, die uns das LLM bereitstellt, oder die APIs von Google Calendar und OpenWeatherMap, die unsere Tools antreiben – sie sind die Kommunikationskanäle. n8n macht es uns hier extrem einfach, diese APIs über seine Nodes zu integrieren und zu verwalten, ohne dass wir uns um die Details der HTTP-Anfragen kümmern müssen.
Voraussetzungen für dein Home Lab Setup
Bevor wir loslegen, stellen wir sicher, dass du alles am Start hast. In meiner Erfahrung ist eine gut vorbereitete Umgebung die halbe Miete.
1. n8n Instanz
Du brauchst eine laufende n8n Instanz. Für unser Home Lab empfehle ich dringend die Selbsthosting-Variante über Docker Compose. Das ist robust, portabel und gibt dir die volle Kontrolle. Falls du noch keine hast, hier ein schnelles Docker Compose Beispiel. Das hat mir viel Zeit gespart beim initialen Setup:
version: '3.8'
services:
n8n:
image: n8n.io/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_HOST=localhost # Oder deine Domain/IP
- N8N_PORT=5678
- N8N_PROTOCOL=http # Oder https, wenn du einen Reverse Proxy nutzt
- WEBHOOK_URL=http://localhost:5678/ # Oder deine öffentliche URL
- GENERIC_TIMEZONE=Europe/Berlin
- TZ=Europe/Berlin
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_secure_password
volumes:
- ~/.n8n:/home/node/.n8n
# Wenn du einen Reverse Proxy wie Nginx Proxy Manager nutzt,
# kann es sinnvoll sein, das Netzwerk anzupassen:
# networks:
# - your_proxy_network
# Wenn du ein separates Netzwerk für deinen Proxy hast:
# networks:
# your_proxy_network:
# external: true
Speichere das als docker-compose.yml und starte es mit docker-compose up -d. Danach ist n8n unter http://localhost:5678 erreichbar.
2. OpenAI API Key
Das Gehirn unseres Agenten braucht Zugang zu den OpenAI-Modellen. Du benötigst einen API Key. Den bekommst du unter platform.openai.com/api-keys. Achtung: Das ist ein kostenpflichtiger Dienst, auch wenn die Kosten für einfache Anfragen meist im Cent-Bereich liegen. Wer das zum ersten Mal einrichtet, sollte ein Budget-Limit setzen, um Überraschungen zu vermeiden.
3. OpenWeatherMap API Key
Für Wetterinformationen nutzen wir OpenWeatherMap. Hole dir einen kostenlosen API Key unter home.openweathermap.org/api_keys. Auch hier gibt es kostenpflichtige Pläne, aber für unsere Zwecke reicht der kostenlose Plan dicke aus.
4. Google Credentials (optional, aber empfohlen)
Wenn dein Agent auf deinen Kalender zugreifen oder E-Mails über Gmail senden soll, brauchst du Google Credentials. Der Prozess ist etwas komplexer, aber n8n hat eine hervorragende Dokumentation dazu: docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/. Folge dieser Anleitung genau. Wichtig zu wissen: Bei selbstgehosteten n8n-Instanzen musst du die OAuth-Redirect-URI in der Google Cloud Console korrekt konfigurieren (oft YOUR_N8N_URL/rest/oauth2-credential/callback).
5. Grundlegendes n8n-Wissen
Ich gehe davon aus, dass du weißt, wie man Workflows erstellt, Nodes hinzufügt und Credentials verwaltet. Falls nicht, schau dir vorher ein n8n-Grundlagen-Tutorial an. Die Basics sind schnell gelernt und unerlässlich.
Dein erster KI-Agent in n8n – Eine Schritt-für-Schritt-Anleitung
Jetzt wird's ernst! Wir bauen unseren ersten KI-Agenten, der uns morgens sagt, was wir anziehen sollen, ob Sport im Freien eine gute Idee ist und ob unser Kalender etwas Wichtiges bereithält. Die Anfrage aus der Quelle ist dafür perfekt:
"Check the weather and my calendar and tell me what to wear, whether it's a good day for a run, or if I should exercise at home instead. You have access to the following tools: My calendar via "checkCalendar", The current weather for {City}, Germany via the "getWeather" tool, My email via sendMail."
Praxis-Start mit n8n
Öffne deine n8n Instanz und erstelle einen neuen Workflow. Wir beginnen mit einem Webhook Trigger Node. Das ist unser Eingangstor für Anfragen an den Agenten. Verbinde ihn noch nicht, er dient erstmal nur als Platzhalter und zum späteren Testen.
Schritt 1: Das Gehirn bauen
Füge einen LLM Chat Model Node hinzu. Das ist unser "Gehirn".
- Credential: Wähle hier dein OpenAI Credential aus, das du zuvor erstellt hast.
- Model: Ich starte meist mit
gpt-3.5-turbo. Es ist schnell und kostengünstig. Für komplexere Aufgaben kannst du später aufgpt-4wechseln. - Temperature: Setze die Temperatur auf
0.7. Das gibt dem Agenten etwas Kreativität, ohne dass er zu sehr "halluziniert". Für extrem faktenbasierte Aufgaben würde ich sie eher auf0.0setzen. - Meta-Prompt: Hier kommt der wichtigste Teil – unser Meta-Prompt. Er definiert die Rolle und die Guardrails. Kopiere diesen Prompt und passe ihn bei
{City}an deine Stadt an.
Write me an optimized prompt for an AI assistant in n8n. Use the sendMail tool to send me an email. Define the "Subject" and "Message" parameters yourself. Check the weather and my calendar and tell me what to wear, whether it's a good day for a run, or if I should exercise at home instead. You have access to the following tools:
* My calendar via "checkCalendar"
* The current weather for {City}, Germany via the "getWeather" tool
* My email via sendMail
Dieser Prompt ist eine Anweisung an das LLM, sich selbst einen optimalen Prompt zu erstellen, der wiederum die Aufgabe löst. Eine Meta-Ebene sozusagen. Die explizite Erwähnung der Tools ist hier entscheidend, damit der Agent weiß, welche Werkzeuge ihm zur Verfügung stehen.
Schritt 2: Gedächtnis hinzufügen
Füge einen Memory Node hinzu und verbinde ihn zwischen dem Webhook Trigger und dem LLM Chat Model. Wähle hier Buffer Window Memory. Das ist eine einfache, aber effektive Art, dem Agenten die letzten Konversationen zu merken. Stelle die Window Size auf 5 oder 10 ein, je nachdem, wie viele vorherige Nachrichten er sich merken soll. Dies ist entscheidend, damit der Agent den Kontext über mehrere Anfragen hinweg behält.
Wichtig zu wissen: Ohne Gedächtnis ist jeder Aufruf eine neue, isolierte Anfrage. Mit Gedächtnis kann der Agent auf frühere Aussagen Bezug nehmen und eine kohärentere Konversation führen.
Schritt 3: Tools verbinden
Jetzt kommt der spannende Teil: Wir statten unseren Agenten mit Werkzeugen aus. Füge folgende Nodes hinzu und verbinde sie mit dem LLM Chat Model Node als sogenannte "Tools". Rechtsklick auf den LLM Chat Model Node -> "Add Tool".
Tool 1: Kalender (Google Calendar)
- Füge einen Google Calendar Node hinzu.
- Wähle "Get Many" als Operation.
- Wähle dein Google Credential aus (siehe Voraussetzungen).
- Füge folgende Parameter hinzu (im "Additional Fields" Abschnitt):
- Tool Name:
checkCalendar(Das ist der Name, den der Agent im Prompt erkennt!) - Parameters: Hier definieren wir, welche Eingaben der Agent für dieses Tool bereitstellen kann.
- name: "startDate" description: "Start date for the calendar query (e.g., 'today', 'tomorrow', or 'YYYY-MM-DD')" type: "string" required: true - name: "endDate" description: "End date for the calendar query (e.g., 'today', 'tomorrow', or 'YYYY-MM-DD')" type: "string" required: true
- Tool Name:
- Konfiguriere im Google Calendar Node die Felder für
Start DateundEnd Dateso, dass sie die vom Agenten übermittelten Parameter nutzen. Dies geschieht typischerweise über Ausdrücke wie{{ $json.startDate }}und{{ $json.endDate }}.
Tool 2: Wetter (OpenWeatherMap)
- Füge einen OpenWeatherMap Node hinzu.
- Wähle "Get Current Weather" als Operation.
- Wähle dein OpenWeatherMap Credential aus.
- Füge folgende Parameter hinzu:
- Tool Name:
getWeather - Parameters:
- name: "city" description: "The city for which to get the weather (e.g., 'Berlin')" type: "string" required: true
- Tool Name:
- Konfiguriere im OpenWeatherMap Node das Feld
Cityso, dass es den vom Agenten übermittelten Parameter nutzt:{{ $json.city }}. Mein Tipp: Die OpenWeatherMap Finder-Seite unteropenweathermap.org/findist super, um die genauen Stadtnamen herauszufinden.
Tool 3: E-Mail (Gmail/SMTP)
Dieses Tool ist im Prompt explizit erwähnt, also muss es auch existieren.
- Füge einen Email Send Node hinzu.
- Wähle dein E-Mail Credential (z.B. Gmail OAuth oder SMTP).
- Füge folgende Parameter hinzu:
- Tool Name:
sendMail - Parameters:
- name: "Subject" description: "The subject of the email" type: "string" required: true - name: "Message" description: "The body of the email" type: "string" required: true - name: "To" description: "The recipient of the email" type: "string" required: true
- Tool Name:
- Konfiguriere im Email Send Node die Felder
To,SubjectundMessageentsprechend mit Ausdrücken wie{{ $json.To }},{{ $json.Subject }}und{{ $json.Message }}. Füge hier deine E-Mail-Adresse als Standardempfänger ein, wenn der Agent dir immer schreiben soll.
Dein Workflow sollte jetzt so aussehen: Webhook Trigger -> Memory -> LLM Chat Model. Und vom LLM Chat Model gehen drei Verbindungen zu den Google Calendar, OpenWeatherMap und Email Send Nodes ab, die als Tools konfiguriert sind.
Schritt 4: KI-Agenten ausprobieren und iterieren
Aktiviere deinen Workflow. Jetzt kannst du ihn testen. Der einfachste Weg ist, den Webhook zu triggern. Du kannst das direkt in n8n tun oder mit einem curl Befehl:
curl -X POST "DEINE_N8N_WEBHOOK_URL" -H "Content-Type: application/json" -d '{"message": "Was soll ich heute anziehen und ist heute ein guter Tag zum Laufen in {City}?"}'
Ersetze DEINE_N8N_WEBHOOK_URL durch die URL deines Webhook Triggers und {City} durch deine Stadt.
Beobachte im n8n-Interface, wie der Workflow abläuft. Du wirst sehen, wie der Agent "denkt". Er wird:
- Die Anfrage erhalten.
- Sein Gedächtnis prüfen.
- Den Meta-Prompt und die Tools analysieren.
- Entscheiden, dass er
getWeatherfür die Stadt braucht. - Das
getWeatherTool mit dem Parametercityaufrufen. - Danach entscheiden, dass er
checkCalendarbraucht. - Das
checkCalendarTool aufrufen. - Basierend auf den Ergebnissen beider Tools eine Antwort formulieren und diese gegebenenfalls per
sendMailverschicken.
Das ist der Moment, in dem du merkst, wie mächtig das ist! Wenn der Agent nicht ganz das tut, was du erwartest, ist das kein Problem. Das ist normal und der iterative Prozess beginnt. Dein Prompt ist der Schlüssel. Feile an ihm, mache ihn präziser, füge weitere Guardrails hinzu. Du kannst den Agenten beispielsweise anweisen, immer eine bestimmte Anrede zu verwenden oder bestimmte Informationen immer zuerst zu liefern.
Häufige Fehler und Lösungen
Wer das zum ersten Mal einrichtet, stolpert oft über ähnliche Hürden. Hier sind ein paar Klassiker:
1. Falsche API Keys oder Credentials
- Problem: Der LLM Chat Model Node gibt Fehler wie "Unauthorized" oder "Invalid API Key" zurück. Auch die Tool-Nodes (Google Calendar, OpenWeatherMap) können ähnliche Fehler werfen.
- Lösung: Prüfe doppelt und dreifach deine API Keys und Credentials. Bei OpenAI: Hast du den richtigen Secret Key kopiert? Ist dein Konto ausreichend Guthaben? Bei Google: Sind die OAuth-Credentials korrekt konfiguriert, insbesondere die Redirect-URI bei selbstgehosteten n8n Instanzen? Bei OpenWeatherMap: Ist der Key aktiv und korrekt hinterlegt?
2. Prompt nicht präzise genug / Agent "halluziniert"
- Problem: Der Agent versteht die Aufgabe nicht richtig, liefert irrelevante Informationen oder versucht, Tools zu nutzen, die gar nicht existieren, oder erfindet Parameter.
- Lösung: Optimiere deinen Meta-Prompt. Sei extrem spezifisch, was du vom Agenten erwartest.
- Definiere klar seine Rolle ("Du bist ein persönlicher Assistent für Wetter- und Kalenderinformationen").
- Liste explizit die Tools auf, die er nutzen darf, und welche Parameter sie haben (wie im Beispiel oben).
- Füge Guardrails hinzu ("Antworte nur auf Fragen zum Wetter und Kalender", "Antworte immer auf Deutsch").
- Gib Beispiele für gewünschte Ausgaben.
0.0bis0.5) zu setzen, um weniger kreative, dafür aber präzisere Antworten zu erhalten.
3. Fehlende oder falsche Tool-Definitionen im LLM Chat Model
- Problem: Der Agent erkennt die Tools nicht, obwohl die Nodes im Workflow vorhanden und verbunden sind. Er versucht, die Aufgabe ohne die Tools zu lösen.
- Lösung: Stelle sicher, dass du bei jedem Tool-Node (z.B. Google Calendar) im LLM Chat Model Node den Tool Name exakt so eingegeben hast, wie er im Meta-Prompt deklariert ist (z.B.
checkCalendar,getWeather,sendMail). Auch die Parameters-Definition muss exakt den erwarteten Parametern des jeweiligen Nodes entsprechen. Ein Tippfehler oder ein fehlender Parameter reicht oft schon, um den Agenten zu verwirren.
4. Netzwerkprobleme bei n8n Self-Host
- Problem: Die n8n Instanz kann externe APIs nicht erreichen (z.B. OpenAI, Google, OpenWeatherMap). Fehler wie "Network Error", "Connection refused" oder "Timeout".
- Lösung: Prüfe deine Server-Firewall (
ufw statusoderfirewalld status). Sind ausgehende Verbindungen erlaubt? Wenn du Docker nutzt, prüfe, ob DNS-Auflösung innerhalb des Containers funktioniert (docker exec -it). Manchmal blockiert auch ein Proxy oder eine restriktive Netzwerk-Konfiguration den Zugriff.ping google.com
Fazit & Nächste Schritte
Glückwunsch! Du hast deinen ersten KI-Agenten in n8n gebaut. Das ist ein Meilenstein, denn du hast nicht nur eine Automatisierung erstellt, sondern einem System beigebracht, selbstständig zu denken und zu handeln. Die Möglichkeiten sind schier grenzenlos.
Was sind die nächsten Schritte? Nun, jetzt, wo du die Grundlagen verstanden hast, kannst du beginnen, diesen Agenten zu erweitern:
- Mehr Tools: Integriere weitere Tools wie Slack, Discord, deine Home Assistant API, oder sogar eigene Skripte über den Code-Node.
- Komplexere Aufgaben: Lass den Agenten E-Mails zusammenfassen, Artikel recherchieren, Smart-Home-Szenen auslösen oder Berichte erstellen.
- Verbessertes Gedächtnis: Experimentiere mit anderen Memory-Typen wie dem "Vector Store Memory", um dem Agenten Zugriff auf eine riesige Wissensbasis zu geben, die er selbstständig durchsuchen kann.
- Feinabstimmung: Spiele mit verschiedenen LLM-Modellen und Prompt-Engineering-Techniken, um die Performance und Präzision deines Agenten zu maximieren.
Die Welt der KI-Agenten ist riesig und entwickelt sich rasant. Mit n8n hast du ein unglaublich mächtiges Werkzeug in der Hand, um an vorderster Front dabei zu sein und dein Home Lab auf das nächste Level zu heben. Viel Spaß beim Experimentieren!