EXPLAINER

How to Reduce AI Hallucinations

You cannot remove hallucinations completely, but you can lower them by grounding answers in sources, constraining the task, allowing "I don't know", and verifying output.

Short answer: The most effective levers are: give the model the source text, tell it to answer only from that text, allow "not found", ask for quotes or citations, and verify with a second check or a human.

What is it?

This page is a practical checklist for lowering the rate of fabricated or unsupported output. It builds on the explanation in AI Hallucinations: Why Models Make Things Up. The goal is not perfection; it is reducing errors and making the remaining ones easy to catch.

Why does it matter?

Reliability decides whether an AI feature is trusted. A system that is right 90% of the time and never signals the other 10% can be worse than one that is right 80% of the time and flags uncertainty, because users cannot tell which answers to double-check.

How does it work?

Work through these layers, from cheapest to most involved:

  1. Supply the facts. Put the relevant source text in the prompt rather than relying on the model's memory. When the source set is large, retrieve the relevant parts first (What is RAG (Retrieval-Augmented Generation)?).
  2. Constrain the task. "Answer using only the text between the <source> tags." Narrow questions beat open-ended ones.
  3. Allow and define "I don't know". For example: if the answer is not stated in the source, reply exactly "Not found in the provided documents."
  4. Ask for evidence. Require a short quote or section reference for each claim, then check that the quote really appears in the source (a simple string search can automate this).
  5. Decompose. Extract facts first, then write from the extracted facts, instead of one big generation.
  6. Use tools for what models are bad at. Calculations, dates, database lookups and live data should come from code or APIs via Function Calling (Tool Calling) Explained, not from the model's recall.
  7. Reduce randomness where the platform offers it (for example lower temperature) for extraction and factual tasks. This helps consistency but does not guarantee truth.
  8. Verify. Use a second pass, automated checks (schema validation, citation matching), and human review proportional to the risk.
  9. Measure. Keep a test set of questions with known answers and track errors across prompt or model changes (How to Evaluate AI Systems and Outputs).

Example

Policy Q&A bot, before and after:

Before: "What is our refund window?" → model answers from general knowledge: "30 days".

After: retrieve the refund policy section; prompt:

Answer the question using only the policy excerpt below.
Quote the sentence that supports your answer.
If the excerpt does not answer the question, say "Not found in the policy."

<policy>...retrieved text...</policy>
Question: What is our refund window?

Now the answer is traceable. An automated check confirms the quoted sentence exists in the excerpt; if it does not, the answer is rejected.

When should I use it?

Apply the cheap layers (1–3) almost always. Add evidence checks, tools and review as stakes rise. For anything that reaches customers or informs important decisions, combine grounding, verification and a human fallback.

Common mistakes

  • Telling the model "do not hallucinate" and stopping there. It has no switch for that; give it sources and structure instead.
  • Retrieving too much or the wrong text, which gives the model plausible but irrelevant material to build on.
  • Relying on a single verification method.
  • Not testing refusals. Check that it says "not found" when it should, not only that it answers when it can.

Try it with GoVibeTool

As a lightweight verification step, paste the model's answer and the source passage into the Fact Anchor Checker to see which claims are supported by that evidence and which are not found. It only compares against the text you provide, so it is a review aid, not proof of truth.

Open Fact Anchor Checker

Runs in your browser; the text you paste is not sent to a server.