Keep a Research Agent From Citing Sources That Don't Exist
A research agent that invents citations is worse than no agent. Here is how to force source-grounding so every claim traces to a real, checkable passage.
A research agent that fabricates citations is not a smaller version of a good research agent. It is a liability, because it makes wrong answers look sourced. The fix is not a cleverer prompt telling it to "be accurate." It is a structure that forbids the agent from stating any claim it cannot back with a real, quoted passage from a real document. Ground first, generate second. If the passage is not there, the claim does not ship.
Why research agents invent sources in the first place
The model is trained to produce plausible text, and a citation is just more plausible text. When you ask for a claim plus a source, the model generates both in one breath. If it does not have a real source in front of it, it writes one that looks right: a believable author, a believable year, a believable journal. It is not lying on purpose. It has no concept of "this document exists" versus "this document would fit here."
That means the problem is not honesty, it is architecture. If the source material is not physically in the agent's context when it writes, you are asking it to remember and it will confabulate. Retrieval, not instruction, is the lever.
Ground the agent in retrieved passages, not memory
The reliable pattern is retrieval first. The agent searches or fetches actual documents, pulls the relevant passages into its context, and only then writes. It is now summarizing text it can see rather than recalling text it half-remembers. This is the same idea behind connecting AI agents to your tools: the agent should act on live data it fetched, not on a stale internal snapshot.
The rule to enforce: every factual claim must map to a specific retrieved passage. Not "a source," a passage. The agent should carry the quote and the location through to the output so a human can click and confirm in seconds. If a claim has no passage attached, treat it as unsupported and cut it.
Make the citation checkable, not decorative
A citation that reads "(McKinsey, 2024)" is decoration. A citation you can verify is a link plus the exact sentence the claim rests on. Force the second form. When the agent writes "the market grew 30 percent," it must also surface the sentence in the source that says so.
This does two things. It lets a reviewer spot-check fast, and it exposes the sloppy inferences where the agent stretched a source to say more than it did. Half of "hallucinated" citations are real documents that simply do not say what the agent claimed. Quoting the passage catches both the invented source and the overreach.
Keep the trail. Log which document and which passage backed each claim, the way you would keep immutable logs for AI agents. When someone questions a finding three weeks later, you can show exactly what the agent read.
Verify the agent before you rely on it
Do not assume grounding works because you built it. Test it. Feed the agent questions whose answers you know, and questions where the honest answer is "the sources don't say." A grounded agent should refuse the second kind, not fill the gap with a confident guess. This is why evaluating an agent before you deploy it is not optional: you measure fabrication rate on your real material.
Watch specifically for the case where the agent cannot find a source and answers anyway. That is the exact failure you are trying to kill. A good research agent says "I could not find support for this" and stops. Design that refusal in on purpose.
What this costs and why it is worth it
Grounding makes the agent slower and sometimes less complete, because it will not paper over gaps with invention. That is the trade you want. A research agent whose every line traces to a real passage is something you can put in front of a client or a board. One that sounds authoritative and cites ghosts will eventually burn you in public, and once that happens no one trusts its output again.
The prebuilt research agents at ServoAgent are built to carry sources through to the output for exactly this reason. Fabricated confidence is the one failure a research tool cannot survive. Make the agent show its work, or do not let it near a decision that matters.