Hallucinations Are a Design Decision

I’m baffled by how many people building AI tools treat hallucinations like the weather. Unfortunate. Unavoidable. Probably Mercury in retrograde. They ship the tool, slap “AI can make mistakes” in 8-point gray font at the bottom of the screen, and call it governance.

That’s not a disclaimer. That’s a confession with better typography.

Imagine a civil engineer trying that. “Bridge may collapse. Please verify structural integrity before crossing.” Nobody would call that responsible engineering. We’d call it a lawsuit with a ribbon-cutting ceremony. Yet somehow in AI, shipping a confident liar with a warning label counts as a product strategy. Ask the New York lawyers who were sanctioned in 2023 for filing a brief full of ChatGPT-invented court cases how well the 8-point disclaimer protected them.

Models will always be capable of making things up. That’s not news. Your tool doesn’t have to let them get away with it. Most hallucinations that reach users aren’t model failures. They’re design failures. The tool asked the model to do something it’s bad at, gave it nothing to check against, and never bothered to verify the answer. Then everyone acted shocked when it improvised.

That’s not artificial intelligence. That’s an unsupervised intern with a thesaurus and a deadline.

All of it is fixable. Here’s how.

1. Let code handle the facts

Language models are bad at counting, parsing, arithmetic, and remembering exact values. So stop asking them to. If the answer lives in a log, a query result, or a file, extract it with code and hand the model the result. The model’s job is interpretation. The facts should arrive already extracted, not estimated.

Every time you ask a model to “read this and tell me how many errors there are,” you are asking it to guess politely.

2. No evidence, no claim

Ground every answer in source material you supplied, and require the model to point to it. If it can’t cite where a claim came from, the claim doesn’t ship. This one rule eliminates a staggering amount of creative writing.

3. Make “I don’t know” a valid answer

Models are trained and graded in ways that reward a confident guess over an honest blank. That’s not just my opinion. OpenAI’s own researchers made the same argument in their 2025 paper, Why Language Models Hallucinate: most benchmarks score a lucky guess higher than an honest “I don’t know,” so models learn to guess.

If your prompt doesn’t explicitly allow uncertainty, the model will fill the gap with something plausible. Tell it that insufficient evidence is an acceptable answer. Then make sure your UI doesn’t treat that answer like an error.

A tool that says “the data doesn’t show this” is more valuable than one that’s always sure.

4. Feed it less, not more

Dumping everything into the context window feels thorough. It isn’t. The “Lost in the Middle” study found that models get significantly worse at using details buried in the middle of long context. Whatever they miss, they fill in with assumptions. Curate what goes in. Relevant beats complete.

Your context window is not a junk drawer.

5. Constrain the output

Free-form prose gives a model infinite room to improvise. Structured output with a defined schema doesn’t. Use fixed fields, enumerated values, and required evidence fields. Then validate the output with code and reject anything that doesn’t conform.

If a field can only be one of five values, the model can’t invent a sixth.

6. Separate what you saw from what you think

Require the output to label observations and interpretations separately. “The connection was reset” is an observation. “The firewall reset the connection” is an interpretation that needs its own evidence. When the two are blended, nobody can tell which part is fact and which part is fan fiction.

7. Verify after you generate

Don’t trust the output just because it came back. Check it. Does the quoted text actually exist in the source? Do the numbers match when you recompute them? Do the referenced APIs, settings, and documents actually exist? Most of these checks are a few lines of code, and they catch the errors that sound the most convincing.

“It returned a 200” is not a validation strategy.

8. Build an eval set from real failures

Every hallucination your tool produces is a free test case. Save it. Build a set of real scenarios with known correct answers and run it every time you change a prompt, a model, or a data source. If you aren’t measuring your hallucination rate, you don’t have one. You have a vibe.

9. Keep a human on the high-stakes path

When the answer drives a production change, a customer communication, or a root cause, a person signs off. Make that review fast by showing the evidence alongside every conclusion. A reviewer who can check a claim in ten seconds will actually do it.

If nobody reads it before it ships, that’s not human in the loop. That’s human in the blast radius.

10. Borrow a 60-year-old idea: Kepner-Tregoe

Long before AI hallucinations, Charles Kepner and Benjamin Tregoe found that people under pressure grab the first plausible cause and then defend it. Sound familiar? Their Problem Analysis method works on models for the same reason it works on people: it won’t let a good story substitute for evidence.

State the deviation precisely. “The app is slow” invites fiction, while “checkout exceeds five seconds on two of six instances since Tuesday” doesn’t.

Specify what IS and what IS NOT. If two instances fail and four don’t, any cause that would hit all six is wrong, and models almost never generate that IS NOT side on their own.

Look for what’s different. Causes live in distinctions and changes, so ask “what’s different about the failing cases?” instead of “what’s wrong?”

Test every cause against every fact. A plausible story explains the facts it mentions and quietly ignores the rest, which is exactly how hallucinations survive. If a cause contradicts even one fact, it isn’t the cause.

AI didn’t invent confident wrong answers. It just industrialized them. The fix was published in 1965.

The bottom line

Hallucinations aren’t a mystery. They’re a recipe. Take one probabilistic system, remove the facts, skip the constraints, waive the accountability, and serve with confidence. You’ll get fiction every time, and it will be beautifully formatted.

The good news is that every fix above can ship this week. None of them require a better model. They require a better tool, built by someone who stopped mistaking fluency for accuracy.

Confidence is cheap. Evidence is expensive. Build tools that know the difference.

Make the AI prove it.

Leave a Reply