Hallucination gets talked about like it's the cardinal sin of large language models. The thing we have to stamp out before any of this is trustworthy.
But here's what bugs me about that framing: the thing we're cursing is the same thing we praise an hour later. When the model drafts a test case I hadn't considered, or proposes an approach that isn't in any doc, or names a function that doesn't exist yet but probably should, that's the part I'm paying for. That's the part that feels like working with someone smart.
It's the same machinery. There is no "truth mode" and "making-things-up mode" under the hood. The model is always doing exactly one thing: predicting a plausible continuation of what came before. "Hallucination" is just that engine aimed at a question where I wanted it to retrieve, and it decided to invent.
The capability is neutral. My expectation is what turns it into a bug.
Which means the goal was never to eliminate it. You can't, anyway, not without lobotomizing the exact part that makes these tools worth using. A model that can never make anything up can never imagine anything either. Those aren't two settings. They're one.
So the actual skill is knowing which one you're asking for, and setting up accordingly.
The example that turned me around was a SQL query. I had one I was quietly proud of: indexed, profiled, rewritten a couple of times. As sharp as I figured it could get. I asked the tool to help with the code around it, and it handed back a version of the query I didn't recognize. Joins reordered, a WHERE condition moved somewhere I'd never have thought to put it. My first read was that it had broken it. I was most of the way through typing "why did you change my query" when the test went green in about a third of the time I expected. Sixty, maybe seventy percent off the response. It hadn't preserved my query, which is what I thought I'd asked for. It had ignored the shape I was attached to and written the one the planner actually wanted.
When I need facts, I treat it like a junior researcher who's confidently wrong sometimes: I hand it the sources, make it cite, and verify the load-bearing claims myself. When I need ideas, I do the opposite. I turn it loose, let it be wrong on purpose, and sort the good from the nonsense afterward. Same tool. Opposite postures. The mistake is using one posture and expecting the results of the other.
The bug and the feature are the same property pointed in two directions. Maturity with these tools isn't pretending there's an off switch for the inconvenient half. It's learning to aim.
Most of the skill, it turns out, is just being clear about what you're actually asking for. That's true of people, too.