<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Beyond Traditional RAG]]></title><description><![CDATA[What happens when your RAG system gets the wrong answer because it retrieved the wrong information? Most RAG tutorials stop at retrieve and generate. This hands]]></description><link>https://agenticragpatterns.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6aa12d0ba4159b0b174617d1/fdf5da0f-c695-4c40-8662-c94b16142790.png</url><title>Beyond Traditional RAG</title><link>https://agenticragpatterns.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 19:47:48 GMT</lastBuildDate><atom:link href="https://agenticragpatterns.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Your RAG Pipeline Doesn't Need More Retrieval, It Needs Better Decisions]]></title><description><![CDATA[Full Agentic RAG Collection 10 practical LangGraph architectures
Get the Full Agentic RAG Collection
Free Agentic RAG Fundamentals 4 practical notebooks
Get the Free Notebooks
Most RAG tutorials follo]]></description><link>https://agenticragpatterns.hashnode.dev/your-rag-pipeline-doesn-t-need-more-retrieval-it-needs-better-decisions</link><guid isPermaLink="true">https://agenticragpatterns.hashnode.dev/your-rag-pipeline-doesn-t-need-more-retrieval-it-needs-better-decisions</guid><category><![CDATA[RAG ]]></category><category><![CDATA[agents]]></category><category><![CDATA[agentic ai development]]></category><category><![CDATA[Python 3]]></category><category><![CDATA[development]]></category><category><![CDATA[claude]]></category><category><![CDATA[openai]]></category><category><![CDATA[groq]]></category><dc:creator><![CDATA[101_Theory]]></dc:creator><pubDate>Sun, 13 Sep 2026 13:25:39 GMT</pubDate><content:encoded><![CDATA[<p>Full Agentic RAG Collection 10 practical LangGraph architectures</p>
<p><a href="https://chandula7.gumroad.com/l/Advanced_RAG_LangGraph_Patterns">Get the Full Agentic RAG Collection</a></p>
<p>Free Agentic RAG Fundamentals 4 practical notebooks</p>
<p><a href="https://github.com/ChandulaSenevirathna/Agentic_RAG">Get the Free Notebooks</a></p>
<p>Most RAG tutorials follow a simple pattern:</p>
<p>Retrieve → Generate → Answer</p>
<p>It works pretty well for a basic demo.</p>
<p>But real applications are usually not that simple.</p>
<p>What happens when the retriever returns irrelevant documents?</p>
<p>What if the query is poorly written?</p>
<p>What if the information is not in your vector database at all?</p>
<p>What if the generated answer is not actually supported by the retrieved context?</p>
<p>At that point adding more documents to the prompt is not necessarily going to help.</p>
<p>The system needs to make decisions about what to do next.</p>
<p>That is where Agentic RAG becomes useful.</p>
<h2>Traditional RAG is mostly a one-shot process</h2>
<p>A typical RAG application does something like this:</p>
<p>Take the user's question. Search a vector database. Retrieve the top documents. Give them to an LLM. Generate an answer.</p>
<p>The problem is that the pipeline usually assumes retrieval worked.</p>
<p>If the retrieved documents are bad the LLM still gets them.</p>
<p>If the query does not match the terminology in your documents retrieval may fail.</p>
<p>And if the answer is not in your knowledge base the system does not really have a next step.</p>
<p>This is where Agentic RAG gets interesting.</p>
<p>Instead of asking:</p>
<p>How do I retrieve better?</p>
<p>we can ask:</p>
<p>What should the system do when retrieval is not good enough?</p>
<h2>Let the system evaluate its retrieval</h2>
<p>Imagine asking:</p>
<p>How does LangGraph handle persistence?</p>
<p>The retriever returns five documents but only one is actually relevant.</p>
<p>A traditional pipeline might pass all five to the LLM.</p>
<p>An agentic workflow can evaluate the retrieved documents first.</p>
<p>If the documents are not useful enough the system can decide to try again.</p>
<p>One simple approach is query rewriting.</p>
<p>Instead of searching with the same query again the system generates a better search query based on what it found and retrieves again.</p>
<p>This creates a simple feedback loop:</p>
<p>Retrieve → Evaluate → Rewrite → Retrieve again</p>
<p>The important part is not the loop itself.</p>
<p>It is that the system can recognize that its first attempt was not good enough.</p>
<h2>What if the information is not in your knowledge base?</h2>
<p>Query rewriting will not solve every problem.</p>
<p>Sometimes your vector database simply does not contain the information.</p>
<p>For example imagine your RAG application is built around documentation collected last month.</p>
<p>A user asks about something released yesterday.</p>
<p>Searching the same documents again will not help.</p>
<p>This is where Corrective RAG becomes useful.</p>
<p>The system can evaluate the retrieved documents and when they are not sufficient it can use another source such as web search.</p>
<p>Instead of:</p>
<p>Retrieve → Generate</p>
<p>the workflow can become:</p>
<p>Retrieve → Grade → Correct → Generate</p>
<p>The correction could mean rewriting the query, searching another source, or taking another action depending on the application.</p>
<h2>Different questions may need different retrieval strategies</h2>
<p>Another common assumption is that every question should go through the same retriever.</p>
<p>But imagine an application with internal company documentation, product documentation, a vector database, and live web search.</p>
<p>A question about an internal policy probably should not be answered using a web search.</p>
<p>A question about a recently released library version probably should not rely entirely on an old vector database.</p>
<p>This is where Adaptive RAG comes in.</p>
<p>Instead of always retrieving from the same place the system can first decide where the question should be answered from.</p>
<p>It can route the query to the right knowledge source and then evaluate the resulting context.</p>
<p>This makes the retrieval process more flexible instead of following the same path every time.</p>
<h2>Retrieved documents can be good while the answer is still bad</h2>
<p>There is another problem that is easy to overlook.</p>
<p>Good retrieval does not automatically mean a good answer.</p>
<p>The model can receive highly relevant documents and still generate an answer that is not properly supported by them.</p>
<p>So why not evaluate the answer too?</p>
<p>An agentic workflow can check things like:</p>
<p>Is the answer supported by the retrieved context? Does it actually answer the question? Did the model introduce unsupported information?</p>
<p>If the answer fails those checks the workflow can revise or regenerate it.</p>
<p>Now we are evaluating both sides:</p>
<p>Did we retrieve the right information?</p>
<p>and</p>
<p>Did we use that information correctly?</p>
<p>That distinction becomes more important as RAG systems move beyond simple demos.</p>
<h2>Sometimes the best decision is asking a human</h2>
<p>Not every problem should be solved automatically.</p>
<p>There are situations where you may want a human to review the result before the system continues.</p>
<p>For example:</p>
<p>The evidence is ambiguous. The answer requires approval. The system is not confident enough. The generated response needs revision.</p>
<p>This is where Human-in-the-Loop RAG fits.</p>
<p>Instead of forcing the agent to make the final decision you can introduce a checkpoint where a person can approve, reject, or modify the result.</p>
<p>The interesting part is that this does not mean abandoning automation.</p>
<p>The system can handle the routine work and involve a human only when necessary.</p>
<h2>What happens when one agent isn't enough?</h2>
<p>As workflows become more complex a single agent may not be the best architecture.</p>
<p>Some tasks naturally break into specialized responsibilities.</p>
<p>One agent can coordinate the workflow while other agents handle retrieval, research, evaluation, or other specialized tasks.</p>
<p>This is where Multi-Agent Supervisor RAG becomes useful.</p>
<p>A supervisor can decide which specialized agent should handle the next step instead of putting every responsibility into one large agent.</p>
<p>The goal is not to add agents just for the sake of adding agents.</p>
<p>It is to make the workflow easier to reason about when the problem itself is naturally multi-step or specialized.</p>
<h2>Some work can happen in parallel</h2>
<p>Not every retrieval or research step needs to happen sequentially.</p>
<p>Suppose you need information from several independent sources.</p>
<p>Instead of:</p>
<p>Source A → Source B → Source C → Answer</p>
<p>you can fan out the work:</p>
<p>Question → A + B + C → Combine → Answer</p>
<p>This is the idea behind Parallel Fan-Out RAG.</p>
<p>Independent retrieval or processing tasks can run in parallel and their results can then be combined.</p>
<p>This can make more complex RAG workflows both faster and easier to structure.</p>
<h2>Sometimes the system should plan before it executes</h2>
<p>Another useful pattern appears when the question itself requires multiple steps.</p>
<p>Instead of immediately calling tools and retrieving documents the system can first create a plan.</p>
<p>For example:</p>
<p>Question → Plan → Execute steps → Evaluate → Answer</p>
<p>This is the idea behind Plan-and-Execute RAG.</p>
<p>The planner determines what needs to be done while execution handles the individual steps.</p>
<p>This can be useful when answering a question requires multiple searches, transformations, or reasoning stages rather than a single retrieval operation.</p>
<h2>So what makes RAG agentic?</h2>
<p>For me the key difference is not simply adding an LLM or calling something an agent.</p>
<p>It is giving the system the ability to evaluate its situation and choose what happens next.</p>
<p>A traditional pipeline might assume:</p>
<p>Retrieve once then answer.</p>
<p>An agentic pipeline can reason:</p>
<p>Do I need retrieval?</p>
<p>Did I retrieve useful information?</p>
<p>Should I search again?</p>
<p>Should I use another source?</p>
<p>Is my answer supported?</p>
<p>Should I ask a human?</p>
<p>Should another agent handle this?</p>
<p>Should I plan the work before executing it?</p>
<p>That is a much more useful way to think about Agentic RAG.</p>
<h2>10 practical LangGraph architectures I recently built</h2>
<p>I recently expanded this work into a collection of 10 practical LangGraph notebooks covering both the fundamentals and more advanced Agentic RAG architectures.</p>
<p><em><strong>Fundamentals</strong></em></p>
<p><strong>LangGraph Starter</strong> — core state and reducer patterns for building a LangGraph workflow</p>
<p><strong>LangGraph Conditional Routing</strong> — branching a workflow with conditional edges</p>
<p><strong>Agentic RAG</strong> — tool selection and query rewriting</p>
<p><strong>ReAct Multi-Hop Agentic RAG</strong> — multi-step tool-calling with a prebuilt agent loop</p>
<p><em><strong>Advanced Architectures</strong></em></p>
<p><strong>Corrective RAG</strong> — retrieval grading and web fallback</p>
<p><strong>Adaptive RAG</strong> — routing between knowledge sources plus retrieval and answer evaluation</p>
<p><strong>Human-in-the-Loop RAG</strong> — approval and revision checkpoints</p>
<p><strong>Multi-Agent Supervisor RAG</strong> — a supervisor delegates retrieval, research, and evaluation to specialized agents</p>
<p><strong>Parallel Fan-Out RAG</strong> — independent retrieval tasks run in parallel and their results are combined</p>
<p><strong>Plan-and-Execute RAG</strong> — a planner breaks the question into steps before execution begins</p>
<p>The goal is not to say that every RAG application needs all ten architectures.</p>
<p>Each pattern addresses a different problem.</p>
<h2>Start with the problem not the pattern</h2>
<p>If your application struggles with poor retrieval, query rewriting might be enough.</p>
<p>If your knowledge base is incomplete, a fallback source could be more useful.</p>
<p>If you have multiple knowledge sources, routing may make more sense.</p>
<p>If certain decisions require oversight, you can add a human checkpoint.</p>
<p>If the workflow has specialized tasks, a supervisor or parallel architecture may be a better fit.</p>
<p>And if the problem requires multiple dependent steps, planning can help.</p>
<p>The important question is not:</p>
<p>How can I make my RAG system more agentic?</p>
<p>It is:</p>
<p>What is my RAG system currently doing blindly?</p>
<p>That is usually where the most useful improvement starts.</p>
<p>Try the implementations</p>
<p>Full collection — Advanced LangGraph Patterns</p>
<p>10 practical Agentic RAG architectures: 4 fundamentals + 6 advanced patterns.</p>
<p><a href="https://chandula7.gumroad.com/l/Advanced_RAG_LangGraph_Patterns">Get the Full Agentic RAG Collection</a></p>
<p>Four Agentic RAG patterns plus six advanced architectures implemented as self-contained Jupyter notebooks you can run, study, and adapt.</p>
<p><a href="https://github.com/ChandulaSenevirathna/Agentic_RAG">Free Agentic RAG Fundamentals</a></p>
<p>4 free notebooks to get started with Agentic RAG.</p>
<p>Get the Free Agentic RAG Notebooks</p>
<p>The free pack is designed as the starting point with basic Python as the only prerequisite.</p>
<p>The full collection goes further into practical LangGraph architectures that you can build on top of those fundamentals.</p>
<p>If you are working on RAG applications I would be interested to hear</p>
]]></content:encoded></item><item><title><![CDATA[What Happens When Your RAG System Retrieves the Wrong Documents?]]></title><description><![CDATA[What happens when your RAG system retrieves the wrong documents? Or when the retrieved context isn't enough to answer the question?
A traditional RAG pipeline usually doesn't think twice. It follows a]]></description><link>https://agenticragpatterns.hashnode.dev/what-happens-when-your-rag-system-retrieves-the-wrong-documents</link><guid isPermaLink="true">https://agenticragpatterns.hashnode.dev/what-happens-when-your-rag-system-retrieves-the-wrong-documents</guid><category><![CDATA[ai agents]]></category><category><![CDATA[AI]]></category><category><![CDATA[RAG ]]></category><category><![CDATA[agentic AI]]></category><category><![CDATA[Developer]]></category><dc:creator><![CDATA[101_Theory]]></dc:creator><pubDate>Wed, 09 Sep 2026 10:18:36 GMT</pubDate><content:encoded><![CDATA[<p>What happens when your RAG system retrieves the wrong documents? Or when the retrieved context isn't enough to answer the question?</p>
<p>A traditional RAG pipeline usually doesn't think twice. It follows a fixed path: Retrieve → Generate → Answer</p>
<p>But real world AI applications aren't that simple. Sometimes the system needs to search again with a different approach. Sometimes it needs to evaluate what it retrieved, verify whether an answer is actually supported, correct its own mistakes or ask a human for help before proceeding.</p>
<p>That's where Agentic RAG comes in. Instead of treating retrieval as a fixed step, Agentic RAG gives the system the ability to reason about the retrieval process and decide what to do next.</p>
<p><strong>Why Does Agentic RAG Matter?</strong></p>
<p>As RAG applications grow more complex and work with larger document collections, simply retrieving the top-k documents isn't enough to produce accurate answers. An agentic approach lets a RAG system:</p>
<ol>
<li><p>Decide what information to retrieve</p>
</li>
<li><p>Reason over the retrieved context</p>
</li>
<li><p>Evaluate whether the context is relevant</p>
</li>
<li><p>Verify whether an answer is supported</p>
</li>
<li><p>Retry or refine retrieval when necessary</p>
</li>
<li><p>Escalate to a human when confidence is low</p>
</li>
</ol>
<p>The goal isn't complexity for its own sake it's building RAG systems that are adaptive, robust and reliable instead of blindly following a fixed pipeline.</p>
<p><strong>What I Built</strong></p>
<p>This has grown into a 10-notebook series on LangGraph from the two core ideas every agent depends on up to a full set of production style RAG architectures.</p>
<p>Free (4 notebooks) the fundamentals:</p>
<ul>
<li><p><strong>LangGraph Starter</strong> — state, reducers and an LLM node</p>
</li>
<li><p><strong>Conditional Routing</strong> — the router mechanic every agent decision is built on</p>
</li>
<li><p><strong>Agentic RAG</strong> — a hand built tool calling agent that decides per question whether to retrieve, which knowledge base to search and whether it needs a second lookup (multi-hop)</p>
</li>
<li><p><strong>ReAct Multi-Hop Agentic RAG</strong> — the same problem solved a second way, rebuilt on LangChain's prebuilt <code>create_agent</code> loop instead of a hand wired graph</p>
</li>
</ul>
<p>Advanced (6 notebooks) — one architecture per failure mode:</p>
<ul>
<li><p><strong>Corrective RAG</strong> — grades every retrieved chunk and falls back to a live web search to patch gaps before answering</p>
</li>
<li><p><strong>Adaptive RAG</strong> — routes each question to a vectorstore or the web up front, then self-checks the final answer for hallucination and relevance, looping back if it fails</p>
</li>
<li><p><strong>Human-in-the-Loop RAG</strong> — same retrieve/grade/generate machinery, but a real person approves, revises or rejects at two checkpoints instead of an LLM deciding alone</p>
</li>
<li><p><strong>Multi-Agent Supervisor RAG</strong> — a supervisor routes each question to one of three specialist subgraphs then critiques the answer and can escalate to a web specialist</p>
</li>
<li><p><strong>Parallel Fan-Out RAG</strong> — decomposes a multi-part question into sub-questions, answers them concurrently via LangGraph's Send API then aggregates the results</p>
</li>
<li><p><strong>Plan-and-Execute RAG</strong> — plans every step up front, executes them one at a time, and a replanner decides whether more work is needed before synthesizing the final answer</p>
</li>
</ul>
<p>Every notebook is fully commented and markdown-explained top to bottom, runs on Groq's free tier API for the LLM and uses local BAAI/bge-m3 embeddings (sentence transformers) no embedding API key needed.</p>
<p>Free Version (4 notebooks): <a href="https://chandula7.gumroad.com/l/AgenticRAGFundamentals">https://chandula7.gumroad.com/l/AgenticRAGFundamentals</a> Advanced Version (6 notebooks): <a href="https://chandula7.gumroad.com/l/Advanced_RAG_LangGraph_Patterns">https://chandula7.gumroad.com/l/Advanced_RAG_LangGraph_Patterns</a></p>
<p>If you're building RAG applications this is a step toward moving beyond Retrieve → Generate and toward systems that can Retrieve → Reason → Verify → Correct → Answer</p>
]]></content:encoded></item></channel></rss>