RAG Without the Hype: Make Retrieval Observable, Testable, and Replaceable A developer detailed the design of a retrieval-augmented generation (RAG) pipeline for an LLM-powered support agent, emphasizing a keyword-overlap scorer that is fully assertable and replaceable. The system exposes retrieval as a tool with visible queries and scores, enabling debugging and quality tracking. The developer argues that ranked candidates combined with human or rule-based judgment outperform pure search or generation. How my agent actually finds answers — and what happens when it doesn't Part 5 findings of an experiment: building an LLM-powered support agent with deterministic boundaries. The companion repo contains the full code. "What's your refund policy?" Something has to know the answer. The model doesn't. Not reliably. The answer lives in documents the company wrote. Getting the right one in front of the model at the right moment has an intimidating name: retrieval-augmented generation RAG . And most explanations make it sound like magic. It's a pipeline. Score the documents, rank them, hand back the best few. That's all. The interesting part is what you do with the score. Fuzzy results behind a hard contract — that's the split this system is built on, and here it is made real. The agent doesn't get knowledge silently injected into its prompt. It gets a tool , the same way it gets customer lookup: // dev/tonal/support/knowledge/KnowledgeBase.java public interface KnowledgeBase { / Returns up to query.topK articles, best match first. / List