Skip to main content

Command Palette

Search for a command to run...

Why One-Shot Answers Are the Real Hallucination Problem

Published
4 min read
Why One-Shot Answers Are the Real Hallucination Problem

In my last post where I went deep on AI memory systems, that was all about helping models remember better.
Today, we’re tackling the other side of the pain spectrum: hallucinations.

You’ve seen it. You ask ChatGPT or Grok something simple, and it replies with insane confidence and is still wrong.

“Hillary Clinton was born in NYC.”

Sounds legit.
It’s also false. She was born in Chicago, 1947.

This is the worst kind of bug, it’s not a crash or an error but a confident lie. They don’t fail loudly. They slowly destroy trust. One wrong answer and suddenly your AI-powered feature feels like a liability.

Recently, I came across COVE that made me pause. Not because it promised a magical fix, but because it proposed something refreshingly practical, it doesn’t involve any RAG or web search or any kind of retraining. Just make the model check its own work,It’s so simple.

The technique is called Chain-of-Verification (CoVe). I implemented it end-to-end in express wired it into a real app, and tested it on tricky factual queries.
Hallucinations dropped drastically demonstrating a practical use case for this paper.

This post is a simple walkthrough of:

  • why hallucinations happen,

  • how CoVe actually works,

  • the 4-agent setup I built,

Let’s get into it.

The real hallucination problem

Hallucinations aren’t random; They happen because:

  • LLMs predict words, not truth

  • Rare facts are weakly represented

  • Long answers compound early mistakes

  • The model never stops to think and ask itself.

Once a model says something wrong, it tends to double down and build on it.

That’s why:

  • Short answers are usually safer

  • Long bios, lists, and explanations tend to go off the rails

Most fixes try to make models smarter; CoVe does something different. It makes them slower and more careful.

The core idea behind Chain-of-Verification

Instead of asking the model for a final answer immediately, you force it through four steps:

  1. Draft an answer

  2. List the facts that need checking

  3. Verify those facts independently

  4. Rewrite the answer using only verified info

That’s it; Same model, Same weights, Different behavior.

Think of it like how you’d write an exam answer:

  • First draft

  • Then sanity check key facts

  • Then fix mistakes before submitting

LLMs just need to be forced into that workflow.

The 4-agent CoVe pipeline (how I built it)

I implemented CoVe as a clean, synchronous pipeline the following workflow:

Here’s the flow:

User Question
   ↓
Agent 1 → Draft answer
   ↓
Agent 2 → What facts need checking?
   ↓
Agent 3 → Check each fact independently
   ↓
Agent 4 → Rewrite the final answer

Let’s break this down further

Agent 1: Baseline Generator →let it hallucinate

This agent does exactly what you normally do with an LLM:

  • Takes the user question

  • Generates a direct answer

Hallucinations are allowed here.
This is just a draft, not the final truth.

Why this matters:
You can’t verify facts unless the model actually commits to them first.

Agent 2: Verification Planner (fact extraction, not fact checking)

This agent does not verify anything.

Its only job is to look at the draft and ask:

“What specific factual claims does this answer depend on?”

Given:

  • the original question

  • the draft response

Agent 2 extracts factual claims and turns them into short, independent verification questions.

For example, if the draft says:

“Hillary Clinton and Donald Trump were born in NYC”

Agent 2 outputs:

  • “Where was Hillary Clinton born?”

  • “Where was Donald Trump born?”

Important details:

  • This agent does not decide if a claim is true

  • It does not correct mistakes

  • It just identifies what must be checked

This separation is critical because if the model tried to judge correctness here, it would just repeat its own mistakes.

Agent 3: Verification Executor (the most important step)

This is where CoVe actually works.

Each verification question from AGENT 2 is answered:

  • independently

  • in a separate prompt

  • without showing the original draft

If the model sees the draft again, it tends to repeat its own mistakes by doubling down on it’s previous mistake.

In the paper, this is called the Factored variant and it consistently performs best.

Agent 4: Final Response Generator (the editor)

Now we give the model:

  • the original question

  • the draft answer from AGENT 1

  • the verified facts from AGENT 3

And say:

“Rewrite the answer using only verified facts. Fix or remove anything incorrect.”

This agent isn’t allowed to invent.
It just edits.

Wrong facts disappear.
Correct ones stay.

The final output feels noticeably more grounded.

Does this eliminate hallucinations completely?

No, and that’s okay.

CoVe:

  • doesn’t catch reasoning errors

  • doesn’t solve opinion-based hallucinations

  • costs extra tokens

  • is limited by what the model already knows

I know it doesn’t sound like it does much, but it dramatically improves reliability without tools or web search. That’s a big deal.

Final thoughts

LLMs don’t hallucinate because they’re stupid. They hallucinate because we ask them to answer too fast. Chain-of-Verification slows them down, makes them explain themselves, and catches mistakes before users do.