It was a late evening, and I was having Claude draft the store description for my ukiyo-e wallpaper app. One sentence touched on an artist's background, so I added a line out of habit: "Please cite the source for this."
What came back looked right. A book title, a page number. But when I went looking for that title, I sometimes couldn't find the passage it supposedly contained. I had asked for a source, and the source itself had been made up along with the sentence. I noticed this just before submitting the text.
Since then, I don't ask for sources that way. My working rule is one line: don't make Claude name a source; make it go back to the text in front of us. Here are the three ways I ask now, and what I still check by hand.
Why "cite your sources" falls short
Language models, Claude included, can write statements that are wrong while sounding sure. Anthropic's documentation calls this hallucination and lists techniques to reduce it.
The point I'd underline: if there's no source text in the conversation, asking for a citation doesn't verify anything. A source name is also generated text.
When you do have the text, things change. If you ask Claude to answer from the material you gave it rather than from memory, the basis for each answer sits right there on the page. All three methods below rest on that idea.
Way one: give it permission to say "I don't know"
This is the cheapest one. Add a sentence at the end of your request:
If something isn't in this material, or you're not confident,
don't fill the gap with a guess. Say "I can't tell from this material."The official guidance lists explicit permission to admit uncertainty as a basic technique. What changed for me was the feel of the output: the urge to fill blanks gets a place to go. Without permission, a model trying to be helpful can smoothly write past what the material actually says.
Way two: pull the quotes out first
This one is for long documents. The documentation suggests that, for long inputs (it mentions over roughly 20k tokens), you ask for word-for-word quotes before the actual task.
[paste the material]
Step 1: Extract the passages most relevant to my question,
verbatim, with numbers. If there are none, write "No relevant quotes."
Step 2: Answer using only the quotes from Step 1.
Reference them by number. Don't include anything the quotes don't support.Now every sentence in the answer traces back to a numbered quote. If one line feels off, you compare that quote with the original and you're done.
Way three: after drafting, check each claim against the source
The third is for after the draft exists. Send Claude back to the same material.
Go through the claims in the draft one by one.
For each, find a supporting quote in the material.
If you can't find one, remove the claim and leave only [ ] in its place."Remove it if you can't support it" is the important part. The leftover brackets show you where the draft had no footing.
Which way for which moment
| Situation | Method | What a human checks |
|---|---|---|
| General question, no source material | Way one (room to say "I don't know") | Dates, amounts, proper names against a primary source |
| Summarizing or analyzing a long document | Way two (quotes first) | That each quote really appears in the original |
| Final check before publishing a draft | Way three (per-claim support) | What to do with each [ ] that was removed |
When you can't hand over source material, way one alone is still worth adding. It reduces mistakes; it doesn't prevent them.
What still needs a human
The documentation itself says these techniques reduce hallucinations significantly but don't eliminate them, and that critical information should be validated.
Three things I check by hand:
- Numbers: dates, years, amounts
- Proper names: people, works, book titles
- Whether a quote actually appears, word for word, in the original
For the third, I search my own copy of the text even after using way two. It's tedious, but skipping it turns a useful quote into decoration.
If you're building this into an API workflow, I've written about layered defenses separately: Designing Claude API hallucination defenses in layers.
One thing to try next
The next time you ask Claude for something, add one sentence at the end: "If it isn't in the material, say you can't tell." That alone may change how the answer reads.
I start every description I write for my wallpaper apps with that sentence now.