02
ai

Waarom we AI in de lus houden, niet op de automatische piloot

AI levert snel. AI levert fout. De kunst is het inzetten waar het oordeel versnelt, niet vervangt. Zo trekken we de grens bij Baboons.

Generatieve modellen zijn buitengewoon goed in geloofwaardig werk afleveren. Ze zijn ook buitengewoon goed in geloofwaardig fout werk afleveren, zonder enige interne alarmbel. Het hele spel, voor een studio die echte software bouwt, is leren wáár je het model vertrouwt, en waar je een menselijke hand aan het stuur houdt.

Drie plekken waar wij AI eerst laten bewegen

We behandelen het model als een snelle stagiair, niet als een senior engineer. Het beweegt als eerste op taken waar de kost van fout zijn laag is en de kost van traag zijn hoog:

  • Boilerplate uitwerken. CRUD-endpoints, form-schemas, test-scaffolds. Alles waar het juiste antwoord vorm is, geen inzicht.
  • Intentie vertalen tussen formaten. Een Figma-frame in een getypeerde component-interface, een SQL-schema in een Zod-validator, een PRD in een checklist.
  • Alternatieven schetsen. Drie layouts, drie copy-varianten, drie architecturen, in de tijd die het vroeger kostte om er één te maken.

Drie plekken waar we het terugtrekken

We pakken het stuur terug zodra een beslissing dragend wordt. De grens is of een fout antwoord zou cumuleren:

Als het opsporen van de fout meer kost dan het werk dat het model bespaarde, hoort het niet op het bureau van het model thuis.

Dat principe houdt ons buiten drie categorieën: datamodel-beslissingen, alles wat met auth of geld te maken heeft, en copy die onder de naam van een klant naar buiten gaat. Niet omdat het model het niet kan proberen, maar omdat we ons niet kunnen veroorloven elke output zo zorgvuldig te verifiëren als nodig zou zijn.

Hoe we het inpluggen

Elk project krijgt een dunne shim die het model achter een getypeerde interface verbergt. De shim is waar het beleid leeft: retries, toegestane prompts, output-validatie. De applicatiecode ziet alleen het gevalideerde resultaat, nooit de ruwe response.

export async function suggestSlug(title: string): Promise<string> {
  const candidate = await ai.generate({
    schema: z.object({ slug: z.string().regex(/^[a-z0-9-]+$/) }),
    prompt: `Slugify: ${title}`,
  });
  return candidate.slug;
}

Voor één regel utility ziet dat er als overkill uit, en dat is het ook, voor dat ene stukje. Maar zodra er veertig van deze door een codebase verspreid liggen, is één plek hebben om modellen te wisselen, prompts te tunen en fouten te loggen wat AI verandert van een feestje in gereedschap.

Wil je zien hoe we dit in echt klantwerk toepassen? De makkelijkste manier is om een gesprek in te plannen. Dan laten we de echte shim zien uit een project dat we dit kwartaal hebben opgeleverd.

Meer uit dit thema
ready?

build with
baboons

Snel, clean en gemaakt voor de toekomst.