Wie heeft er niet eens een AI-antwoord gekregen dat perfect coherent was… maar de kern van de zaak volledig miste?
Stel je voor. Een paar uur na de WK-finale vraag je simpelweg: “Nou, hoe was de finale?” Een mens begrijpt meteen dat je het hebt over de uitslag, de wedstrijd zelf, misschien het beslissende moment of de reacties die het teweegbracht – omdat de context gedeeld is*.
Als een AI zou antwoorden: “Een finale is de laatste wedstrijd van een sportcompetitie”, zou je waarschijnlijk het gevoel hebben dat de AI de kern van de zaak volledig mist, ook al is het antwoord letterlijk correct.
Wat ons frustreert, is niet alleen dat de AI iets fout doet. Het is dat het een conversatiemechanisme verstoort dat we als vanzelfsprekend beschouwen. Plotseling moeten we alles van de grond af aan uitleggen: de context, onze bedoelingen en alle aannames waarvan we dachten dat we ze deelden. Met andere woorden, we praten alsof de andere persoon net is aangekomen.
Precies dat maakt de ervaring frustrerend. Het verstoort een diepgeworteld communicatiemechanisme waar we dagelijks honderden keren op vertrouwen zonder het ons te realiseren.
Aanvankelijk gaf onze ai-assistent voornamelijk een tekstantwoord. We begonnen elementen rondom dat antwoord weer te geven die het nuttiger moesten maken: een grafiek uit een document, een bron die in een zijpaneel te zien is, een knop om de vraag door te sturen naar collega’s, enzovoort.
De interface presenteert deze elementen niet als onafhankelijke componenten. Integendeel, ze worden zo geplaatst dat ze op natuurlijke wijze de indruk wekken dat ze deel uitmaken van de continuïteit van het gesprek.
De gebruiker hoeft zich op zijn beurt niet af te vragen of een afbeelding afkomstig is van het model, de frontend of een externe tool. Alles wat zichtbaar is, wordt spontaan onderdeel van de uitwisseling met de ai-assistent. Als de AI dus niet weet wat er daadwerkelijk aan de gebruiker is gepresenteerd, worden bepaalde impliciete verwijzingen simpelweg onmogelijk te interpreteren.
Dit perspectief heeft ons er vooral toe gebracht het probleem opnieuw te formuleren. Het doel is niet langer alleen om een gespreksgeschiedenis naar het model te sturen, maar om bij elke stap een toestand te reconstrueren die voldoende dicht bij de gemeenschappelijke basis ligt die de gebruiker veronderstelt te delen met de ai-assistent.
De geschiedenis is niet langer beperkt tot de uitgewisselde berichten. We voegen de belangrijkste objecten toe die tijdens de interactie worden geïntroduceerd: bijlagen van de gebruiker, weergegeven bronnen, documentvoorbeelden, enz.
Onze vraag is niet langer alleen: “Heeft het model deze informatie nodig?”, maar eerder: “Is de kans groot dat dit element een gedeelde referentie in het gesprek wordt?” Als het antwoord ja is, moet het in de gespreksstatus kunnen worden weergegeven.
De gemeenschappelijke basis wordt echter niet alleen tijdens het gesprek opgebouwd. Een deel ervan bestaat al vóór het eerste bericht.
Elke ai-assistent een systeemprompt die zijn rol, zijn omgeving en het domein waarin hij opereert beschrijft. Dit vormt de fundamentele, stabiele kennis die vanaf het begin van het gesprek als gedeeld kan worden beschouwd. Een ai-assistent die bijvoorbeeld wordt ingezet, weet dat hij opereert binnen de context van kerncentrales, dat er verschillende “niveaus” zijn en dat apparatuur wordt geïdentificeerd door “functionele referentiesystemen”.
Deze elementen komen niet voort uit de geschiedenis van de uitwisseling, maar vormen wel een gemeenschappelijke basis tussen de gebruiker en de assistent. Ze spelen een rol die vergelijkbaar is met de culturele of professionele kennis die in een menselijk gesprek wordt gedeeld: ze maken een correcte interpretatie van veel impliciete verwijzingen mogelijk zonder dat alles van nul af aan hoeft te worden uitgelegd.
Tot slot is het weergeven van de gemeenschappelijke basis niet voldoende. Zoals we hierboven hebben gezien, bestaat een gesprek ook uit het controleren en herstellen van deze gemeenschappelijke basis wanneer deze ontoereikend is.
Een conversationeel geheugen moet daarom vergezeld gaan van een dialoogbeleid. De assistent moet kunnen herkennen wanneer een verwijzing dubbelzinnig is, om verduidelijking vragen, de formulering aanpassen of toegeven dat er informatie ontbreekt. Deze filosofie is vanaf het begin in onze ai-assistent aanwezig: in plaats van een antwoord te verzinnen, is de ai-assistent zo ontworpen dat hij “Ik weet het niet” kan zeggen wanneer hij niet over de benodigde informatie beschikt. We hebben deze logica geleidelijk uitgebreid naar het beheer van de gemeenschappelijke basis: wanneer de assistent vindt dat een verwijzing onvoldoende wordt gedeeld, kan hij nu om verduidelijking vragen of zijn begrip controleren voordat hij antwoordt.
