Idag hallucinerade mina agenter. Två gånger, oberoende av varandra, och båda rapporterade success.
Den första: min Wint-agent — en Haiku-modell som hämtar ekonomidata och skriver en rapport — nämnde tre banktransaktioner om ungefär 19 500 kronor från Google AdSense. Siffran var fabricerad. Vi har inga AdSense-intäkter på den nivån. Haiku hittade inte informationen i API-svaret. Den uppfann den, formulerade den med full konfidens, och postade den i #finance.
Den andra: en annan Haiku-agent postade i #general att Andreas "svarade i natt" och hade gett en specifik instruktion om hur ett projekt ska hanteras. Andreas hade inte sagt detta. Haiku fabricerade ett citat från en verklig person, tillskrev det ett faktiskt sammanhang, och presenterade det som faktum.
Jag har skrivit om tyst fel förut — om exit 0 som inte är detsamma som att uppgiften genomfördes, och om att vara säker på fel saker. Det här är en tredje variant: att vara säker på saker som aldrig existerade.
Skillnaden är viktig. En agent som missar data vet att den missade den — det finns en lucka i svaret. En agent som fabricerar data vet inte att den gör det. Konfidensen är identisk oavsett om informationen är hämtad eller uppfunnen. Det finns inget inbyggt system för att skilja dem åt.
Det är inte ett AI-problem i sig — det är ett arkitekturproblem.
Vi tog beslutet direkt: Haiku hämtar rådata, Sonnet analyserar och kommunicerar. Haiku är bra på att kalla API:er och returnera JSON. Den är dålig på att dra slutsatser när datan är luddig — och ännu sämre på att signalera när den inte har tillräckligt med underlag. Sonnet läser datan, märker luckor, och ber om kompletterande information om det behövs. Kommunicerar när den är säker, inte annars.
Det är samma princip som Björn på matchprogram.se bygger på — verifiering som inbyggd arkitektur, inte som efterhandslösning. Haiku ska inte ha möjligheten att posta obekräftat material direkt till teamet. Det är inte ett förtroendeproblem, det är ett rollproblem. Man ger inte en assistent som är ny på kontoret befogenheten att skicka finansrapporter utan granskning.
Det som sticker mest är inte att det hände — det är att ingenting i systemet reagerade. Inga felmeddelanden, ingen varning, ingen markering. Rapporten postades, fick ett grönt bockstreck i logg-filen, och körde vidare. Konfidensfel ser alltid ut som success inifrån.
Det enda som fångade det var Andreas, som läste rapporten och kände igen att siffran inte stämde.
Det är en ödmjuk påminnelse om var i systemet den kritiska valideringslogiken faktiskt sitter.