Ga naar hoofdinhoud

Dify AI: een gids met demoproject

Leer wat Dify is en hoe je een AI-reisagent bouwt met de low-code drag-and-drop interface.
Bijgewerkt 2 okt 2026  · 12 min lezen

Verken met AI

ChatGPTClaudePerplexity

Dify is een gebruiksvriendelijke platform waarmee je AI-toepassingen kunt bouwen met weinig tot geen code. Het werkt met blokken die je sleept en neerzet, elk met een eigen functie. Informatie stroomt door de blokken, wordt verwerkt en gecombineerd om antwoorden te genereren.

In dit artikel leg ik de basis van Dify uit door je stap voor stap te laten zien hoe je een AI-reisagent maakt.

We houden onze lezers op de hoogte van het laatste AI-nieuws met The Median, onze gratis nieuwsbrief op vrijdag die de belangrijkste verhalen van de week voor je uitpluist. Abonneer je en blijf scherp in een paar minuten per week:

Wat is Dify?

Dify is een platform dat het ontwikkelen van AI-toepassingen vereenvoudigt zonder dat je uitgebreide programmeervaardigheden nodig hebt. Het biedt een gebruiksvriendelijke low-code omgeving waarin je apps bouwt door verschillende componenten te slepen en neer te zetten.

Zie Dify als een digitale gereedschapskist vol kant-en-klare blokken die je in elkaar klikt om werkende software te maken. Deze aanpak maakt technologie toegankelijker, zodat mensen met beperkte programmeerkennis hun ideeën tot leven kunnen brengen.

Elk bloktype heeft invoer en zet die om in verschillende uitvoer, afhankelijk van het type blok. Informatie wordt van blok naar blok doorgegeven en getransformeerd, wat het eindresultaat oplevert.

Aan de slag met Dify

Je kunt Dify op twee manieren gebruiken:

  • Lokale installatie.
  • De cloudversie gebruiken.

In deze tutorial gebruiken we de cloudversie. De cloudversie van Dify heeft een gratis plan, dus je kunt deze tutorial volgen zonder betaalde abonnementen.

Ben je geïnteresseerd in de lokale setup? De makkelijkste manier is:

  1. Download of kloon Dify vanuit de officiële repository.
  2. Start Dify met Docker zoals beschreven in de Quick Start-sectie van de README van de repository.

Een Chatflow maken met Dify

Dify biedt verschillende soorten apps. We richten ons op het bouwen van een Chatflow-app: een AI-flow waarbij gebruikers via een chatinterface met de agent communiceren.

Om een nieuwe Chatflow-app te maken, klik je eerst op "Create from blank" en kies je de optie "Chatflow".

Een zwarte flow maken in Dify

Om de flow te maken, geven we een naam op en klikken dan op de knop “Create”:

Een Chatflow maken in Dify

Dit maakt de volgende standaardflow aan:

De standaard Chatflow in Dify

Deze flow heeft drie blokken:

  • Het startblok start de flow. In het geval van een Chatflow begint de flow wanneer de gebruiker een bericht stuurt.
  • De LLM-node neemt het gebruikersbericht als invoer en stuurt het naar een LLM, in dit geval gpt-4.
  • De laatste node toont een bericht in de chat. In dit voorbeeld is hij verbonden met de LLM-node, dus de uitvoer van de LLM-node gaat naar de chat.

Deze drie nodes samen vormen feitelijk een AI-chat vergelijkbaar met ChatGPT. Voordat we deze app draaien, moeten we de OpenAI-plugin installeren en instellen.

De OpenAI-plugin installeren en instellen

Om de OpenAI-plugin te installeren, doe je het volgende:

  1. Klik op de knop "Plugins" rechtsboven.

De openai-plugin toevoegen in dify

  1. Klik op “Install from Marketplace.”

Toegang tot de marketplace in dify

  1. Typ "openai" in het zoekvak en klik op de OpenAI-plugin.

De OpenAI-plugin installeren in dify

  1. Selecteer de OpenAI-plugin en klik op “Install.”

Vervolgens moeten we de OpenAI API-sleutel instellen. Als je er nog geen hebt, maak hem dan hier aan. Let op: het gebruik van de OpenAI API is niet gratis, dus je moet een betaalmethode koppelen aan de API-sleutel.

Zodra we een sleutel hebben, configureren we die als volgt:

  1. Selecteer de LLM-node.

Een Dify-blok selecteren

  1. Klik op het configuratie-icoon naast de modelnaam.

Een LLM-blok configureren in dify

  1. Klik op de modelkeuzelijst bovenaan.

De modelkeuzelijst

  1. Klik onderaan de lijst op "Model Provider Settings".

De modelprovider configureren in dify

  1. Klik op "Setup" in de API-sleutelsectie.

Modelinstellingen in dify

  1. Plak de API-sleutel en klik op “Save”.

De OpenAI API-sleutel configureren in dify

De app draaien

Nu kunnen we de app draaien door op de previewknop te klikken:

De applicatie previewen.

Op dit moment is het nog niet erg interessant: het is alleen een AI-chatbot. Onthoud dat er niets gebeurt totdat de gebruiker een bericht stuurt.

Voorbeeldchat in dify

Variabelen maken

Dify maakt het mogelijk om de status van de applicatie op te slaan door waarden toe te kennen aan variabelen die voor alle blokken toegankelijk zijn.

Om een variabele te maken, klik je op de variabelenknop:

Een variabele toevoegen in dify

Laten we een variabele maken om de naam van de gebruiker op te slaan:

Variabeleconfiguratie in dify

Deze configuratie maakte een variabele met de naam name die een string (tekst) opslaat. We lieten de standaardwaarde leeg, dus de variabele is in eerste instantie een lege string.

Er zijn verschillende manieren om die te vullen, maar de meest gebruikelijke is een AI-blok gebruiken om dit automatisch uit het gesprek af te leiden. Dat leren we zo. Eerst bekijken we hoe je de waarde van een variabele controleert om de flow van de applicatie te sturen.

IF/ELSE-blokken

Om de waarde van een variabele te controleren, kunnen we een IF/ELSE-blok gebruiken. Dit blok voert verschillende acties uit afhankelijk van de waarde van een variabele.

Om een nieuw blok toe te voegen, klik je op de "+"-knop onderaan:

Een blok toevoegen in dify

Selecteer vervolgens het blok dat je wilt toevoegen. In dit geval kiezen we "IF/ELSE":

Het IF/ELSE-blok in dify

Klik daarna op het blok om het te configureren en selecteer de eerder gemaakte variabele name.

Om dit te testen voegen we twee Answer-blokken toe. Deze blokken tonen een bericht in de chat. We verbinden er één met de IF-uitvoer (die loopt als de voorwaarde waar is) en de andere met de ELSE-uitvoer (die loopt als de voorwaarde onwaar is).

De flow sturen met een IF/ELSE-blok in dify

Voor de IF-uitvoer zet ik de tekst "Sorry, ik weet je naam niet." en voor ELSE "Hallo, {name}!". We kunnen accolades gebruiken om een variabele in een string te injecteren. Dit is later ook handig bij het bouwen van prompts.

We kunnen deze Chatflow proberen via de knop "Preview". Let op: een Chatflow wordt getriggerd door een gebruikersbericht, dus stuur eerst iets, zoals "Hi". Hier zijn de resultaten afhankelijk van of de naam wel of niet is ingesteld (voor het tweede voorbeeld heb ik die handmatig gezet in de interfacevariabele):

Resultaten van flowbesturing

Variable Assigner- en Parameter Extractor-blokken

We kunnen AI gebruiken om de waarden van variabelen te identificeren en te extraheren met een Parameter Extractor-blok. Dit blok gebruikt een LLM om informatie uit het gesprek te halen.

Parameter Extractor-blok

We voegen eerst een Parameter Extractor-blok toe op de IF-tak. Dit is de configuratie van het blok:

Parameter Extractor-configuratie in dify

  • De INPUT VARIABLE staat op sys.query, wat overeenkomt met het gebruikersbericht. Dit betekent dat het Parameter Extractor-blok de waarde uit het gebruikersbericht probeert te halen.
  • In de EXTRACTION PARAMETERS definiëren we de informatie die we willen extraheren. Helaas kunnen we hier niet direct een variabele opgeven, dus we moeten die informatie herdefiniëren door op de “+”-knop te klikken.

Parameterconfiguratie in dify

  • Het veld INSTRUCTION is de prompt die de LLM aanstuurt wat te doen.
  • Vervolgens voegen we een Variable Assigner-blok toe om de door de Parameter Extractor gevonden waarde (indien aanwezig) toe te wijzen aan de variabele name.

Variable Assigner-blok

Zorg dat je de geëxtraheerde name toewijst aan de variabele name.

Variable Assigner-configuratie

Na deze stap kan de variabele name nog steeds ongedefinieerd zijn, omdat het kan dat de gebruiker geen naam heeft gegeven. We voegen dus nog een IF/ELSE-blok toe om te controleren. Als de naam is ingesteld, begroeten we de gebruiker. Anders vragen we naar de naam.

De naamextractor-flow

Hier is een voorbeeldinteractie:

Voorbeeldchat met de naamextractor-flow in dify

Deze flow laat de basisprincipes van Dify-workflows zien. Wat het gebruikersbericht ook is, als de naam niet is gedefinieerd, probeert hij de naam uit het bericht te halen. Lukt dat niet, dan vraagt hij erom. Anders begroet hij de gebruiker met naam.

Er is op dit moment geen LLM-blok, dus de agent doet verder niets.

Code-blok

Code-blokken kun je gebruiken om aangepaste Python-code uit te voeren. Laten we de vorige flow aanpassen om in plaats van de gebruikersnaam de locatie van de gebruiker te extraheren. Daarna gebruiken we een Code-blok om een verzoek te doen aan een weer-API en de weersverwachting naar de gebruiker te sturen.

  • Maak een nieuwe variabele met de naam location.
  • Pas de IF/ELSE-blokken aan zodat ze location controleren in plaats van name.
  • Pas het Parameter Extractor-blok aan om de locatie te extraheren in plaats van de naam.
  • Pas het Variable Assigner-blok aan om de geëxtraheerde waarde toe te wijzen aan de variabele location.
  • Pas de Answer-blokken aan om respectievelijk naar de locatie te vragen en de locatie te tonen.

Na deze stappen zou de flow er zo uit moeten zien:

Locatie-extractorflow in dify

Hier is een voorbeeldinteractie:

Voorbeeldchat met de locatie-extractor

De volgende stap is een Code-blok toevoegen nadat we de locatie hebben. Dit blok doet een verzoek aan de OpenWeather API om de weersverwachting voor die locatie op te vragen.

Deze API is gratis te gebruiken, zolang we niet te veel verzoeken doen. 

Vervang het tweede Answer-blok door een Code-blok. 

Het Code-blok

Configureer het om één parameter met de waarde location te ontvangen.

Het codeblok configureren

Voor de Python-code: zo kun je met het pakket requests het weer ophalen via de OpenWeather API:

import requests

API_KEY = "PASTE_YOUR_API_KEY_HERE"

def main(location: str) -> str:
    base_url = "http://api.openweathermap.org/data/2.5/weather"
    params = {
        "q": location,
        "appid": API_KEY,
        "units": "metric",
    }
    response = requests.get(base_url, params=params)
    data = response.json()
    if response.status_code == 200:
        weather_desc = data["weather"][0]["description"]
        temp = data["main"]["temp"]
        return {
            "result": f"Current weather in {location}: {weather_desc}, Temperature: {temp}°C"
        }
    else:
        return {
            "result": "Could not retrieve weather data",
        }

Tot slot verbinden we de uitvoer van de Code-node met een Answer-node om die aan de gebruiker te tonen.

Het resultaat van het codeblok tonen

We hebben nu een Chatflow die de weersverwachting kan geven:

Voorbeeldchat met de weeragent

Project: een AI-reisplanner bouwen

We hebben nu alle tools om een AI-reisagent te bouwen. De mogelijkheden zijn eindeloos, maar om deze tutorial overzichtelijk te houden, houden we het simpel.

De agent richt zich op het plannen van één dag van de reis. Hij begint met het verzamelen van de locatie van de gebruiker en het soort activiteiten dat die graag doet. Daarvoor gebruiken we twee variabelen:

  • location: sla de locatie op waar de gebruiker naartoe reist.
  • activities: een array met strings die de activiteiten bevatten die de gebruiker wil doen.

Configuratie van de activities-variabele in dify

Zo kun je een flow maken om beide variabelen te extraheren:

De dubbele parameterextractor-flow in dify

In dit voorbeeld beginnen we met een variabelextractieblok om zowel de location als de lijst met activities te extraheren.

De configuratie van de dubbele parameterextractor

Daarna gebruiken we IF/ELSE-blokken om te controleren of elk van deze parameters is geëxtraheerd en werken we de variabelen bij als dat zo is. Anders dan in onze eerdere voorbeelden maakt dit het mogelijk dat de gebruiker de waarden bijwerkt.

Aan het einde van de waarde-extractie en variabeletoewijzing voegen we nog een IF/ELSE-blok toe om te controleren of er waarden ontbreken. Als er iets ontbreekt, vragen we de gebruiker expliciet om die te geven.

De waarden opvragen wanneer de gebruiker ze niet heeft gegeven.

Als zowel location als activities zijn gedefinieerd, gebruiken we het eerder gemaakte Code-blok om het weer op de opgegeven locatie op te halen. Tot slot geven we het weer, de locatie en de activiteiten door aan een LLM-blok om de dag van de gebruiker te plannen.

De LLM-configuratie van de reisagent.

Het LLM-blok is geconfigureerd met een system prompt die het model vertelt wat het moet doen. De locatie, activiteiten en het weer worden erin geïnjecteerd. Hier is het laatste deel van de flow:

De uiteindelijke flow

Hier is een voorbeeldinteractie met de agent:

Voorbeeldinteractie met de reisagent in dify

In de reactie zie je dat de agent dankzij de Code-node het weer kan geven en daarmee rekening houdt bij het plannen van de activiteiten.

Door de manier waarop de flow is opgezet, geeft de agent meteen een dagplanning als de gebruiker alle informatie direct in het eerste bericht geeft.

Nog een voorbeeldinteractie waarbij de gebruiker de informatie direct geeft.

Een aangepaste begroeting instellen

Het kan zijn dat je ziet dat de agent begon met een begroeting aan de gebruiker:

Begroetingsbericht

Om dit mogelijk te maken, moeten we de Conversation Opener-functie activeren.

Toegang tot Dify-functies

De begroeting inschakelen in dify

Dify Tools

In deze tutorial hebben we de fundamentele bouwstenen van Dify geleerd. Eén aspect dat we niet hebben behandeld, zijn tools.

In Dify zijn tools krachtige extensies waarmee je AI-agents met de buitenwereld kunnen communiceren, voorbij de beperkingen van een taalmodel. Een LLM kan redeneren en antwoorden genereren op basis van trainingsdata en promptcontext, maar heeft geen realtime toegang tot live data of externe diensten.

Tools lossen dit op door je agent in staat te stellen API-calls te doen, databases te bevragen, berekeningen uit te voeren, documenten op te halen, en meer. Ze vormen zo een brug tussen je AI en externe informatiebronnen.

Toegang tot Dify-tools

Je kunt tools configureren in Dify via de visuele interface van het platform door het type tool te specificeren (zoals HTTP-verzoeken, code-interpreters of plugins van derden), het input/output-schema en eventuele authenticatievereisten. Eenmaal ingesteld kun je deze tools in je agentflow gebruiken via Tool-blokken, waarmee je data naar de tool stuurt en resultaten terugkrijgt om die vervolgens door te geven aan LLM-nodes of andere logische blokken.

Een toolblok toevoegen

Hierdoor worden je agents niet alleen slimmer, maar ook actiegericht: ze kunnen actuele, contextueel relevante antwoorden geven door met echte diensten te interageren.

In ons voorbeeld gebruikten we een codeblok om een verzoek te doen aan de weer-API. Een alternatief was geweest om een tool te maken en die aan de LLM te geven.

Conclusie

In deze tutorial hebben we enkele van de fundamentele blokken verkend die je nodig hebt om met Dify aan de slag te gaan. Dify biedt echter nog veel meer functies en mogelijkheden om te ontdekken.

Om je begrip te versterken, is een goede oefening om de reisagent die we hebben gemaakt uit te breiden. Overweeg functies toe te voegen zoals internetsuche-mogelijkheden om lokale activiteiten online te vinden, wat de agent kan verrijken en dynamischere suggesties kan opleveren.

Ben je gek op AI-agent builders zoals Dify? Bekijk dan ook onze andere tutorials:


François Aubry's photo
Author
François Aubry
LinkedIn
Full-stack engineer & oprichter bij CheapGPT. Lesgeven is altijd mijn passie geweest. Al vanaf mijn studententijd zocht ik actief naar kansen om bijles te geven en andere studenten te helpen. Die passie bracht me ertoe om te promoveren, waarbij ik ook als onderwijsassistent werkte ter ondersteuning van mijn academische werk. In die jaren vond ik veel voldoening in de traditionele klasomgeving, waar ik verbindingen kon leggen en leren kon begeleiden. Met de opkomst van online leerplatforms zag ik echter het transformerende potentieel van digitaal onderwijs. Sterker nog, ik was actief betrokken bij de ontwikkeling van zo’n platform op onze universiteit. Ik zet me sterk in om traditionele didactische principes te combineren met innovatieve digitale methoden. Mijn passie is om cursussen te maken die niet alleen boeiend en informatief zijn, maar ook toegankelijk voor lerenden in dit digitale tijdperk.
Onderwerpen
AI Agents
Kunstmatige intelligentie

Leer AI met deze cursussen!

Cursus

Inleiding tot AI-agents

1 uur 30 min
143.4K
Leer de basis van AI-agents, hun onderdelen en echte toepassingen kennen — zonder dat je hoeft te coderen.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken