Een model kan een perfect opgebouwde toolaanroep genereren die de huidige gebruiker niet mag uitvoeren. Gestructureerde uitvoer helpt de applicatie om het verzoek te begrijpen; het verleent geen toestemming om het uit te voeren.
Ik ontwerp een agent die gereedschap gebruikt als een planner die opereert binnen een door de applicatie gecontroleerde uitvoeringsgrens. Het model stelt de volgende actie voor. De servercode bepaalt of de actie is toegestaan en hoe het resultaat ervan kan worden teruggegeven.
Zorg ervoor dat in het toolcontract de risico’s en de reikwijdte worden beschreven
Een tooldefinitie vereist meer dan alleen een naam en een JSON-schema. Ik wil weten of de tool gegevens leest of wijzigt, welke machtigingen ervoor nodig zijn, hoe het tenantbereik wordt vastgesteld en of de bewerking moet worden goedgekeurd.
Bij het valideren van argumenten moet zowel naar de structuur als naar de betekenis worden gekeken. Een geldige tekenreeks kan nog steeds verwijzen naar het record van een andere huurder. Een correct opgebouwde URL kan nog steeds naar een interne netwerkbron verwijzen. Een numerieke waarde kan buiten het toegestane zakelijke bereik vallen.
Ik zou in eerste instantie een klein aantal nuttige, alleen-lezen tools beschikbaar stellen. Dit vermindert het aantal uitvoeringsgedragingen dat moet worden aangetoond voordat schrijfbewerkingen worden geïntroduceerd.
Geef opnieuw toestemming wanneer de actie wordt uitgevoerd
De applicatie moet op het moment van uitvoering de huidige machtigingen van de gebruiker en het eigendom van de doelbron vaststellen. Een door het model aangeleverde tenant-ID of rol mag nooit als bevoegdheid worden geaccepteerd.
Dit is van belang bij uitvoeringen die uit meerdere stappen bestaan. Het lidmaatschap kan veranderen, een bron kan worden verplaatst of een actie in de wachtrij kan worden uitgevoerd nadat de oorspronkelijke context is verlopen. Autorisatie mag geen eenmalige eigenschap zijn van het eerste bericht in de conversatie.
Hetzelfde principe geldt voor goedkeuring. Goedkeuring moet gekoppeld zijn aan een specifieke handeling en de bijbehorende argumenten. Als de uitvoerder achteraf het doel of het bedrag wijzigt, geeft de eerdere goedkeuring niet langer weer wat er zal gebeuren.
Zet externe inhoud in een aparte vertrouwenscategorie
Een opgehaalde pagina, een bericht van een klant of een resultaat van een tool kan instructies bevatten die aan het model zijn gericht. Die instructies krijgen niet automatisch geldigheid alleen omdat ze in het contextvenster verschijnen.
In de richtlijnen van OWASP inzake prompt-injectie wordt ingegaan op het risico dat onbetrouwbare inhoud het gedrag van het model beïnvloedt. Mijn uitvoeringsgrens gaat ervan uit dat de planner in verwarring kan raken, maar voorkomt niettemin dat deze de machtigingen overschrijdt die door de servercode worden afgedwongen.
Ook de uitvoer van tools moet tot een minimum worden beperkt. Als voor de taak een bestelstatus nodig is, leidt het terugsturen van alle klantvelden tot onnodige blootstelling. Gevoelige velden kunnen worden weggelaten of afgeschermd voordat het resultaat het model bereikt.
Sluit de lus af, niet alleen elke aanroep afzonderlijk
Een bruikbaar algoritme moet beperkingen hebben op het aantal iteraties van de tool, de verstreken tijd, de totale kosten en herhaalde mislukkingen. Beperkingen per oproep zijn onvoldoende als de planner voor onbepaalde tijd een nieuwe oproep kan starten.
Ik maak onderscheid tussen productieve vooruitgang en herhaalde pogingen met dezelfde argumenten. Als een zoekopdracht twee keer geen resultaat oplevert, is een verhelderende vraag wellicht een betere volgende stap dan een derde variant van dezelfde zoekopdracht.
Een taak moet eindigen in een herkenbare status: afgehandeld, verduidelijking nodig, in afwachting van goedkeuring, doorgegeven aan iemand, of mislukt met een herstelbare oorzaak. Dat maakt zowel de interface als het werk van de operator duidelijker.
Leg een actietraject vast dat door een mens kan worden gecontroleerd
Het auditverslag moet het voorgestelde hulpmiddel, de gevalideerde argumenten, het autorisatiebesluit, de relevante goedkeuring, de status van het resultaat en de timing vermelden. Het is niet nodig om de interne redenering van het model openbaar te maken om de beslissingen van de toepassing toe te lichten.
Voor externe schrijfbewerkingen voeg ik een stabiele bewerkings-ID en een idempotentiestrategie toe. Bij het herhalen van de planningsstap mag een reeds voltooide bedrijfsactie niet nogmaals worden uitgevoerd.
De eerste adversariale tests die ik uitvoer, vragen een gewone gebruiker om de gegevens van een andere tenant op te halen, instructies in het resultaat van een tool op te nemen, argumenten na goedkeuring te wijzigen en een voltooide actie te herhalen. De agent krijgt pas meer autonomie als deze grenzen begrijpelijk en afdwingbaar blijven.
Bijgewerkt op 25 september 2026.