Ga naar hoofdinhoud

De verificatiesandbox

Een AI-agent die een verbetering voorstelt, kan gelijk hebben. Hij kan het ook mis hebben. De verificatiesandbox maakt het verschil zichtbaar voordat iemand iets op de echte database doet.

De sandbox is een wegwerpkopie van de database. Daarin voert de agent zijn voorstel uit, meet het effect en vergelijkt het met het origineel. Na afloop wordt de kopie altijd opgeruimd.

De lus​

  1. Kopie maken. Het platform maakt een kopie aan, gekoppeld aan deze ene opdracht. De naam van de kopie komt uit de opdracht zelf, nooit uit een verzoek van de agent. Een agent kan dus niet per ongeluk op een andere database uitkomen.
  2. Vullen. De kopie krijgt de inhoud die de klant toestaat (zie hieronder).
  3. Nulmeting. De agent draait de bestaande procedure of query en meet looptijd, leesacties en het uitvoeringsplan.
  4. Voorstel toepassen. Het script van de agent wordt in de kopie uitgevoerd. Alleen een script dat als bestand bij dezelfde opdracht is vastgelegd, met een kloppende vingerafdruk, mag erin.
  5. Nameting en vergelijking. Het platform vergelijkt voor en na en geeft een verdict.
  6. Opruimen. De kopie verdwijnt bij afronding, bij annuleren en bij een geforceerde stop. Een opruimdienst vangt de rest.

Wat zit er in de kopie?​

Dat kiest de klant, per bron, als trede op een ladder:

TredeWat er in zitWanneer
SynthetischGegenereerde data in de juiste structuur.Standaard. Goed voor syntaxis en logica.
Synthetisch, gevormd naar echte statistiekenGegenereerde data met de verdelingen en aantallen van de echte database.Als het om performance gaat: de optimizer kiest dan realistische plannen.
Echte dataEen kopie van (een deel van) de echte data.Alleen als de klant dat uitdrukkelijk toestaat.

Zonder toestemming voor een trede ontstaat er geen kopie met die inhoud. De weigering valt bij het aanmaken van de opdracht en opnieuw bij de toolaanroep.

Vrije SQL in de kopie​

In de kopie mag een agent vrije SQL draaien om resultaten te controleren. Ook daar gelden grenzen:

  • één SELECT per aanroep, in een transactie die altijd wordt teruggedraaid;
  • een maximum aan kolommen, rijen, looptijd en aanroepen per opdracht;
  • elke kolom in het resultaat moet herleidbaar zijn tot een bronkolom, anders wordt het hele resultaat geweigerd;
  • elke cel gaat gemaskeerd naar het model, tenzij de bron in de stand open staat;
  • op aggregaten geldt de drempel van tien.

Bij een kopie met echte klantdata ziet het model niet de echte tabelnamen maar pseudoniemen, net als op de bron.

Een fout zonder waarde

Gaat het uitvoeren van een script mis, dan antwoordt het platform met het nummer van de batch, de foutcode en de categorie. Nooit met de tekst van de database-engine. Die tekst citeert vaak precies de waarde waarop hij afketste.

Wat de sandbox oplevert​

Een rapport per opdracht met:

  • de nulmeting en de nameting;
  • het verschil in looptijd en leesacties;
  • het verdict, berekend met vaste drempels;
  • de scripts die zijn uitgevoerd.

Het verdict is een advies. Of de wijziging naar productie gaat, beslist een mens.

Wat kost het?​

Een kopie kost rekentijd zolang hij bestaat. Het platform houdt de seconden per opdracht bij en boekt ze op de klant. Omdat de kopie na elke opdracht verdwijnt, betaal je niet voor kopieën die blijven staan.

Voorbeeld​

Een data-engineer vermoedt dat een view met zes joins de oorzaak is van een traag rapport.

  1. De agent leest de definitie van de view en de statistieken van de onderliggende tabellen.
  2. Hij maakt een kopie met synthetische data, gevormd naar de echte statistieken.
  3. Hij meet de view, herschrijft hem met twee tussenstappen, en meet opnieuw.
  4. Verdict: 64 procent minder leesacties, gelijk resultaat op een steekproef.
  5. Het script staat klaar als bestand bij de opdracht. De engineer zet het zelf door naar test.

Het getal in dit voorbeeld is illustratief.

Zie ook​