Your RAG system is only as good as what it retrieves
Teams spend weeks tuning the generation prompt while the retrieval step quietly hands the model the wrong three documents. The prompt was never the problem.
Your RAG system is only as good as what it retrieves
A retrieval-augmented model writes exactly as well as the documents you feed it. Feed it the wrong three, and it will write a confident, well-structured answer that happens to be wrong.
Fluency is not accuracy
A growth strategist I talked to had a warning she repeated to every team shipping AI content. Give a model a vague prompt with no context and no guardrails, and it produces text that sounds correct and does not convert. The sentences are clean. The claims are invented. Fluency and accuracy are different properties, and a language model is very good at the first one whether or not it has the second.
That warning is the whole RAG problem in one line. The generation step is fluent by default. What decides whether the output is also true is the context you retrieved and handed it. If retrieval pulled the right passage, the model grounds its answer in it. If retrieval pulled a stale doc, a near-match from the wrong product, or nothing useful at all, the model fills the gap with fluent nonsense and presents it with the same confidence.
The team was tuning the wrong half
Here is the pattern I see. An answer comes back wrong. The team assumes the model misunderstood, so they rewrite the prompt. They add “be accurate.” They add examples. They add a longer system message about citing sources. The answer gets a little better on the examples they tried and stays broken on everything else, because the model never had the right document in front of it to begin with.
A RAG system is two systems bolted together. One finds documents. One writes prose from them. When the output is wrong, the instinct is to blame the writer, because that is the part you can read. The finder runs silently and returns a list nobody looks at. So the debugging effort lands on the half that was probably fine and skips the half that failed.
Print the retrieved chunks next to a wrong answer and the cause is usually obvious in ten seconds. The passage that actually contained the answer is not in the set. Or it is in the set at rank five, below four confident distractors that pulled the model somewhere else. No prompt fixes that. The information the model needed was not on the desk.
Retrieval failures wear a disguise
What makes this expensive is that a retrieval failure looks like a reasoning failure. The output is a grammatical, plausible paragraph, so it reads like the model thought about the question and got it wrong. It did not think about the question. It thought about the wrong documents, correctly. The error moved upstream and put on the costume of the step downstream.
There is a rough threshold worth keeping in mind. AI features generally need something like 85 percent or better on the data they run against before they are dependable, and below that errors start to compound. For RAG, that accuracy bar applies to the retrieved set first. If the correct passage lands in the top results well under that rate, no amount of generation tuning gets you to a reliable feature. You are polishing the answer to a question the system quietly asked of the wrong page.
Fix retrieval first
The order matters. Before touching the prompt, check whether the right document was even retrieved. If it was not, the work is in retrieval: how you chunk, what you embed, how you rank, what filters you apply. If it was retrieved and the model still ignored it, then you have a generation problem, and now prompt work is worth doing. Most teams never run that check, so they spend their time on the second problem while living with the first.
How we approach it at Density Labs
In the AI Opportunity Assessment, our fixed two week, $2,500 engagement, we treat retrieval as its own system and measure it on its own. For a sample of real questions we check whether the passage that holds the answer actually shows up in the retrieved set, before we look at a single word the model wrote. When it does not, we fix retrieval and leave the prompt alone. It is far cheaper to find that the right document never made it to the model in week one than to spend a quarter rewording instructions.
A fluent wrong answer is a retrieval bug wearing a good suit.