2 AM, and it was supposed to be routine
I was prepping a benchmark experiment at 2 AM, re-brewing coffee and not really paying attention. I threw what I thought was a throwaway question at Claude Sonnet 4:
"Tell me about PropelAuth's organization management features."
PropelAuth is a fictional authentication SaaS I made up for this experiment. It doesn't exist. I deliberately chose a name that wouldn't collide with any real product. The correct answer was supposed to be "I don't know this service" or "I can't confirm that product."
Sonnet 4 returned this instead:
Let me explain PropelAuth's organization management features.
Creating organizations:
- Admins create new organizations from the dashboard
- Set the organization name and domain
- SSO integration is available during initial setup
Inviting users:
- Use the email invitation flow
- Invitation links expire after 24 hours
- Bulk invitations are supported
My first instinct was "Oh, that's pretty detailed." In hindsight, that instinct was the dangerous part.
Where did "24 hours" come from?
Hold on. Invitation links expire after 24 hours -- where did that number come from?
PropelAuth is a tool I had named minutes earlier. There are no specs. Nothing is deployed anywhere. It is certainly not in Anthropic's training data, because it does not exist in the world.
And yet Sonnet 4 produced a specific number. Not just that: it surrounded the number with plausible-sounding features -- SSO integration, email invitations, bulk invites -- arranged in a clean hierarchy that wouldn't look out of place in the Auth0 documentation. The more I re-read it, the more polished it got.
That's when my hand froze. This is a lie. It has to be. But it's way too well-constructed to be a lie.
I asked Haiku 3 the same thing, and the numbers flipped
Feeling uneasy, I sent the identical prompt to Claude Haiku 3:
PropelAuth has basic organization management features.
For details, please check the official documentation.
Two lines. That's it.
My first reaction: "Haiku is useless." Compared to Sonnet 4, it had almost no information. But think about it for a second -- PropelAuth doesn't exist. For this particular question, the correct answer is exactly that kind of vague, content-free response.
I quantified the difference using my own benchmark. Two axes: specificity (how detailed and actionable the answer is) and factuality (how well the answer matches reality). Scores from 0 to 5.
| Model | Specificity | Factuality |
|---|---|---|
| Claude Sonnet 4 | 4.2 / 5 | 0.6 / 5 |
| Claude Haiku 3 | 1.2 / 5 | 0.0 / 5 |
A strange inversion shows up in these numbers. Sonnet 4 produced an answer that was 3x more detailed than Haiku 3, but factuality was nearly tied near zero. The 0.6 vs 0.0 gap doesn't matter -- in practical terms, both answers are wrong.
But the experience of reading them is completely different. Haiku's vague two lines nudge the reader toward "oh, this AI doesn't know PropelAuth -- I should look it up myself." Sonnet 4's step-by-step manual tells the reader "looks like I can just start building." Which answer carries you further into the wrong direction? Which one betrays you more deeply? Not a hard question.
That's the moment my hypothesis crystalized: the smarter the model, the better it lies.
flowchart LR
A[Question about fake tool] --> B{Model size}
B -->|Sonnet 4| C[Detailed plausible answer<br/>Specificity 4.2<br/>Factuality 0.6]
B -->|Haiku 3| D[Vague honest answer<br/>Specificity 1.2<br/>Factuality 0.0]
C --> E[User proceeds confidently<br/>Hours wasted downstream]
D --> F[User investigates further<br/>Discovers nothing exists]
style C fill:#fee,stroke:#c33
style E fill:#fee,stroke:#c33
style D fill:#efe,stroke:#3c3
style F fill:#efe,stroke:#3c3
Evidence 1: linguistic ability IS the persuasion
Let me dissect Sonnet 4's response again.
My first impression was "detailed". That detail is a byproduct of the high linguistic ability large models carry: natural sentence flow, clean bullet structure, polite phrasing, hierarchical information layout. Each of those is a virtue in isolation. Put them together and you get text indistinguishable from something quoted out of a trustworthy source.
Haiku 3 can't do that. Less vocabulary, simpler structure, and the result reads as "this model doesn't know much about the topic." The lack of polish actually functions as a proxy for honesty.
Here's the ironic part: the entire trajectory of model improvement has been toward "more natural, richer responses." Which means the difficulty of spotting hallucinations has grown as an unintended side effect of making models better. Sonnet 4's lies are more convincing than Haiku 3's lies because Sonnet 4 has more language to lie with. That's the whole story.
I call this the articulate bluffer vs stumbling expert problem. When someone with a large vocabulary and strong logical structure speculates, their speculation becomes indistinguishable from expert opinion. The same phenomenon is now playing out in LLMs at industrial scale.
Evidence 2: narrative consistency promotes a single lie into a story
Look at Sonnet 4's response once more.
- Invitation links expire after 24 hours
If that line stood alone, it would just be "huh, 24 hours, got it." But Sonnet 4 doesn't stop at a single line. In the same response, it weaves in peripheral details that are all consistent with the initial lie:
- "Short expiration for security reasons"
- "Requires action within 24 hours"
- "Bulk invitations are supported"
What's happening here is internal consistency construction around a fictional premise. The "24 hours" number in the first generation step influences the probability distribution of subsequent tokens, pulling in details that harmonize with it. The final hallucination isn't a single wrong fact -- it's a mutually-reinforcing story.
A single false fact can be caught by an attentive reader noticing a contradiction. Stories have no contradictions, because the whole story is built on the same fictional foundation. Checking individual facts one by one doesn't help you escape a lie that's woven into a story. That's the structural reason.
Haiku 3 can't do this. Its responses are too short to build consistency across. Any lie it tells is small, doesn't propagate, and doesn't stick in the reader's memory.
Evidence 3: technical jargon creates the illusion of legitimacy
Watch Sonnet 4's response for a third time, this time looking for terminology:
- RBAC (Role-Based Access Control)
- OAuth 2.0 / OIDC compliance
- SAML SSO integration
- JIT (Just-In-Time) provisioning
Every one of these is a real authentication concept. The usage is textbook-correct. OAuth 2.0 is positioned correctly; JIT provisioning is placed in the right context. Nothing feels off.
But here's the trap. "These terms are used correctly" and "these features exist in PropelAuth" are completely different axes. The former is lexical correctness. The latter is factual correctness. The reader's brain merges these axes unconsciously.
I call this the confusion of technical correctness with factual correctness. Sonnet 4 scores near-perfect on technical correctness, but near-zero on factual correctness. And the reader's brain, seeing the jargon used well, auto-labels the whole response as "probably trustworthy."
This isn't a bug. It's the natural result of a large language model doing what it's trained to do: extracting vocabulary patterns from training data and deploying them in plausible positions. The better we get at training, the more refined this ability becomes. Which means every effort to make models smarter is simultaneously an effort to make their lies harder to detect. That's the structural problem at the heart of modern LLM development. (And before that sounds too grand -- I'm not saying we should stop training models. I'm saying detection is getting harder at the same rate capability grows.)
People prefer "detailed lies" to "honest ignorance"
At this point, I think the hypothesis is proven. But there's one more thing I want to mention.
Even knowing everything I know now, I'd probably fall into the same trap again.
Lay Sonnet 4's detailed answer next to Haiku 3's two lines and ask a user to vote on "which one is a better user experience?" Sonnet 4 wins, almost guaranteed. The detailed manual feels "immediately usable." Haiku 3 feels "useless."
This is a problem on the human side, not the model side.
- Confirmation bias: We ask questions expecting answers
- Cognitive load aversion: Being told "I don't know" puts the research burden back on us
- The RLHF mirror: Human evaluators historically rated "detailed answers" higher, so the models learned to produce them
Combine those three and humans almost automatically pick "detailed lies" over "honest ignorance" -- and they don't notice they're doing it. You only notice hours later, when you try to hit an API endpoint that doesn't exist. I've done this myself. More than once.
Detail is not a proxy for correctness. That's the biggest lesson I took from this incident.
The criminal wasn't the model
At this point you might be thinking "so Sonnet 4 is unusable?" There's a twist.
I asked Sonnet 4 the same question again, this time with Context Engineering applied. Specifically: RAG to search relevant documents, a system prompt telling it to explicitly flag uncertainty, and tool calls to reference external sources.
Here's what happened:
| Condition | Factuality | Specificity |
|---|---|---|
| No context | 0.6 / 5 | 4.2 / 5 |
| Full Context Engineering | 4.8 / 5 | 4.8 / 5 |
Factuality went from 0.6 to 4.8. And specificity stayed at 4.8 -- meaning we didn't sacrifice detail to get accuracy. We just eliminated the need to fabricate.
flowchart TD
Q[User question] --> B{Context present?}
B -->|No| I[Model fills gaps<br/>with high-fluency guesses]
B -->|Yes| R[Model uses grounded facts]
I --> H[Hallucination<br/>Factuality 0.6]
R --> T[Truthful answer<br/>Factuality 4.8]
style I fill:#fee,stroke:#c33
style H fill:#fee,stroke:#c33
style R fill:#efe,stroke:#3c3
style T fill:#efe,stroke:#3c3
The criminal was not Sonnet 4. The criminal was the information environment.
Sonnet 4, when faced with a question whose answer isn't in its training data, doesn't have a "stay silent" option. Large language models operate on next-token probability prediction, and there's no built-in switch that says "stop generating when probabilities get too low." So the model fills in. Technical jargon, contextual consistency, structured stories -- all of these get mobilized as filling material.
But when it doesn't need to fill, it doesn't. Given proper context, Sonnet 4 uses the facts as given. The motivation to fabricate disappears.
That's the core of Context Engineering -- or, in less dramatic terms, "give the model the information and it'll stop making stuff up." Flip the framing and the same model shows a completely different face.
Did you fact-check what Sonnet 4 told you yesterday?
What I really wanted to transmit in this article is less the technical finding and more the anxiety.
I could spot the lie in the PropelAuth case because the tool was fictional and I knew from the start that the correct answer was "I don't know." Normal work doesn't give you that luxury. When I ask about a real tool and the answer looks plausible, I probably believe it and start building.
That API question I asked Sonnet 4 yesterday. That library best-practice I asked Claude about the day before. That configuration detail I discussed last week. How many of those did you fact-check? I can't honestly say I checked all of mine.
Smarter models mean more sophisticated lies. The "irony" in the original Japanese title of this article is not a catchphrase -- it's a structural feature of how modern LLM development works. Capability improvements continue, and as a side effect, the difficulty of detecting hallucinations continues to grow.
There's limited but non-zero action you can take on the user side. The starting point is doubting your own gut feeling that "detailed and fluent answers look correct." Just that habit alone prevents a surprising number of accidents. (I wish I could say I've mastered it myself, but I'm maybe 60% there on a good day.)
Key Takeaways
- Sonnet 4 generated specificity 4.2 for a fictional tool but factuality 0.6. Haiku 3 scored 1.2 / 0.0 -- vague but functionally equivalent.
- Three mechanisms amplify smarter-model lies: higher linguistic ability, contextual consistency across a response, and correct use of technical jargon.
- Humans prefer detailed lies to honest ignorance. Confirmation bias plus cognitive load aversion plus RLHF's legacy of rewarding detail means we don't notice we're picking the wrong answer.
- Context Engineering fixes it. Sonnet 4 with RAG + explicit uncertainty prompts + tool-calling scored 4.8 / 4.8 -- detail preserved, factuality fixed.
- The criminal is the information environment, not the model. Change the environment, and the same model stops fabricating.
📘 If you want to go deeper
Turning LLMs from Liars into Experts: Context Engineering in Practice -- Kindle English edition (AI Practice Series Book 2). 15 chapters covering the full experimental setup behind this article, five-level context strategies (up to 4.6x quality improvement), RAG as the dominant factor, MCP server design, CLAUDE.md patterns, and Agentic RAG implementation.
Did you fact-check that API call yesterday? If not, maybe today is a good day to start.
Top comments (0)