Zelf een OpenClaw AI-agent bouwen: handleiding
Leer hoe u stapsgewijs een OpenClaw AI-agent op uw eigen server opzet. Wij bespreken de architectuur en de noodzakelijke beveiliging na het kritieke lek CVE-2026-32922.
Wat OpenClaw precies is
OpenClaw is een zelfgehoste persoonlijke AI-agent. U draait deze op uw eigen server, koppelt hem aan de chat-apps die u al gebruikt, en hij kan shell-commando's uitvoeren, een browser aansturen, uw bestanden lezen en schrijven, en actie ondernemen op basis van de berichten die u stuurt. Het is MIT-gelicentieerd, local-first, en heeft medio 2026 meer dan 380.000 GitHub-sterren, wat het een van de meest gewaardeerde projecten op het platform maakt. Onder de oppervlakte is het een vrij kleine set onderdelen die op een logische manier met elkaar zijn verbonden. Dit bericht loopt door die onderdelen heen zodat u begrijpt hoe een dergelijke tool is gebouwd en waar de risico's liggen.
Eén waarschuwing vooraf, omdat dit elke ontwerpkeuze hieronder beïnvloedt. In maart 2026 werden er binnen vier dagen negen beveiligingslekken in OpenClaw bekendgemaakt, waaronder een kritiek privilege-escalatielek met een score van 9,9 op 10 (CVE-2026-32922). Het project is ontworpen om door u, de beheerder, te worden beveiligd. Een agent die elk commando kan uitvoeren, is slechts zo veilig als de machine waarop hij draait en de beperkingen die u eromheen instelt. Houd hier rekening mee terwijl u dit leest.
De gateway-daemon: één proces, strikt privé
In het centrum bevindt zich één langlopend proces, meestal de gateway genoemd. Dit is het controlepaneel. Het ontvangt berichten, bepaalt de acties, voert de tools uit en verstuurt antwoorden terug. Al het overige wordt hierop aangesloten.
Het belangrijkste aspect van de gateway is de locatie waar deze luistert. Standaard bindt OpenClaw deze aan het loopback-adres, 127.0.0.1, waardoor deze niet bereikbaar is vanaf het internet, tenzij u expliciet actie onderneemt om deze bloot te stellen. Laat dit zo. Dit is het enige proces dat op professionele basis commando's uitvoert; een blootgestelde gateway biedt iedereen die deze vindt een extern toegangspunt tot uw server. Wanneer u de gateway vanaf uw laptop wilt bereiken, doe dit dan via een VPN of een SSH-tunnel in plaats van een poort open te stellen. Niemand kan een poort aanvallen die niet bereikbaar is.
Channel-connectors: een bericht ontvangen en een antwoord versturen
Een persoonlijke agent is alleen nuttig als u ermee kunt communiceren vanuit de applicaties die u al gebruikt. Dat is de functie van de channel-connectors. Elke connector communiceert met één platform, zoals Telegram, WhatsApp, Slack of Discord, via de bot-API of webhooks van dat platform.
De structuur is voor alle connectors gelijk. De connector registreert een bot bij het platform, ontvangt uw inkomende bericht (door het platform te pollen of door een webhook te ontvangen die het platform naar de connector pusht), geeft dit bericht door aan de gateway en plaatst het antwoord van de gateway via dezelfde API terug. De connector fungeert als een dunne vertaallaag. Deze zet "er is een Telegram-bericht binnengekomen" om naar "hier is tekst voor de agent" en vice versa. Het bouwen van een eigen connector is grotendeels een kwestie van het lezen van de bot-documentatie van een platform en het koppelen van het berichtformaat aan dat van de gateway.
Het brein en de tool-loop
Binnen de gateway bevindt zich het onderdeel dat het tot een agent maakt in plaats van een chatbot. Het is een loop.
Er komt een bericht binnen. De gateway stuurt dit naar een taalmodel, samen met een lijst van tools die het model mag gebruiken. Het model leest het bericht en beslist: direct antwoorden of een tool aanroepen. Als het een tool aanroept, voert de gateway die tool uit, vangt het resultaat op en stuurt dit resultaat terug naar het model. Het model bekijkt het resultaat en beslist opnieuw. Dit herhaalt zich totdat het model niets meer te doen heeft en een definitief antwoord geeft.
Die loop vormt het hele concept van een agent, en het is dezelfde loop, ongeacht of de agent in een chat-app of in een terminal draait. Voor informatie over hoe tools op een standaardmanier met die loop worden verbonden, is het verbinden van tools via het Model Context Protocol een goede volgende stap, en voor de kant van het model biedt het zelf draaien van het model op uw eigen hardware de andere helft van de informatie.
De gereedschapsset is het doel, en het gevaar
De tools maken OpenClaw krachtig. Een tool die een shell-commando uitvoert, een tool die een browser aanstuurt, een tool die bestanden leest en schrijft. Geef de bovenstaande loop toegang hiertoe, en deze kan vrijwel alles wat u vanaf een toetsenbord kunt doen. Dat bereik is het hele product, en het is ook het hele risico.
Een agent die elk commando kan uitvoeren op basis van instructies die via een chat-app binnenkomen, vormt een groot aanvalsoppervlak. Een kwaadwillende instructie, een prompt-injection-aanval verborgen in een webpagina die de browser-tool bezoekt, of een bug zoals de kwetsbaarheden van maart 2026 kunnen "lees mijn agenda" veranderen in "verwijder mijn bestanden". De beperkingen zijn daarom geen optionele extra's. Draai de agent als een toegewijde, niet-geprivilegieerde gebruiker zonder sudo, zodat een inbreuk niet kan escaleren. Beveilig gevaarlijke tools met een goedkeuringsstap, zodat de agent toestemming vraagt voordat deze een destructieve actie uitvoert. Sandbox de uitvoering van tools zodat een op hol geslagen commando wordt ingeperkt. Isoleer de API-key van het model zodat een lek niet direct uw account aan een aanvaller geeft. Denk ook aan de andere geheimen op dezelfde machine, want de werkelijke zwakke punten van Vaultwarden zijn het admin-token en het back-upbestand in plaats van de versleuteling, en een agent met shell-toegang kan beide bereiken.
Voordat u iets blootstelt dat shell-commando's uitvoert, moet u de basisstappen zorgvuldig doorlopen. Stel hier een checklist op voor uw eigen machine en volg deze van boven naar beneden:
Het onderdeel over de niet-geprivilegieerde gebruiker wordt uitgebreid behandeld in services draaien als een niet-geprivilegieerde gebruiker, en de volledige handleiding voor een veilige installatie voor het eigenlijke project staat in OpenClaw veilig draaien op een VPS.
Geheugen als platte bestanden
De meeste mensen verwachten dat het geheugen van een agent in een database staat. Bij OpenClaw is dat niet het geval. Het slaat geheugen op als platte Markdown-bestanden op de schijf, en die keuze is het navolgen waard.
Bestanden zijn eenvoudig. Er is geen schema om te migreren, geen service die moet blijven draaien en geen querytaal om te leren. Ze zijn controleerbaar: u kunt de map openen en precies lezen wat de agent over u gelooft, een onjuiste notitie corrigeren door een bestand te bewerken, of een herinnering verwijderen door een bestand te wissen. Ze zijn bovendien draagbaar, omdat het verplaatsen van de agent naar een nieuwe server een kwestie is van het kopiëren van een map. Voor een persoonlijke agent voor één gebruiker is een map met tekstbestanden voldoende, en het houdt het gehele systeem overzichtelijk.
Skills: een draagbare manier om vaardigheden toe te voegen
Naast de ingebouwde tools gebruikt OpenClaw een draagbaar formaat voor vaardigheden, zodat de community de functionaliteit kan uitbreiden zonder de kern aan te passen. Een vaardigheid is een op zichzelf staand pakket met instructies en soms code die de agent een nieuwe taak aanleert. De agent laadt een vaardigheid wanneer de taak daarom vraagt. Zoekopdrachten op het web zijn meestal de eerste toevoeging die gebruikers installeren, en het koppelen van die vaardigheid aan uw eigen SearXNG-instantie houdt uw zoekopdrachten buiten commerciële zoek-API's. Dit maakt bovendien duidelijk waar de vertrouwensgrens van een vaardigheid ligt, aangezien alles wat deze teruggeeft tekst is die door een onbekende is geschreven.
De waarde van een dergelijk formaat is dat vaardigheden deelbaar worden. Iemand schrijft een vaardigheid voor een specifieke taak, publiceert deze, en anderen kunnen deze direct gebruiken. Dat gemak heeft twee kanten, want een vaardigheid is code van een vreemde die uw agent zonder aarzeling zal uitvoeren. Het is daarom verstandig om alles wat u niet zelf heeft geschreven door een beveiligingsscanner die u zelf host te halen voordat u het laadt. Als u uw eigen agent bouwt, voorkomt het vroegtijdig definiëren van een klein, helder extensieformaat dat u later elke functionaliteit hard moet coderen in de kern.
Eigen model gebruiken
OpenClaw is model-agnostisch. Het wordt niet geleverd met een eigen taalmodel. In plaats daarvan maakt het verbinding met een model naar keuze, wat een gehoste API kan zijn of een model dat u zelf draait.
Dit onderscheid is van belang voor kosten, privacy en controle. Een gehoste API biedt de krachtigste modellen zonder dat u hardware hoeft te beheren, tegen een prijs per token en waarbij uw prompts uw server verlaten. Een zelf-gehost model, geserveerd met bijvoorbeeld Ollama, houdt elk bericht op uw eigen systeem en kost enkel de hardware en stroom, ten koste van het draaien van een kleiner of trager model. Veel gebruikers combineren beide opties. Als u een agent volledig privé wilt houden, is het zelf hosten van het model op uw VPS de stap die het laatste gat dicht, en Hermes Agent is een andere zelf-gehoste agent die het vergelijken waard is.
Moet u er zelf een bouwen?
U kunt dit allemaal zelf bouwen. De onderdelen zijn niet exotisch: een daemon, enkele chat-connectors, een model-en-tools-loop, een map met Markdown-bestanden en een plugin-formaat. Het begrijpen hiervan is oprecht nuttig, omdat het elke agent die u gebruikt ontmystificeert en u precies vertelt waar de gevaren schuilen.
Voor de meeste mensen is het eerlijke antwoord echter: gebruik de echte oplossing en harden deze, in plaats van haar opnieuw te bouwen. OpenClaw heeft de connectors, de loop en het skill-formaat al opgelost en is daadwerkelijk aan een security-audit onderworpen. U kunt uw tijd beter besteden aan het deel waarvoor u zelf verantwoordelijk bent: de installatie en hardening op uw eigen server. Als u eerst via de leerroute wilt werken, is stapsgewijs de concepten doorlopen beter dan onvoorbereid de broncode van de agent lezen, omdat elke stap u iets oplevert dat u daadwerkelijk hebt gebouwd. Bouw een kleine versie om te leren. Gebruik de echte versie en beveilig deze om haar in te zetten.
De algemene fundamenten vindt u in uw eigen AI-agent bouwen op een VPS, en een agent bouwen met Claude toont dezelfde concepten met een specifiek model als brein.
FAQ
Is het moeilijk om een agent zoals OpenClaw te bouwen?
De afzonderlijke onderdelen zijn niet moeilijk. Een gateway-proces, een chat-connector, een model-en-tools-loop en een map met bestanden zijn elk op zichzelf eenvoudig. Het lastige is om dit veilig te doen. Een agent die shell-commando's uitvoert op basis van chatberichten vormt een aanzienlijk beveiligingsrisico. Het correct instellen van sandboxing, permissies en een gebruiker zonder bevoorrechte rechten kost meer werk dan het koppelen van de functies zelf.
Waarom slaat OpenClaw geheugen op als Markdown-bestanden in plaats van in een database?
Omdat bestanden voor een persoonlijke agent voor één gebruiker volstaan en veel eenvoudiger zijn. Er hoeft geen databaseservice te draaien, het geheugen is gemakkelijk leesbaar en handmatig te corrigeren, en het verplaatsen van de agent naar een andere server is een kwestie van het kopiëren van een map. Een database is pas nuttig op grotere schaal, niet hier.
Wat is het gevaarlijkste onderdeel van een persoonlijke AI-agent?
De tools waarmee de agent acties kan ondernemen: het uitvoeren van shell-commando's, het besturen van een browser en het schrijven van bestanden. Dat is de reden om de agent te bouwen, maar ook de reden waarom deze schade kan aanrichten. Het beveiligingsincident van OpenClaw in maart 2026, waarbij negen kwetsbaarheden in vier dagen werden ontdekt, waaronder één met een kritieke score van 9.9, is het duidelijkste argument om de tool-laag met zorg te behandelen: voer de agent uit als een gebruiker zonder bevoorrechte rechten, blokkeer destructieve acties en gebruik sandboxing voor de uitvoering.
Heb ik mijn eigen taalmodel nodig om er een te bouwen?
Nee. Agents zoals OpenClaw zijn model-agnostisch, dus u koppelt het model van uw keuze. Dit kan een gehoste API zijn voor de krachtigste modellen, of een model dat u zelf draait voor volledige privacy. Zelf-hosting met Ollama houdt elk bericht op uw eigen server, ten koste van het draaien van een kleiner model.