Skip to content

Agentic RAG: Wie KI-Agenten die Retrieval-Augmented Generation transformieren

Updated on

Standard-RAG (Retrieval-Augmented Generation) hat eine grundlegende Einschränkung: Es ruft einmal ab und generiert einmal. Das System durchsucht eine Vektordatenbank, nimmt die Top-K-Chunks, packt sie in einen Prompt und hofft, dass die Antwort in diesen Chunks enthalten ist. Wenn die relevanten Informationen über mehrere Dokumente verteilt sind, mehrstufiges Reasoning erfordern oder vor dem Abruf eine Klärung benötigen, versagt einfaches RAG stillschweigend -- es liefert überzeugend klingende Antworten auf Basis unvollständigen Kontexts.

Agentic RAG löst dieses Problem, indem es die statische Retrieve-then-Generate-Pipeline durch einen autonomen KI-Agenten ersetzt, der planen, iterativ abrufen, Ergebnisse bewerten und entscheiden kann, wann er genügend Informationen für eine Antwort hat. Der Agent ruft nicht nur Dokumente ab -- er überlegt, wonach gesucht werden soll, beurteilt, ob der abgerufene Inhalt ausreichend ist, und ergreift zusätzliche Maßnahmen, wenn dies nicht der Fall ist.

📚

Einfaches RAG vs Agentic RAG

Einfache RAG-Pipeline

Benutzeranfrage → Anfrage einbetten → Vektorsuche → Top-K-Chunks → LLM → Antwort

Probleme bei diesem Ansatz:

  • Einmaliger Abruf: Wenn die erste Suche relevante Dokumente verfehlt, gibt es keine Korrektur
  • Kein Reasoning über den Abruf: Die Anfrage wird unverändert eingebettet, ohne Zerlegung
  • Keine Bewertung: Das System kann nicht beurteilen, ob die abgerufenen Chunks die Frage tatsächlich beantworten
  • Kein mehrstufiger Abruf: Kann keine Suchen verketten, bei denen das erste Ergebnis die nächste Anfrage bestimmt

Agentic RAG-Pipeline

Benutzeranfrage → Agent plant → Suchwerkzeug → Ergebnisse bewerten →
  → Mehr Infos nötig? → Anfrage verfeinern → Erneut suchen →
  → Genug Kontext? → Synthese → Antwort

Der Agent fungiert als intelligenter Orchestrator, der:

  1. Komplexe Anfragen in Teilfragen zerlegen kann
  2. Werkzeuge wählen kann: Vektorsuche, Websuche, SQL-Abfrage, API-Aufruf
  3. Bewerten kann, ob der abgerufene Kontext ausreichend ist
  4. Mit verfeinerten Anfragen iterieren kann, bis er sicher ist
  5. Informationen aus mehreren Abrufrunden synthetisieren kann

Wie Agentic RAG funktioniert

Kernarchitektur

KomponenteEinfaches RAGAgentic RAG
AnfrageverarbeitungDirektes EinbettenAnfragenzerlegung und Planung
AbrufEinzelne VektorsucheMehrere Werkzeuge, iterativer Abruf
BewertungKeineSelbstbewertung des abgerufenen Kontexts
ReasoningEinzelner LLM-AufrufMehrstufiges Reasoning mit Werkzeugnutzung
FehlerbehebungKeineErneuter Versuch mit verfeinerten Anfragen
DatenquellenMeist eine Vektor-DBMehrere Quellen (DB, Web, APIs)

Entscheidungsfluss des Agenten

Ein Agentic-RAG-System folgt typischerweise diesem Entscheidungsmuster:

  1. Frage analysieren: Ist sie einfach (einzelner Abruf) oder komplex (erfordert Zerlegung)?
  2. Abrufstrategie planen: Welche Quellen abfragen? In welcher Reihenfolge?
  3. Abruf ausführen: Die erste Quelle durchsuchen
  4. Ergebnisse bewerten: Enthalten diese Chunks die Antwort?
  5. Nächste Aktion entscheiden: Antworten, Anfrage verfeinern oder andere Quelle durchsuchen
  6. Synthese: Informationen aus allen Abrufschritten kombinieren
# Konzeptueller Agentic-RAG-Loop (Pseudocode)
def agentic_rag(query, tools, max_iterations=5):
    context = []
    plan = agent.plan(query)  # In Teilfragen zerlegen
 
    for step in plan:
        # Agent entscheidet, welches Werkzeug verwendet wird
        tool = agent.select_tool(step, tools)
        results = tool.execute(step.query)
        context.extend(results)
 
        # Agent bewertet, ob genügend Informationen vorhanden sind
        if agent.has_sufficient_context(query, context):
            break
 
        # Agent verfeinert die Anfrage basierend auf dem Gelernten
        step.query = agent.refine_query(step, results)
 
    return agent.synthesize(query, context)

Schlüsselmuster im Agentic RAG

1. Anfragenzerlegung

Komplexe Fragen in einfachere Teilanfragen aufteilen:

Original: "Vergleichen Sie das Umsatzwachstum von Apple und Microsoft in Q3 2025
           und erklären Sie, welches Unternehmen bessere Betriebsmargen hatte"

Zerlegt:
  1. "Apple Q3 2025 Umsatzwachstum"
  2. "Microsoft Q3 2025 Umsatzwachstum"
  3. "Apple Q3 2025 Betriebsmarge"
  4. "Microsoft Q3 2025 Betriebsmarge"

Jede Teilanfrage ruft fokussierte, relevante Dokumente ab, anstatt zu hoffen, dass eine einzelne breite Suche alle benötigten Informationen liefert.

2. Adaptiver Abruf

Der Agent entscheidet basierend auf dem Anfragetyp, wie abgerufen wird:

AnfragetypAbrufstrategie
FaktenabfrageEinzelne Vektorsuche
VergleichParallele Suchen für jede Entität
Mehrstufiges ReasoningSequenzielle Suchen, jeweils durch vorherige informiert
ZeitbezogenNach Datum filtern, dann semantische Suche
AggregationSQL-Abfrage + Dokumentensuche

3. Selbstbewertung

Nach jedem Abrufschritt bewertet der Agent:

  • Relevanz: Handeln die abgerufenen Chunks vom richtigen Thema?
  • Vollständigkeit: Enthalten sie genügend Informationen für eine Antwort?
  • Konsistenz: Stimmen mehrere Quellen überein?
  • Aktualität: Sind die Informationen aktuell genug?

4. Werkzeugauswahl

Agentic RAG ist nicht auf Vektorsuche beschränkt:

WerkzeugWann verwenden
VektorsucheSemantische Ähnlichkeitsabfragen
Schlüsselwortsuche (BM25)Exakte Begriffsuche, technische Anfragen
WebsucheAktuelle Ereignisse, neueste Informationen
SQL-AbfrageStrukturierte Daten, Aggregationen
API-AufrufEchtzeitdaten (Preise, Wetter)
Code-AusführungBerechnungen, Datentransformationen

Implementierungsansätze

LangChain Agent

from langchain.agents import create_react_agent
from langchain_openai import ChatOpenAI
from langchain.tools import Tool
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
 
# Abrufwerkzeug erstellen
vectorstore = FAISS.from_texts(documents, OpenAIEmbeddings())
retriever = vectorstore.as_retriever(search_kwargs={"k": 5})
 
def search_docs(query: str) -> str:
    results = retriever.invoke(query)
    return "\n".join([doc.page_content for doc in results])
 
tools = [
    Tool(
        name="SearchDocuments",
        func=search_docs,
        description="Search the knowledge base for relevant information"
    ),
]
 
llm = ChatOpenAI(model="gpt-4o", temperature=0)
agent = create_react_agent(llm, tools, prompt_template)

LlamaIndex Agent

from llama_index.core.agent import ReActAgent
from llama_index.core.tools import QueryEngineTool
from llama_index.core import VectorStoreIndex
 
# Abfrage-Engine-Werkzeuge erstellen
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=5)
 
tools = [
    QueryEngineTool.from_defaults(
        query_engine=query_engine,
        name="knowledge_base",
        description="Search the company knowledge base"
    ),
]
 
agent = ReActAgent.from_tools(tools, llm=llm, verbose=True)
response = agent.chat("What were our Q3 results?")

Wann Agentic RAG einsetzen

SzenarioEinfaches RAGAgentic RAG
Einfache Q&A aus einer QuelleBeste WahlÜberdimensioniert
Multi-Dokument-ReasoningHat SchwierigkeitenGlänzt
Fragen mit BerechnungenNicht möglichNutzt Code-Werkzeuge
Dynamische Daten (APIs, Datenbanken)BegrenztNatürliche Passung
Mehrdeutige AnfragenSchlechte ErgebnisseKann klären und iterieren
KostensensitivitätGünstiger (1 LLM-Aufruf)Teurer (mehrere Aufrufe)
LatenzanforderungenSchnellerLangsamer (iterativ)

Kompromisse

VorteilNachteil
Höhere AntwortqualitätHöhere Latenz (mehrere LLM-Aufrufe)
Bewältigt komplexe AnfragenHöhere Kosten pro Anfrage
Selbstkorrigierender AbrufKomplexer zu bauen und debuggen
Multi-Quellen-IntegrationAgent kann in Schleifen steckenbleiben
Besser für mehrdeutige AnfragenSchwerer vorhersagbares Verhalten

Datenpipelines für Agentic RAG aufbauen

Die Datenpipeline für Agentic RAG einzurichten -- Dokumente zu chunken, Embeddings zu erstellen, Vektorindizes aufzubauen -- ist iterative experimentelle Arbeit. RunCell (opens in a new tab) bietet eine KI-gestützte Jupyter-Umgebung, in der Sie RAG-Pipelines mit KI-Unterstützung prototypisieren, die Abrufqualität interaktiv debuggen und Chunking-Strategien iterativ verbessern können.

Zur Visualisierung von Retrieval-Evaluierungsmetriken (Relevanzwerte, Latenzverteilungen, Antwortqualität) ermöglicht PyGWalker (opens in a new tab) die interaktive Exploration Ihrer RAG-Evaluierungsdatensätze in Jupyter.

FAQ

Was ist Agentic RAG?

Agentic RAG kombiniert Retrieval-Augmented Generation mit autonomen KI-Agenten. Anstelle einer statischen Retrieve-then-Generate-Pipeline plant ein KI-Agent Abrufstrategien, führt mehrere Suchen durch, bewertet Ergebnisse und iteriert, bis er genügend Kontext hat, um präzise zu antworten.

Wie unterscheidet sich Agentic RAG von einfachem RAG?

Einfaches RAG führt einen einzelnen Abruf durch und generiert eine Antwort. Agentic RAG verwendet einen KI-Agenten, der Anfragen zerlegen, verschiedene Werkzeuge auswählen (Vektorsuche, Websuche, SQL), bewerten kann, ob der abgerufene Kontext ausreichend ist, und mit verfeinerten Anfragen iterieren kann. Es bewältigt komplexe, mehrstufige Fragen, die einfaches RAG nicht kann.

Ist Agentic RAG teurer als einfaches RAG?

Ja, Agentic RAG kostet typischerweise mehr pro Anfrage, da es mehrere LLM-Aufrufe (Planung, Bewertung, Synthese) und mehrere Abrufoperationen durchführt. Der Kompromiss ist eine deutlich höhere Antwortqualität bei komplexen Anfragen. Für einfache Faktenabfragen ist einfaches RAG kosteneffektiver.

Welche Frameworks unterstützen Agentic RAG?

LangChain, LlamaIndex und Haystack unterstützen alle Agentic-RAG-Muster. LangChain bietet ReAct-Agenten mit Werkzeugnutzung, LlamaIndex bietet Query-Planning-Agenten, und Haystack hat Pipeline-basierte Agentenarchitekturen. Sie können auch benutzerdefinierte Agenten direkt mit den OpenAI- oder Anthropic-Function-Calling-APIs erstellen.

Wann sollte ich Agentic RAG vs einfaches RAG verwenden?

Verwenden Sie einfaches RAG für einfache Fakten-Q&A aus einer einzelnen Wissensbasis. Verwenden Sie Agentic RAG, wenn Anfragen Reasoning über mehrere Dokumente erfordern, Vergleiche beinhalten, Echtzeitdaten benötigen oder wenn einfaches RAG konsistent unvollständige Antworten liefert.

Fazit

Agentic RAG adressiert die Kernlimitierungen von einfachem RAG, indem es statische Pipelines durch intelligente Agenten ersetzt, die planen, iterativ abrufen und ihre eigenen Ergebnisse bewerten. Es bewältigt komplexe Anfragen, die mehrere Dokumente umfassen, Reasoning erfordern oder Daten aus mehreren Quellen benötigen. Der Kompromiss sind höhere Kosten und Latenz pro Anfrage. Für die meisten Anwendungen ist der beste Ansatz, mit einfachem RAG für einfache Anfragen zu beginnen und komplexe Fragen an Agentic RAG weiterzuleiten -- den Agenten nur dann einzusetzen, wenn das einfachere System an seine Grenzen stößt.

📚