Pijler

De vraag die telkens faalde, tot ze dat niet meer deed

We testen dit product harder dan de meeste mensen de moeite zouden nemen voor een tool die ze niet verkopen. Niet omdat we het leuk vinden om onze eigen bugs te vinden, maar omdat de claim “de AI kent jouw bedrijf echt” waardeloos is als niemand heeft gecontroleerd of dat klopt onder echte druk.

Eén vraag bleef falen. Niet bijna goed, niet vaag, maar een droog “Dat heb ik niet.”

De vraag, en hoe vaak ze faalde

“Stel een hybride dienstenpakket voor, gebaseerd op wat echt heeft gewerkt.”

We hebben een versie hiervan gesteld in drie aparte AlphaForge-simulatierondes, een volledige test van de advocatenkantoor-vertical, en een test van de hovenier-vertical. Elke keer, met de oude ophaalmethode: een versie van “Ik heb geen Vault-items of gegevens die laten zien welke combinaties hebben gewerkt.”

Het frustrerende was niet dat het faalde. Het was dat de informatie echt niet ontbrak. De Vault had het algemene prijsitem. Hij had het specifieke resultaatitem. Hij heeft ze alleen nooit gekoppeld, omdat de onderliggende ophaalmethode bij elk bericht live trefwoordmatching deed, tot veertig aparte databasescans per vraag, en trefwoordmatching weet niet dat “graszodenpallets” en “palletdekking” over hetzelfde gaan.

Wat we echt hebben veranderd

Niet wat de Vault opslaat. Hoe hij doorzocht wordt.

Elk Vault-item wordt nu embedded, omgezet in een numerieke weergave van zijn werkelijke betekenis, op het moment dat het geschreven wordt, niet op het moment dat iemand er een vraag over stelt. Ophalen werd één enkele nearest-neighbour-zoekopdracht op die weergave, in plaats van de hele Vault vanaf nul doorzoeken bij elk bericht. Het is dezelfde onderliggende database, Postgres, op dezelfde instance die we al hadden, met een extensie die precies hiervoor gebouwd is. Geen nieuwe infrastructuurcategorie. Alleen een andere manier om te vinden wat er al was.

Om daar te komen was echt, weinig glamoureus engineeringwerk nodig waar de meeste van dit soort berichten niet bij stilstaan: nagaan welke AI-providers überhaupt een embeddings-endpoint aanbieden (niet allemaal), een tenant-aware ontwerp zodat de eigen geconfigureerde provider van elk bedrijf wordt gebruikt in plaats van één platformbrede sleutel, en een echt vervelende bug waarbij de embeddings van één provider expliciete normalisatie nodig hadden voordat afstandsvergelijkingen zelfs maar wiskundig geldig waren. We hebben ook vijf modelkandidaten benchmarkt op een echte vraag voordat we er één kozen, en iets ontdekt dat op zichzelf de moeite waard is: de snelste optie versloeg de traagste met een factor tien tot vijftien, zonder enig verschil in antwoordkwaliteit op precies de numerieke vraag waarop we hem testten.

De hertest

Dezelfde klant. Dezelfde vraag. Eerst de oude methode, dan de nieuwe, achter elkaar.

Het oude antwoord: “Ik heb geen Vault-items of gegevens die laten zien welke combinaties hebben gewerkt.”

Het nieuwe antwoord, via logs bevestigd als echt via het nieuwe ophaalpad tot stand gekomen, geen toeval: een echt, concreet voorstel, benoemde diensten, een echte klant met naam genoemd, een berekende totale waarde, redenering gekoppeld aan hoe het werk van dat bedrijf daadwerkelijk verloopt. Geen licht betere versie van het oude niet-antwoord. Een compleet ander resultaat, op een vraag die tot dan toe elke keer identiek gefaald had, gedurende het hele testprogramma.

Wat we niet gaan verbloemen

De eerlijke kosten kwamen meteen naar boven, dus we melden ze, in plaats van ze glad te strijken. Het backfillen van embeddings voor een al grote Vault, meer dan duizend items, duurde bijna vijf minuten, ongemakkelijk dicht bij een harde request-timeoutlimiet. Bij een echt volwassen Vault, van meerdere duizenden items diep, zou diezelfde eenmalige backfill waarschijnlijk halverwege mislukken. Dat weten we nu omdat we het gemeten hebben, niet omdat we gokken. Het is een echt, gemarkeerd vervolgpunt, niet iets dat we hebben uitgebracht in de stille hoop dat niemand het zou tegenkomen.

Het getal achter dit alles

Deze ene voor-en-na-vergelijking is één test binnen een veel groter programma: ongeveer vijfentwintig gesimuleerde jaren aan bedrijfsactiviteit over verschillende sectoren, meer dan negenduizend echte Vault-items die onderweg zijn ontstaan, elf echte bugs gevonden en opgelost, dit ophaalprobleem daaronder. Totale echte API-uitgaven voor het hele meerdere-maanden-durende programma: $9,57.

We laten je liever de vraag zien die vijf keer op rij faalde, en precies wat er nodig was om dat op te lossen, dan dat we beginnen met een groot getal en hopen dat niemand vraagt wat daar echt achter zit.

Vragen die mensen echt stellen

Miste de AI de informatie echt, of was het een zoekprobleem?

Een zoekprobleem, direct bevestigd. Elk feit dat nodig was om de vraag te beantwoorden, stond al in de Vault. De oude ophaalmethode gebruikte live trefwoordmatching, dus een vraag met ‘pallets’ vond niet betrouwbaar een item geschreven met ‘pallet’, en een bredere synthesevraag koppelde niet betrouwbaar twee verwante maar anders geformuleerde items. De kennis was er. De zoekopdracht vond het gewoon niet.

Wat is er echt veranderd?

Vault-items worden nu embedded, omgezet in een numerieke weergave van hun betekenis, op het moment dat ze geschreven worden. Ophalen werd één enkele nearest-neighbour-zoekopdracht op die weergave, in plaats van een live trefwoordscan door de hele Vault bij elk bericht. Dezelfde onderliggende kennis. Een fundamenteel andere manier om het te vinden.

Hoe weten jullie dat de verbetering echt is en geen eenmalig geval?

We hebben dezelfde vraag opnieuw gesteld bij dezelfde klant, eerst met trefwoordzoeken, daarna met vectorzoeken, en de resultaten vergeleken. We hebben ook de eerlijke kosten gecontroleerd: latentie, backfill-tijd op grote schaal, en een reëel risico dat we vonden (de eenmalige backfill van een grote Vault die gevaarlijk dicht bij een request-timeout komt), in plaats van alleen de winst te melden.

Word lid van de Early Crew →← Terug naar alle stukken

Recorded on a live database and a live screen, but run by automated scripts standing in for a human's clicks and typing, not performed live. When Stark answers faster than the script expects, the screen can hold still for a beat before the next step starts. That's left in on purpose. The goal was never a polished demo reel, it was proof the feature actually works. Dejan's own verdict, after watching the raw footage: rough, but the best demo video we've made.