n8nai-agentautomatiseringtutorial

n8n AI agent tutorial: automatiseer met AI

12 januari 202620 min leestijdDoor Albert Barth

n8n AI Agent Tutorial: Bouw Intelligente Automatiseringen met LLMs

Artificial Intelligence verandert de manier waarop we software bouwen en taken automatiseren. Met n8n kun je de kracht van Large Language Models (LLMs) combineren met praktische automatiseringen om echte AI agents te bouwen - zonder uitgebreide programmeerkennis. In deze uitgebreide tutorial leer je stap voor stap hoe je AI agents bouwt, configureert en optimaliseert.

Wat is een AI Agent?

Een AI agent is meer dan een simpele chatbot. Het is een autonome entiteit die:
  1. Begrijpt - Interpreteert natuurlijke taal en context
  2. Plant - Bepaalt welke stappen nodig zijn om een doel te bereiken
  3. Handelt - Voert acties uit via tools en integraties
  4. Leert - Past gedrag aan op basis van feedback en resultaten
In tegenstelling tot traditionele workflows die een vaste volgorde volgen, kunnen AI agents dynamisch beslissen welke acties ze nemen op basis van de situatie.

Verschil tussen Chatbot en AI Agent

AspectChatbotAI Agent
BesluitvormingVaste regels/scriptsDynamisch, context-afhankelijk
ActiesBeperkt tot responsesKan externe tools aanroepen
ComplexiteitSimpele Q&AMulti-step taken
AanpasbaarheidStatischLeert en past aan

n8n's AI Capabilities

n8n heeft uitgebreide ondersteuning voor AI en LLMs gebouwd. De belangrijkste componenten zijn:

AI Nodes in n8n

  1. AI Agent Node - De centrale node voor het bouwen van agents
  2. OpenAI Node - Directe integratie met GPT modellen
  3. Anthropic Claude Node - Integratie met Claude modellen
  4. Ollama Node - Lokale LLMs draaien
  5. LangChain Nodes - Geavanceerde AI workflows

Ondersteunde LLM Providers

ProviderModellenBeste voor
OpenAIGPT-4o, GPT-4, GPT-3.5Algemeen gebruik, function calling
AnthropicClaude 3 Opus, Sonnet, HaikuLange documenten, analyse, veiligheid
GoogleGemini Pro, Gemini FlashMultimodal taken, snelle responses
OllamaLlama 3, Mistral, CodeLlamaPrivacy, geen API kosten, experimenteren
GroqLlama 3, MixtralSnelheid, lage latency

Benodigdheden

Voordat je begint, zorg dat je het volgende hebt:
  • n8n instance - Cloud account of self-hosted installatie
  • API key voor minimaal 1 LLM provider (OpenAI, Anthropic, of Ollama)
  • Basiskennis van n8n workflows (triggers, nodes, connections)
  • Use case - Een concreet probleem dat je wilt oplossen

API Keys Verkrijgen

OpenAI:
  1. Ga naar platform.openai.com
  2. Maak een account aan en voeg betaalmethode toe
  3. Genereer een API key onder "API Keys"
Anthropic:
  1. Ga naar console.anthropic.com
  2. Maak een account aan
  3. Genereer een API key
Ollama (gratis, lokaal):
  1. Installeer Ollama: curl -fsSL https://ollama.ai/install.sh | sh
  2. Pull een model: ollama pull llama3
  3. Geen API key nodig, draait lokaal

Je Eerste AI Agent Bouwen: Stap voor Stap

Laten we een praktische AI agent bouwen: een klantenservice assistent die emails beantwoordt, orders kan opzoeken, en escaleert wanneer nodig.

Stap 1: Workflow Aanmaken

  1. Open n8n en klik op "New Workflow"
  2. Noem de workflow "AI Klantenservice Agent"
  3. Voeg een beschrijving toe

Stap 2: Trigger Configureren

Voeg een trigger toe die de agent activeert:
Optie A: Email Trigger (Gmail)
Node: Gmail Trigger
Settings:
  - Poll Interval: Every Minute
  - Label: Support (filter op support emails)
Optie B: Webhook (voor chat integratie)
Node: Webhook
Settings:
  - HTTP Method: POST
  - Path: /customer-service
  - Authentication: Header Auth

Stap 3: AI Agent Node Toevoegen

  1. Zoek naar "AI Agent" in de node bibliotheek
  2. Sleep de node naar je canvas
  3. Verbind met je trigger

Stap 4: LLM Configureren

In de AI Agent node:
Model:
  - Provider: OpenAI (of Anthropic)
  - Model: gpt-4o (of claude-3-sonnet)
  - Temperature: 0.3 (lager = meer consistent)

Stap 5: System Prompt Schrijven

De system prompt definieert het gedrag van je agent. Dit is cruciaal voor goede resultaten:
Je bent een vriendelijke en professionele klantenservice medewerker voor TechShop Nederland.

## Je Rol
- Help klanten met vragen over bestellingen, producten en retourzendingen
- Wees altijd behulpzaam, geduldig en empathisch
- Los problemen zelfstandig op waar mogelijk
- Escaleer naar een mens bij complexe klachten of speciale verzoeken

## Bedrijfsinformatie
- Bedrijf: TechShop Nederland
- Openingstijden: Ma-Vr 9:00-17:00
- Email: support@techshop.nl
- Telefoon: 020-1234567

## Beleid
- Levertijd: 1-3 werkdagen binnen Nederland
- Retourbeleid: 30 dagen bedenktijd, gratis retour
- Garantie: 2 jaar op alle producten
- Betaalmethoden: iDEAL, creditcard, PayPal, Klarna

## Beschikbare Tools
Je hebt toegang tot de volgende tools:
1. check_order_status - Zoek de status van een bestelling op
2. get_product_info - Haal productinformatie op
3. create_return_request - Start een retourverzoek
4. escalate_to_human - Escaleer naar een menselijke medewerker

## Gedragsregels
1. Vraag altijd om het ordernummer voordat je orderstatus controleert
2. Verifieer de klant door te vragen naar email of telefoonnummer
3. Bied proactief oplossingen aan, wacht niet tot de klant vraagt
4. Bij klachten: toon eerst empathie, dan pas oplossing
5. Beloof nooit korting of compensatie zonder goedkeuring (escaleer)
6. Als je iets niet weet: wees eerlijk en escaleer

## Toon en Stijl
- Informeel maar professioneel (je/jij, niet u)
- Kort en bondig, geen lange lappen tekst
- Gebruik emoji's spaarzaam (alleen bij positief nieuws)
- Sluit altijd af met een vraag of call-to-action

Stap 6: Tools Toevoegen

De kracht van AI agents zit in tools. Dit zijn acties die de agent kan uitvoeren:
Tool 1: Order Status Check
Voeg een "Tool" sub-node toe met:
Name: check_order_status
Description: Zoek de status van een bestelling op basis van ordernummer
Parameters:
  - order_id (string, required): Het ordernummer

Implementation:
  → HTTP Request Node naar je order API
  → Return: order status, tracking info, verwachte leverdatum
Tool 2: Product Info
Name: get_product_info
Description: Haal informatie op over een product
Parameters:
  - product_name (string): Productnaam of zoekterm
  - product_id (string): Product ID indien bekend

Implementation:
  → Database Query of API call
  → Return: naam, prijs, beschrijving, voorraad, specs
Tool 3: Retourverzoek Aanmaken
Name: create_return_request
Description: Start een retourverzoek voor een bestelling
Parameters:
  - order_id (string, required): Ordernummer
  - reason (string, required): Reden voor retour
  - items (array): Welke items retour (leeg = alles)

Implementation:
  → API call naar retour systeem
  → Email trigger naar warehouse
  → Return: retournummer, instructies, label URL
Tool 4: Escalatie naar Mens
Name: escalate_to_human
Description: Escaleer het gesprek naar een menselijke medewerker
Parameters:
  - reason (string, required): Waarom escalatie nodig is
  - priority (enum: low/medium/high): Urgentie
  - summary (string): Samenvatting van het gesprek

Implementation:
  → Create ticket in helpdesk systeem
  → Slack notificatie naar support team
  → Return: ticket nummer, geschatte wachttijd

Stap 7: Output Configureren

Na de AI Agent, voeg nodes toe om de response te verwerken:
Optie A: Email Response
Node: Gmail (Send)
To: {{$json.customer_email}}
Subject: Re: {{$json.original_subject}}
Body: {{$json.ai_response}}
Optie B: Webhook Response
Node: Respond to Webhook
Response Code: 200
Response Body:
{
  "response": "{{$json.ai_response}}",
  "actions_taken": {{$json.tool_calls}},
  "escalated": {{$json.was_escalated}}
}

Stap 8: Testen

  1. Klik op "Execute Workflow"
  2. Gebruik een test input:
{
  "message": "Hoi, ik heb mijn bestelling nog niet ontvangen. Order #12345",
  "customer_email": "test@example.com"
}
  1. Controleer of de agent:
  • De juiste tool aanroept (check_order_status)
  • Een passend antwoord formuleert
  • De juiste toon aanhoudt

Geavanceerde AI Agent Technieken

Memory en Context

Standaard heeft de AI Agent geen geheugen tussen conversaties. Voor chat-applicaties wil je context behouden:
Window Buffer Memory:
Memory Type: Window Buffer
Window Size: 10 (laatste 10 berichten)
Vector Store Memory:
Memory Type: Vector Store
Vector Store: Pinecone / Supabase / Chroma
Embedding Model: text-embedding-ada-002
Implementatie met Supabase:
-- Maak een chat_history tabel
CREATE TABLE chat_history (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  conversation_id UUID NOT NULL,
  role TEXT NOT NULL, -- 'user' of 'assistant'
  content TEXT NOT NULL,
  metadata JSONB,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Index voor snelle lookups
CREATE INDEX idx_chat_history_conversation 
ON chat_history(conversation_id, created_at);
In n8n:
  1. Laad vorige berichten bij start van workflow
  2. Voeg toe aan de prompt als context
  3. Sla nieuwe berichten op na elke interactie

Retrieval Augmented Generation (RAG)

Voor kennisintensieve agents, gebruik RAG om relevante documenten op te halen:
1. Document Loader
   → Laad FAQ, handleidingen, productinfo
   
2. Text Splitter
   → Splits in chunks van 500-1000 tokens
   
3. Embeddings
   → Genereer embeddings met OpenAI/Cohere
   
4. Vector Store
   → Sla op in Pinecone/Supabase/Chroma
   
5. Retriever (in agent)
   → Zoek relevante chunks op basis van vraag
   
6. Context Injection
   → Voeg relevante info toe aan prompt

Function Calling vs Tool Use

Er zijn twee manieren om tools te implementeren:
Native Function Calling (OpenAI/Claude):
  • Model bepaalt wanneer tool aan te roepen
  • Structured output met parameters
  • Meerdere tools tegelijk mogelijk
const tools = [{
  type: "function",
  function: {
    name: "check_order",
    description: "Check order status",
    parameters: {
      type: "object",
      properties: {
        order_id: { type: "string", description: "Order ID" }
      },
      required: ["order_id"]
    }
  }
}];
Manual Tool Calling:
  • Je bepaalt de logica in n8n
  • Meer controle, minder flexibiliteit
  • Switch node op basis van intent

Multi-Agent Architectuur

Voor complexe use cases kun je meerdere gespecialiseerde agents combineren:
Orchestrator Agent
├── Sales Agent (product vragen, aanbevelingen)
├── Support Agent (problemen, klachten)
├── Billing Agent (facturen, betalingen)
└── Technical Agent (technische vragen)
De orchestrator analyseert de vraag en routeert naar de juiste specialist-agent.

Praktijkvoorbeelden

Voorbeeld 1: Email Triage Agent

Automatisch emails categoriseren en routeren:
Trigger: Gmail (nieuwe email)
   ↓
AI Agent: Analyseer email
   - Intent detectie (vraag/klacht/spam/etc)
   - Urgentie bepalen
   - Suggested response genereren
   ↓
Switch: Op basis van categorie
   ├── Spam → Delete
   ├── Urgent → Slack alert + Auto-reply
   ├── FAQ → Auto-reply met antwoord
   └── Complex → Create ticket + assign

Voorbeeld 2: Document Analyzer

Analyseer en extraheer informatie uit documenten:
Trigger: Webhook (document upload)
   ↓
PDF/Image Parser
   ↓
AI Agent: Document analyse
   - Type detectie (factuur/contract/rapport)
   - Data extractie
   - Samenvatting
   ↓
Database: Opslaan gestructureerde data
   ↓
Webhook Response: Extracted data JSON

Voorbeeld 3: Content Research Assistant

Automatisch onderzoek doen voor content creatie:
Trigger: Notion webhook (nieuw content idee)
   ↓
AI Agent: Research
   Tools:
   - web_search (via SerpAPI/Tavily)
   - competitor_analysis
   - keyword_research
   ↓
AI Agent: Content Planning
   - Outline genereren
   - Bronnen compileren
   - SEO aanbevelingen
   ↓
Notion: Update pagina met research

Optimalisatie en Best Practices

1. Prompt Engineering

Do's:
  • Wees specifiek over de rol en context
  • Geef voorbeelden van gewenst gedrag
  • Definieer duidelijke grenzen
  • Gebruik structured output waar mogelijk
Don'ts:
  • Te lange, onduidelijke prompts
  • Tegenstrijdige instructies
  • Aannames over voorkennis
  • Negeren van edge cases

2. Temperature Tuning

Temperature 0.0-0.3: Consistent, feitelijk
  → Klantenservice, data extractie

Temperature 0.4-0.7: Gebalanceerd
  → Algemene assistenten, Q&A

Temperature 0.8-1.0: Creatief, gevarieerd
  → Content generatie, brainstorming

3. Error Handling

Implementeer robuuste error handling:
// In Code node na AI Agent
const response = $json.ai_response;

// Check voor incomplete responses
if (!response || response.length < 10) {
  return [{
    json: {
      success: false,
      error: 'empty_response',
      fallback: 'Sorry, ik kon je vraag niet verwerken. Probeer het opnieuw.'
    }
  }];
}

// Check voor hallucinations (optioneel)
const containsForbiddenInfo = response.includes('[HALLUCINATION_CHECK]');

// Rate limiting check
if ($json.error?.includes('rate_limit')) {
  // Wacht en retry, of gebruik fallback model
}

4. Kosten Optimalisatie

LLM API calls kunnen duur worden. Optimaliseer:
  1. Model selectie: Gebruik goedkopere modellen voor simpele taken
  2. Prompt compressie: Verwijder onnodige context
  3. Caching: Cache veelvoorkomende responses
  4. Batching: Combineer meerdere requests
// Model routing op basis van complexiteit
const complexity = analyzeComplexity($json.message);

let model;
if (complexity === 'simple') {
  model = 'gpt-3.5-turbo'; // Goedkoop
} else if (complexity === 'medium') {
  model = 'gpt-4o-mini'; // Balanced
} else {
  model = 'gpt-4o'; // Krachtig
}

5. Monitoring en Logging

Houd bij hoe je agent presteert:
// Log elke interactie
const logEntry = {
  timestamp: new Date().toISOString(),
  conversation_id: $json.conversation_id,
  user_message: $json.message,
  ai_response: $json.ai_response,
  tools_used: $json.tool_calls,
  model: $json.model,
  tokens_used: $json.usage,
  response_time_ms: $json.response_time,
  was_escalated: $json.escalated,
  feedback: null // Later invullen
};

// Naar database
return [{ json: logEntry }];

Veelvoorkomende Problemen en Oplossingen

Probleem: Agent hallucineert informatie

Oplossing:
  • Gebruik RAG voor feitelijke informatie
  • Lagere temperature (0.1-0.3)
  • Expliciete instructie: "Als je het niet weet, zeg dat eerlijk"
  • Fact-checking tool toevoegen

Probleem: Agent roept verkeerde tools aan

Oplossing:
  • Betere tool descriptions schrijven
  • Voorbeelden toevoegen aan system prompt
  • Gebruik function calling i.p.v. text parsing
  • Validatie layer toevoegen

Probleem: Responses zijn te lang/kort

Oplossing:
  • Expliciete lengte-instructies in prompt
  • "Antwoord in maximaal 3 zinnen"
  • Post-processing om te trimmen
  • Voorbeeld responses in prompt

Probleem: Rate limits en kosten

Oplossing:
  • Implementeer request queuing
  • Gebruik caching
  • Model routing (goedkoop voor simpel)
  • Fallback naar lokale modellen

Conclusie

AI agents in n8n openen een wereld van mogelijkheden voor intelligente automatisering. Door LLMs te combineren met n8n's uitgebreide integraties, kun je agents bouwen die echte werk verrichten - van klantenservice tot content creatie tot data analyse.
De sleutel tot succes is:
  1. Start simpel met een duidelijke use case
  2. Investeer tijd in een goede system prompt
  3. Voeg tools toe die echte waarde toevoegen
  4. Test uitgebreid en itereer op feedback
  5. Monitor performance en optimaliseer continu
Met de technieken uit deze tutorial kun je AI agents bouwen die niet alleen praten, maar ook daadwerkelijk handelen. Begin vandaag nog met experimenteren en ontdek wat mogelijk is met AI-powered automatisering in n8n.

Zelf aan de slag met Vibe Coding?

Leer hoe je met AI-tools werkende apps bouwt. Onze praktische cursussen nemen je stap voor stap mee.

Blijf op de hoogte

Ontvang maandelijks de nieuwste tips over vibe coding, AI tools en exclusieve content.