AI-agents zijn de volgende stap na eenvoudige automatiseringen. Waar een reguliere workflow precies doet wat jij hebt geprogrammeerd, denkt een ReAct-agent na over het probleem, kiest zelf de juiste aanpak en past zijn strategie aan op basis van wat hij tegenkomt. Het resultaat is een systeem dat omgaat met variatie, onverwachte inputs en complexe vragen, zonder dat jij elke scenario van tevoren hoeft te bedenken.
Wat is ReAct en waarom werkt het?
ReAct staat voor Reasoning and Acting. Het is een architectuurpatroon waarbij een taalmodel niet alleen een antwoord genereert, maar ook een redeneerproces doorloopt: 1. Denken (Thought): de agent analyseert het verzoek en bepaalt welke informatie hij nodig heeft 2. Handelen (Action): de agent roept een tool aan, bijvoorbeeld een database-opzoeking of een API-call 3. Observeren (Observation): de agent leest het resultaat van de tool 4. Herhalen: dit proces herhaalt zich totdat de agent genoeg informatie heeft om te antwoorden Dit maakt de agent veel krachtiger dan een eenvoudige prompt-response loop. De agent kan meerdere stappen doorlopen, fouten corrigeren en zijn aanpak aanpassen op basis van wat hij vindt.
Wat je nodig hebt
Zorg voor het volgende voordat je begint: - n8n versie 2.0 of hoger (cloud of zelfgehost) - Een Anthropic API-sleutel (console.anthropic.com) - Een Google-account met toegang tot Google Sheets - Een Slack-werkruimte met rechten om een app te installeren - Basiskennis van n8n (je hebt al een eenvoudige workflow gebouwd) De kosten voor Claude API gebruik bij het testen zijn verwaarloosbaar, minder dan een paar eurocent per test. Voor productiegebruik reken op 5-15 euro per maand bij gemiddeld gebruik.
Stap 1: Claude API-sleutel aanmaken en koppelen
Ga naar console.anthropic.com en log in met je Anthropic-account. Klik op API Keys in het linkermenu en vervolgens op Create Key. Geef de sleutel een duidelijke naam, bijvoorbeeld n8n-react-agent, en kopieer de sleutel direct want je ziet hem maar eens. In n8n ga je naar Credentials (linkermenu) en klik je op Add Credential. Zoek naar Anthropic en kies Anthropic API. Plak je API-sleutel in het veld en klik op Save. Test de verbinding door op Test te klikken. Als je een groen vinkje ziet, is de koppeling geslaagd.
Je API-sleutel heeft altijd dit formaat: sk-ant-api03-[lange reeks tekens] Bewaar hem in een wachtwoordmanager of in een omgevingsvariabele. Sla hem nooit op in de workflow zelf of in een tekstbestand.
Stap 2: Nieuwe workflow aanmaken met een trigger
Maak een nieuwe workflow aan in n8n. Voor deze handleiding gebruiken we een Webhook-trigger zodat je de agent gemakkelijk kunt testen via een HTTP-verzoek. Kies later in productie voor de trigger die past bij je gebruik (Telegram, e-mail, formulier, etc.). Voeg een Webhook node toe als startnode. Stel de HTTP Method in op POST en noteer de webhook-URL. De URL heeft dit formaat: https://[jouw-n8n-domein]/webhook/[unieke-id] In de volgende stappen bouw je de agent op achter deze trigger.
Stap 3: AI Agent node configureren
Voeg een AI Agent node toe na de Webhook. Dit is de kernnnode die de ReAct-logica uitvoert. Configureer hem als volgt: - Agent: Tools Agent (dit is de ReAct-implementatie in n8n) - Chat Model: klik op het plusje en voeg een Anthropic Chat Model toe. Selecteer je Anthropic-credential en kies claude-sonnet-4-6 als model. Dit model biedt de beste balans tussen kosten en kwaliteit voor agentische taken. - Prompt: hier schrijf je de systeeminstructies voor je agent Gebruik deze systeemprompt als startpunt: Je bent een behulpzame assistent voor [bedrijfsnaam]. Je hebt toegang tot de volgende tools: - zoek_klant: zoek klantinformatie op in de database op basis van naam of e-mailadres - stuur_slack_bericht: stuur een bericht naar een Slack-kanaal - zoek_faq: zoek antwoorden op veelgestelde vragen Gebruik tools wanneer nodig om accurate, actuele informatie te geven. Antwoord altijd in het Nederlands. Wees beknopt maar volledig.
Stap 4: Tools aanmaken voor de agent
De kracht van een ReAct-agent zit in de tools die hij kan gebruiken. Elke tool is een subworkflow of een node die de agent naar keuze kan aanroepen. Voeg tools toe via het Tools-gedeelte van de AI Agent node. Tool 1: Google Sheets opzoekfunctie Klik op het plusje bij Tools en voeg een Google Sheets node toe. Geef de tool een duidelijke naam en beschrijving. De naam en beschrijving zijn cruciaal: Claude gebruikt ze om te beslissen wanneer hij de tool aanroept. Naam: zoek_klantdata Beschrijving: Zoek klantinformatie op in de Google Sheets database. Geef een naam of e-mailadres mee als invoer. Geeft klantnaam, e-mailadres, aankoopdatum en status terug. Stel de Google Sheets node in om te zoeken in je spreadsheet. Gebruik de inputparameter die de agent meestuurt als zoekterm.
Expressie om de zoekopdracht van de agent te gebruiken in de Sheets node: {{ $json.query }} De agent stuurt zijn zoekopdracht mee in het query-veld. De Sheets node gebruikt dit om de juiste rij op te zoeken en het resultaat terug te geven aan de agent.
Tool 2: Slack-berichten sturen Voeg een Slack node toe als tweede tool. Configureer de Slack-credential (maak een Slack App aan via api.slack.com als je dat nog niet hebt gedaan). Naam: stuur_slack_melding Beschrijving: Stuur een bericht naar het opgegeven Slack-kanaal. Gebruik dit alleen als de gebruiker expliciet vraagt om een melding te sturen, of als er een urgente situatie is die aandacht vereist. Vereist: kanaal (#klantenservice of #alerts) en berichttekst. Stel de Slack node in om het kanaal en de tekst te gebruiken die de agent meegeeft.
Stap 5: Geheugen toevoegen voor context
Zonder geheugen vergeet de agent alles na elk gesprek. Voor klantenservice is continuiteit essentieel. Voeg geheugen toe via het Memory-gedeelte van de AI Agent node. Kies Window Buffer Memory. Dit slaat de laatste X berichten op in het werkgeheugen van n8n. Stel de Window Size in op 10 (maximaal 10 berichten bewaren). Dit is voldoende voor de meeste gesprekken en voorkomt dat de context-window van Claude vollooopt. Voor langetermijngeheugen over meerdere sessies, gebruik een externe opslagoptie zoals een database of Simple Memory met een sessie-ID gekoppeld aan de gebruiker.
Stap 6: De agent testen en de redeneerchain lezen
Activeer de workflow in testmodus en stuur een POST-verzoek naar de webhook-URL. Gebruik een tool als curl of Postman: curl -X POST https://[jouw-n8n-url]/webhook/[id] \ -H "Content-Type: application/json" \ -d '{"chatInput": "Wat is de status van klant jan@voorbeeld.nl?"}' Open de uitvoer van de AI Agent node in n8n. Je ziet de volledige redeneerchain: [Thought] De gebruiker vraagt naar de status van een klant. Ik moet de klantdata opzoeken. [Action] zoek_klantdata({"query": "jan@voorbeeld.nl"}) [Observation] {"naam": "Jan de Vries", "status": "actief", "laatste_aankoop": "2026-07-15"} [Thought] Ik heb de benodigde informatie. Ik kan nu antwoorden. [Answer] Jan de Vries is een actieve klant. Zijn laatste aankoop was op 15 juli 2026. Deze transparantie is een van de grote voordelen van ReAct: je kunt precies zien waarom de agent doet wat hij doet.
Stap 7: Foutafhandeling toevoegen
Een productie-ready agent heeft goede foutafhandeling. Voeg een Error Trigger workflow toe die af gaat als de agent vastloopt of een onverwachte fout geeft. Voeg ook een timeout in via de instellingen van de AI Agent node. Stel Maximum Iterations in op 10. Dit voorkomt oneindige loops waarbij de agent blijft proberen maar nooit tot een antwoord komt. Bij 10 iteraties geeft de agent automatisch een foutmelding terug. Voeg een If node toe na de AI Agent om te checken of er een antwoord is: {{ $json.output !== undefined && $json.output !== '' }} Als er geen output is, stuur dan een standaard foutbericht terug naar de gebruiker.
Stap 8: Rate limiting en kosten beheren
Een ReAct-agent roept Claude meerdere keren aan per gesprek (voor elke iteratie). Stel limieten in om kosten te beheersen: 1. Stel Maximum Iterations in op 8-10. Meer iteraties zijn zelden nodig voor klantenservice-taken. 2. Voeg een Rate Limit node toe voor de Webhook om te voorkomen dat een enkele gebruiker tientallen verzoeken per minuut stuurt. 3. Monitor je API-gebruik via de Anthropic console. Stel een bestedingslimiet in (Usage Limits) zodat je nooit voor verrassingen staat. Kostenraming voor claude-sonnet-4-6: - Input: 3 dollar per miljoen tokens - Output: 15 dollar per miljoen tokens - Gemiddeld gesprek (5 iteraties, 2000 tokens): circa 0,03 dollar - 1000 gesprekken per maand: circa 30 dollar Dit is aanzienlijk goedkoper dan menselijke klantenservice voor routinevragen.
Stap 9: Live zetten en monitoren
Activeer de workflow via de schakelaar rechtsboven in n8n. De webhook is nu actief en de agent reageert op binnenkomende verzoeken. Stel monitoring in via n8n's ingebouwde uitvoergeschiedenis. Bekijk dagelijks: - Hoeveel gesprekken zijn er geweest? - Hoeveel iteraties gemiddeld per gesprek? - Zijn er workflows gefaald? - Welke tools worden het meest gebruikt? Opzet een wekelijks overzicht via een apart n8n-rapport dat de statistieken uit de uitvoerlog haalt en naar je e-mail of Slack stuurt.
Veelgemaakte fouten en oplossingen
Fout 1: Agent loopt vast in een loop Oorzaak: de tool-beschrijvingen zijn onduidelijk of de systeemprompt geeft tegenstrijdige instructies. Oplossing: maak tool-beschrijvingen specifieker. Voeg aan elke tool toe wanneer hij WEL en NIET gebruikt moet worden. Fout 2: Agent roept de verkeerde tool aan Oorzaak: tool-namen lijken op elkaar of beschrijvingen overlappen. Oplossing: gebruik unieke, beschrijvende namen. Voeg voorbeelden toe aan de beschrijving. Fout 3: Context raakt verdrongen bij lange gesprekken Oorzaak: de Window Buffer Memory slaat te weinig berichten op. Oplossing: verhoog de Window Size of gebruik een externe database voor langetermijngeheugen. Fout 4: 429 Too Many Requests van Anthropic API Oorzaak: te veel gelijktijdige verzoeken. Oplossing: voeg een Rate Limit node toe voor de Webhook. Stel maximaal 5 verzoeken per minuut per IP in. Fout 5: Agent antwoordt in het Engels ondanks Nederlandse systeemprompt Oorzaak: gebruikersvraag is in het Engels waardoor Claude van taal wisselt. Oplossing: voeg expliciet toe aan de systeemprompt: Antwoord altijd in het Nederlands, ongeacht de taal van de vraag.
Uitbreidingsmogelijkheden
Als je basisagent werkt, zijn dit de logische uitbreidingen: 1. Meer tools toevoegen: koppel je CRM (HubSpot, Pipedrive), je helpdesk (Freshdesk, Zendesk) of je e-commerce platform (Shopify, WooCommerce) als tools 2. Handoff naar mensen: als de agent de vraag niet kan beantwoorden, laat hem dan automatisch een ticket aanmaken in je helpdesksysteem 3. Meertalige ondersteuning: voeg taaldetectie toe en pas de systeemprompt aan op basis van de taal van de gebruiker 4. Analysedashboard: log alle gesprekken in Google Sheets en visualiseer trends in Looker Studio 5. Steminterface: koppel de agent aan een spraak-naar-tekst service voor telefoongesprekken
Nuttige links
Officieel n8n-artikel over AI Agents: docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent Anthropic API-documentatie: docs.anthropic.com/en/api ReAct-paper (origineel onderzoek): arxiv.org/abs/2210.03629 Slack API-setup voor n8n: api.slack.com/apps