[citation invented]

Citations are the industry’s answer to a question nobody asked: whether a claim can be checked by someone willing to put in the effort. Unfortunately, ain’t nobody got no time for that shit.

Citations are a quality lottery, because they make a claim look like it has a source, and the source may not exist, or it may exist and still have nothing to do with the claim itself. Grounding ties the answer to retrieved sources rather than the model’s own training knowledge. Without grounding, anything that happened after the training cut-off is unknown to it, but it will answer hallucinate anyway. Lineage is the provenance from claim to source. A relevant source may still proffer a false claim, which is why verification is essential. Verification checks whether the claim is true, because provenance means little if a claim has since been retracted, refuted, or otherwise rendered irrelevant.

The survey below is based on vendor documentation, because it is a lot less flattering than their marketing copy.

The survey

Copilot Studio with “Allow ungrounded responses” off returns an answer only if it carries an in-text citation to a retrieved source. Instructions that ask for an answer without citations can make it withhold the answer altogether. The documented checks (i.e. citations and grounding) stop short of asking whether the source supports the claim. Its FAQ is honest: the system does not perform an accuracy check. The snippet it provides is a preview, not a pointer within the source.

Agentforce runs a grounding check before the final response and requires that nothing in it be invented by the reasoning engine. Its citations are links to source articles rather than passages.

Amazon Quick combines knowledge of connected resources and the web, where the latter can be disabled. Its research reports carry numbered citations that link to documents, and an “understand the statement” icon that shows how each statement was derived from the evidence. That is lineage without verification: you see the derivation, never the verdict.

Google’s Gemini Enterprise treats grounding as a choice. Its Check grounding API compares a response against sources before it replies.

OpenAI’s ChatGPT shows a sources section in deep research and publishes hallucination rates in its system card, but the sources section is a list for reference checking rather than a claim-by-claim verification.

Perplexity is the one vendor whose product is citations: enable its web search tool and each claim carries an inline marker mapped to a source list.

Cohere and Mistral both offer grounded generation with citations out of the box, drawn from the documents the caller supplies. Anthropic’s Claude also returns cited passages from the documents you provide, but nothing verifies the claim itself. All three bill their Ctrl+F per token.

Claude Code hands verification to the user through hooks, and the public issue tracker shows what that is worth. One model passed CI with seven tests failing, while another fabricated source attributions. Sub-agent findings in one code review were true only 38% of the time, which is pathetic.

The Chinese labs are similar. DeepSeek’s chat app cites numbered pages with citation markers, which its API does not. Qwen and GLM also point at the search results. Kimi’s chat app includes reference links, but its chat API defines no citation at all. All four ground their answers in retrieved sources, yet none traces a claim to a passage or checks whether the claim is true.

The rest of the field is grounded like a dangling wire.

By default, Glean’s All Knowledge mode mixes company knowledge, the web, and the model’s pre-trained knowledge in one response. Fast mode may skip retrieval altogether and answer from pre-trained knowledge. The documented fixes for missing citations are to switch to Thinking mode or to rephrase the question around a team name or internal term, which puts the work of getting a grounded response on the user. Glean’s deep-linked citations have exact snippets from the source, though clicking still opens the document and some citations fall back to document-level.

Atlassian’s Rovo falls back to a general LLM when a query matches nothing in the indexed data, consistent with their own AI transparency page, which says responses are “probabilistic in nature”, the corporate way of saying it makes stuff up. Its own engineering blog claims Smart Answers use “passage-level citations” for individual claims, but the citation resolves to the document URL rather than the passage. A still unresolved feature request proposes an attribution score with a claim-by-claim breakdown: attributed claims in green, unattributed ones in red. The ticket also notes that attribution analysis adds processing costs, so it might have to run on a sample instead. Atlassian’s solution is to go from hallucinated claims to hallucinated sources, but in colour. Rovo has also been susceptible to zero-click exfiltration through indirect prompt injection. It may be your boss’s fault you use Jira, but it’s yours for thinking you can rely on Rovo.

And here is the scoreboard:

Vendor Citations Grounding Lineage Verification
Microsoft Copilot Studio Yes Yes No No
Salesforce Agentforce Yes Yes No No
Amazon Quick Yes Yes Yes No
Google Gemini Yes Yes Yes No
Anthropic Claude Yes Yes Yes No
OpenAI ChatGPT Yes Yes No No
Perplexity Yes Yes No No
Cohere Yes Yes Yes No
Mistral Yes Yes Yes No
DeepSeek Yes Yes No No
Alibaba Qwen Yes Yes No No
Moonshot Kimi Yes Yes No No
Zhipu GLM Yes Yes No No
Glean Yes No Yes No
Atlassian Rovo Yes No No No

Lineage counts only passage-level provenance, because a citation to a document deflects the hard part onto a human.

A citation is an invitation to verify. A system that knows nobody will accept the invitation has little reason to get the truth right. The problem is that we confuse the appearance of accountability with accountability itself.