Match Engine v6: van black box naar auditeerbare AI

Observability als ontwerpprincipe: AI die je in productie durft te vertrouwen
Open Circle Solutions bouwde zijn eigen consultant-matcher, Match, opnieuw op. De grootste winst zat niet in wat het systeem kán, maar in wat het vastlegt: elk AI-besluit is nu herleidbaar tot het model, de promptversie en de reden erachter. Van een monolithische workflow die zijn eigen redenering weggooide, naar een modulair systeem dat je in productie durft te vertrouwen.
De situatie
Match is de interne AI-workflow van Open Circle Solutions die inkomende opdrachten van staffing-brokers automatisch matcht aan beschikbare consultants. Een mail komt binnen, de workflow leest de vacaturetekst, vergelijkt die met de beschikbare mensen en stelt een kandidaat voor.
De eerste versies deden dat, en deden het jaar in jaar uit. Maar het was één grote workflow van tientallen stappen, elke 30 minuten getriggerd, met de logica verspreid over losse code-stappen en de businessregels verstopt in de AI-prompt zelf. Het werkte, tot je een vraag stelde die het niet kon beantwoorden.
De uitdaging
De oude Match kon je niet vertellen waaróm hij deed wat hij deed. Drie voorbeelden, allemaal uit de praktijk:
- De redenering werd weggegooid. De AI-prompt vroeg netjes om een motivatie bij elke match. Maar de stap die het antwoord verwerkte, bewaarde alleen het scorepercentage. De motivatie die de AI produceerde, werd nooit opgeslagen. De uitlegbaarheid die het systeem beloofde, verdween elke run opnieuw.
- Alleen de winnaar overleefde. Alleen de hoogst scorende kandidaat werd bewaard. Elke andere kandidaat, ook een sterke tweede, verdween zonder spoor. Als iemand later vroeg waarom een persoon niet was voorgesteld, was er niets om op terug te vallen.
- Geen spoor, geen versie. Geen uniek kenmerk per aanvraag, geen logging, geen registratie van welke promptversie of welk model een beslissing had genomen. Fouten in de verwerking werden stil weggeslikt.
Voor een interne tool op de eigen bank is dat te overzien. Maar het is precies het soort AI dat je níét in een productieomgeving van een klant wilt zetten. Zeker niet in een sector met toezicht, waar “de AI koos dit” geen antwoord is.
De aanpak
We hebben Match niet gepatcht maar opnieuw ontworpen, met verantwoording als uitgangspunt in plaats van als bijzaak. Elke ontwerpkeuze is vastgelegd in een Architecture Decision Record (ADR), traceerbaar tot op de reden waarom.
- Elk besluit is een auditrecord. Iedere beoordeling die de AI maakt, wordt opgeslagen mét het gebruikte model, de promptversie, de verwerkingstijd en een verplichte reden, óók bij een afwijzing. Maanden later is van elke match te herleiden waarom deze kandidaat wél en die niet.
- De AI rangschikt, hij filtert niet. Het systeem gooit nooit zelf een kandidaat weg. Het ordent en onderbouwt; een mens neemt de uiteindelijke beslissing. Het uitgangspunt: liever één kandidaat te veel voorstellen dan één goede missen.
- Observability by design. Logging, foutafhandeling en monitoring zijn een expliciete laag, geen bijgedachte. Een onherkende situatie leidt tot een zichtbare, geregistreerde uitkomst, nooit tot een stille fout.
- Modulair en getest. Van één verweven workflow naar losse modules, elk met één verantwoordelijkheid, afgedekt door meer dan 700 geautomatiseerde tests. Zo kan het systeem groeien zonder dat er stilletjes iets breekt.
Het resultaat
- Elk AI-besluit herleidbaar: model, promptversie en reden per beoordeling, inclusief de afwijzingen. Volledige audit trail.
- Meer dan 700 geautomatiseerde tests, draaiend bij elke wijziging.
- Live op honderden echte aanvragen uit de eigen praktijk.
- De observability betaalt zich uit. Toen het systeem ooit een kandidaat op 238 km afstand voorstelde, was in de audit trail direct te zien waaróm: een afstandsregel die niet werkte voor aanvragen zonder vermelde werklocatie. Gevonden, verklaard en gecorrigeerd binnen één dag, juist omdat elk besluit een spoor achterliet.
Waarom het werkte
- Verantwoording als ontwerpprincipe, niet als extra. Auditeerbaarheid inbouwen kost vooraf iets; achteraf toevoegen is bijna onmogelijk.
- AI adviseert, een mens beslist. Terwijl de markt naar volledig autonome agents beweegt, is de human-in-the-loop hier een bewuste keuze, omdat verantwoording in dit werk niet optioneel is.
- Uitlegbaarheid is waardeloos als je haar niet bewaart. De grootste les uit de oude versie: een AI die zichzelf verklaart maar wiens verklaring wordt weggegooid, is net zo goed een black box.
Nieuwsgierig of maatwerk voor jou het verschil kan maken?
Neem contact met ons op voor maatwerkoplossingen in Java, geleverd door een ervaren team dat stabiliteit, continuïteit en optimalisatie garandeert voor jouw bedrijfsprojecten.