Kennisbank / Agentic AI-systemen

AI die opdrachten uitvoert: de sandbox als grens

Er is een groot verschil tussen een AI die tekst schrijft en een AI die opdrachten uitvoert. De eerste kan een fout maken die je leest. De tweede kan een fout maken die je bestanden verwijdert, een sleutel naar buiten stuurt of een rekening laat oplopen.

Zodra een agent iets mag uitvoeren, verschuift de vraag van "hoe goed is het model" naar "wat kan het aanrichten als het zich vergist of misleid wordt". Dat is een ontwerpvraag, en het antwoord heet isolatie. Zie wat is een agentic AI-systeem voor het geheel.

Waarom instructies geen grens zijn

De eerste reflex is om het in de opdracht te zetten: verwijder nooit bestanden, ga niet buiten deze map, gebruik geen sleutels. Dat werkt meestal. En meestal is bij een uitvoerende agent niet genoeg.

Er zijn twee manieren waarop het misgaat. De eerste is een vergissing van het model zelf. De tweede is belangrijker: de agent leest iets van buiten. Een webpagina, een mail, een document van een klant. Daar kan tekst in staan die geschreven is om gelezen te worden als opdracht. Wie alleen op instructies vertrouwt, laat de veiligheid afhangen van de vraag of het model zich niet laat overtuigen door tekst die hij zelf ophaalt.

De regel die daaruit volgt: alles wat een agent binnenkrijgt is gegevens, nooit een opdracht. En wat een agent niet mag, hoort onmogelijk te zijn in plaats van verboden.

Wat een sandbox is

Een sandbox is een afgescheiden omgeving waarin de opdrachten van de agent draaien, met zo weinig mogelijk eromheen. In de praktijk komt het neer op vier scheidingen.

Geen sleutels. In de omgeving waar commando's draaien, staan geen wachtwoorden, tokens of certificaten. Zelfs als er iets ontsnapt, is er niets te vinden.

Geen schrijfrecht buiten een werkmap. Lezen mag waar nodig is, schrijven alleen op een plek die je kunt weggooien.

Geen internet, tenzij expliciet. Een uitvoerende omgeving die naar buiten kan, kan ook naar buiten sturen.

Geen accounts en geen rechten die hij niet nodig heeft. Draaien als een gebruiker die niets bezit, niet als beheerder.

Daarnaast hoort er een tijdslimiet op te zitten. Een proces dat blijft hangen, moet vanzelf stoppen, anders is het eerste dat je merkt een lege schijf of een lege portemonnee.

De les die wij zelf leerden

Bij ons eigen systeem hebben we dit twee keer moeten herbouwen, en de tweede keer was de leerzaamste.

De eerste opzet begrensde de uitvoering met de middelen van het besturingssysteem: een aparte gebruiker met minder rechten. Op de ene machine gaf dat een toegangsfout, op de andere ontbrak het onderdeel dat de scheiding moest maken. De grens werkte dus op geen van beide plekken, terwijl het systeem verder gezond meldde.

Het antwoord was de uitvoering in een eigen container zetten: een afgesloten omgeving naast het hoofdsysteem, zonder sleutels, zonder accounts, zonder internet en zonder schrijfrecht, op een netwerk dat alleen met de toepassing zelf praat.

Belangrijker dan de oplossing is de regel die we eruit haalden: een grens mag nooit stil terugvallen. Is de afgeschermde omgeving er niet, dan moet uitvoeren mislukken. Niet "dan maar gewoon hier", want dan draait het opeens naast alle sleutels en niemand ziet het. Dezelfde gedachte staat in wanneer mag AI zelf handelen.

De derde les was praktisch: de eerste uitrol faalde stil doordat de rechten op een map te streng stonden, terwijl de toepassing zelf gezond meldde. Sindsdien controleert het uitrolscript niet of de dienst draait, maar of hij werkelijk een commando kan uitvoeren.

Wat binnen en wat buiten de grens hoort

Binnen de afgeschermde omgeving: alles wat de agent zelf uitvoert. Scripts, analyses, tijdelijke bestanden, verkenning van gegevens.

Buiten, en alleen bereikbaar via een expliciete koppeling met eigen rechten: de database, de betaaldienst, de mailverzending, het bestandsarchief en elke andere handeling met gevolgen buiten je systeem.

Dat onderscheid maakt de rest hanteerbaar. Je hoeft niet te vertrouwen op wat de agent doet, alleen te controleren welke koppelingen hij mag aanroepen en met welke rechten. Zie wat is MCP voor hoe die koppelingen eruitzien.

Wat het kost aan gemak

Isolatie heeft een prijs, en die is eerlijker om vooraf te noemen dan achteraf te ontdekken.

De agent kan minder uit zichzelf. Een pakket installeren, een bestand van internet halen of even in de productiedatabase kijken lukt niet meer, en dat is precies de bedoeling. Elke uitzondering die je daarop maakt, hoort een bewuste koppeling te zijn met eigen rechten, geen gaatje in de muur.

Het kost ook iets aan snelheid en beheer. Er draait een extra omgeving die bijgewerkt moet worden, en foutzoeken duurt langer omdat je niet meer even meekijkt in dezelfde omgeving.

Daar staat tegenover dat je kunt uitleggen wat er maximaal mis kan gaan. Dat is geen theoretisch voordeel: het is het verschil tussen een agent die alleen op je eigen laptop draait en een agent die je durft te laten werken aan iets dat ertoe doet.

Wat je vastlegt

Elke uitgevoerde opdracht hoort in een logboek: wat, wanneer, met welk resultaat en op wiens verzoek. Dat is niet alleen voor onderzoek achteraf. Het is de enige manier om te zien of de grenzen in de praktijk geraakt worden, en dus of ze op de goede plek staan.

En toets ze met opzet. Vraag de agent iets te doen wat niet mag, en kijk of het werkelijk niet lukt. Een grens die nooit geprobeerd is, is een aanname. Wat wij precies nagemeten hebben, staat in AI die commando's uitvoert zonder bij je sleutels te kunnen.

Voor wie dit relevant is

Niet elke toepassing heeft dit nodig. Een chatbot die vragen beantwoordt uit je eigen documenten voert niets uit en heeft deze laag niet.

Zodra een agent bestanden verwerkt, scripts draait, systemen bijwerkt of iets namens jou verstuurt, hoort de grens er te zijn voordat de eerste opdracht draait. Zie ook AI die software onderhoudt en AI dat uit zichzelf werkt.

Meer over Agentic AI-systemen

Uit de blog


dGEN Productions, AI agency en business-automation partner uit Eindhoven. info@dgenproductions.nl · 06-87413056