KPMG Pulled a Report Because Its AI Made Things Up
KPMG pulled a report this week. The reason wasn’t a typo or a math slip. The document apparently contained facts the AI had simply invented, citations to things that don’t exist, claims with no source behind them. A Big Four firm, with a brand built on the word “assurance,” had to walk a published report back because the machine that helped write it made stuff up.
I keep coming back to one detail. This wasn’t some intern playing with ChatGPT. This was a firm whose entire business is being the careful one in the room.
Where does a hallucination actually come from
When a language model hallucinates, it isn’t lying in any meaningful sense. It’s doing exactly what it was built to do: predict the next plausible token. If you ask it for a statistic and it has no statistic, it does not stop and say “I don’t have that.” It produces something statistic-shaped. A number that looks right, a study title that sounds like a real study title, a quote attributed to a person who never said it. The output is fluent because fluency is the whole game. Truth was never part of the objective function.
And that’s the part people miss. A model with nothing in front of it is, by design, generating from a void. It fills the void with the most likely-sounding thing. Sometimes the most likely-sounding thing happens to be true. Often it does not.
So the failure isn’t really the model being “wrong.” It’s the model being asked to know something it was never given.
Grounding is boring and it works
There’s a term for the fix: grounding. You give the model the actual source material and tell it to work from that, not from its own foggy recollection of the internet circa training time. Researchers have spent years on retrieval systems, citation pipelines, and verification layers, all chasing the same thing — pin the output to something real.
Most of these approaches are heavy. You build a vector database, you chunk your documents, you set up retrieval, you hope the right chunk surfaces at the right moment. It’s a lot of plumbing to accomplish one simple goal: stop the model from inventing.
Here’s a quieter version of grounding that almost nobody frames this way. The page already open in your browser is source material. It’s loaded. It’s rendered. It’s right there on your screen. A model that reads that isn’t reaching into the void. It’s reading a document.
The browser tab is the cheapest grounding you’ll ever get
This is the whole reason a browser agent like Dassi behaves differently from a chatbot in a separate window. When you ask Dassi about the invoice on screen, the customer record you have pulled up, the dashboard you’re staring at, it reads the actual DOM of the actual page. The numbers it reports are the numbers that exist. The names are the names on the page. There’s no gap between what you can see and what the model can see, because they’re looking at the same thing.
Compare that to pasting a screenshot into a chat window, or worse, describing your data to a model and asking it to reason about figures it never actually received. That second mode is exactly the setup that gets you a KPMG situation. The model is performing knowledge it doesn’t have.
I’m not claiming a browser agent can’t hallucinate. It can. If you ask Dassi about something that isn’t on the page, like your revenue last quarter when there’s no financial data in the tab, it’s back in guess territory, same as any model. Grounding only works on what’s actually there. But for the enormous category of work that is “tell me about the thing in front of me,” reading the real page closes the gap that causes most everyday confabulation.
Why this matters more than it sounds
The KPMG thing will get written up as an embarrassment and forgotten in a month. But the underlying pattern is going to repeat in smaller, less visible ways across every company quietly piping AI into its workflows. Someone asks a model to summarize a contract it was given a vague paraphrase of. Someone asks for a competitor’s pricing and gets numbers that feel right and aren’t. The fluency hides the hollowness.
The defense isn’t a smarter model. GPT-5.2 hallucinates. Claude hallucinates. Gemini hallucinates. They all do, because the failure mode is structural, not a bug that gets patched in the next release. The defense is making sure the model is reading something instead of remembering something.
A browser agent does that almost by accident, because it lives where your work already lives. You logged into the tool. You opened the record. The data is sitting there, authenticated and current. The agent reads from the page state instead of from a half-remembered training corpus. That’s it. That’s the entire trick, and it’s the difference between an answer you can ship and an answer you have to retract.
If you want a longer version of why the tab you already have open beats a cloud agent staring at nothing, I wrote about that in Cloud Browser Agents Can’t See Your Tabs. And the broader case for context living in the browser is here.
KPMG’s mistake was treating a guessing machine like a knowing one. The cheapest correction available is to stop making the machine guess. Hand it the page.