RAG Agent bauen
Kostenlose Spec, um einen RAG-Agent zu bauen – die agentische Variante von Retrieval-Augmented Generation: Query Rewriting, hybrides Retrieval aus Vektor- und lexikalischer Suche, Reranking per Cross-Encoder, Generierung mit belegten Zitaten und ein Self-Grounding-Check, der ohne Belege keine Antwort gibt. Framework-unabhängig: Vektor-DB, Embedder, Reranker, Modell und Eval-Framework wählst du einmal in STACK.md.
So nutzt du diese Spec
- Klick auf eine Zeile oben, um die ganze Task zu öffnen – Titel, Beschreibung, Subtasks, KI-Anweisungen, alles drin. Dasselbe Layout, das das Produkt intern nutzt.
- Klick auf Copy as Prompt in der rechten Seitenleiste einer Task. Du bekommst den in XML verpackten Prompt, den Tekk intern verwendet – füg ihn in Cursor, Claude Code, Codex, ChatGPT oder sonst wo ein, und der Agent hat den vollen Kontext der Task.
- Open in schickt denselben Prompt mit einem Klick direkt nach v0, Lovable, Bolt, Magic Patterns, Replit oder Cursor.
Was du baust
Goal 1: Einen Agentic-RAG-Agent ausliefern: Der Query Rewriter macht aus einer Frage des Users mehrere Retrieval-Queries, hybrides Retrieval (Vektor + lexikalisch) speist einen Cross-Encoder-Reranker, der Generator antwortet mit Inline-Zitaten auf die abgerufenen Chunks, und ein Self-Grounding-Check verweigert die Antwort, wenn die zitierten Belege die Aussage nicht stützen. Abnahmekriterium: Auf einem Eval-Set mit 8 Fixtures gilt Faithfulness ≥ 0,85, Context Precision ≥ 0,75, Context Recall ≥ 0,85, Answer Relevance ≥ 0,80 und eine Verweigerungsrate bei Fragen außerhalb des Korpus ≥ 0,90.
Das Agentic-RAG-Muster als tool-unabhängiges Starter-Kanban. Du wählst den Stack einmal in STACK.md (Sprache / Vektor-DB / Embedder / Reranker / Modell / Eval-Framework); jede spätere Karte bringt Snippets für jede Variante mit. Die tragenden Entscheidungen: Query Rewriting verbessert den Recall bei Fragen, die lexikalisch nicht zum Korpus passen, Reranking ist ab K~20 Pflicht, und das Trust-Gate „Zitat oder Verweigerung“ macht aus einer Demo ein System für die Produktion.
Architektur
flowchart LR
User[User Question] --> Reformulator[Reformulator<br/>(turn-aware)]
Reformulator --> Rewriter[Query Rewriter<br/>RetrievalQueries]
Rewriter --> Retrieve{Hybrid Retrieve<br/>per rewritten query}
Retrieve -->|Vector top-K| Fuse[RRF Fusion + Dedupe]
Retrieve -->|Lexical top-K| Fuse
Fuse --> Rerank[Cross-Encoder Rerank<br/>top-N=5]
Rerank --> Generate[Grounded Generation<br/>CitedAnswer w/ inline citations]
Generate --> Ground{Self-Grounding Check<br/>per citation}
Ground -->|all supported| Answer[Cited Answer]
Ground -->|any unsupported| Refuse[Refuse w/ reason]
Answer --> Memory[(Turn Buffer<br/>last 5)]
Memory --> Reformulator Die drei tragenden Entscheidungen: Query Rewriting vor dem Retrieval (eine Frage des Users → N Retrieval-Queries per Multi-Query, HyDE oder Teilfragen – verbessert den Recall bei Formulierungen, nach denen der Korpus nicht indexiert ist), Reranking per Cross-Encoder ist Pflicht (Daten aus Anthropics Contextual Retrieval: Hybrid allein senkt die Retrieval-Fehler um 49 %, Hybrid + Reranking um 67 %) und das Trust-Gate „Zitat oder Verweigerung“ (ein Grounding-Check nach der Generierung, der die Antwort verweigert, wenn die zitierten Belege die Aussage nicht stützen – der Unterschied zwischen einer Demo und einem System für die Produktion).
Wann Agentic RAG sinnvoll ist (und wann nicht)
Agentic RAG bringt dir Recall, Precision und Vertrauen und kostet dich dafür Latenz, Komplexität und Tokens. Greif dazu, wenn der Korpus zu groß für den Kontext ist und Zitate wirklich zählen – sonst bau etwas Einfacheres.
✓ Nimm Agentic RAG, wenn
- Dein Korpus zu groß für das Context Window ist. Selbst Fenster mit 200k Tokens fassen keine echte Docs-Seite und keine Wissensdatenbank. Retrieval ist der einzige Weg, den richtigen Ausschnitt nach oben zu holen, ohne bei jedem Aufruf dafür zu bezahlen, den ganzen Korpus zu lesen.
- Zitate Pflicht sind. Recht, Medizin, Support, interne Docs – überall dort, wo der User prüfen muss, woher eine Antwort stammt. Naives RAG paraphrasiert; Agentic RAG zitiert per chunk_id und verweigert ohne Belege.
- Recall genauso wichtig ist wie Precision. Retrieval in einem einzigen Durchgang verfehlt Formulierungen, nach denen der Korpus nicht indexiert ist. Query Rewriting plus hybrides Retrieval plus Reranking schlägt seit 2024 auf jedem Benchmark verlässlich reine Embeddings.
- Du dir 1–3 s zusätzliche Latenz für mehr Vertrauen leisten kannst. Die volle Pipeline kostet zusätzlich Zeit für Rewrite, Reranking und Grounding-Check. Wenn deine User lieber drei Sekunden auf eine überprüfbare Antwort warten als eine Sekunde auf eine, die vielleicht stimmt, hast du Product-Market-Fit für Agentic RAG.
- Du ein Eval-Fixture-Set hast. Ohne Ground-Truth-Fragen und Ground-Truth-Chunks kannst du nicht sagen, ob Prompt-Anpassungen das Retrieval verbessert oder verschlechtert haben. Jenseits des Prototyps ist der Harness mit Ragas / TruLens Pflicht.
⚠ Bau etwas Einfacheres, wenn
- Dein Korpus in den Kontext passt. Wenn du deine ganze Wissensdatenbank in den System-Prompt kopieren kannst (unter ~50k Tokens), mach das.
contextual_corpus_in_systemschlägt RAG bei kleinen Korpora auf jeder Metrik. Greif zu Retrieval, wenn du das Budget überschreitest. - Retrieval in einem Durchgang schon ausgereizt ist. Naives RAG (ein Embedding, ein Retrieval, eine Generierung) reicht für FAQ-Matching, bei dem die Queries die Quelle eng widerspiegeln. Häng keinen Rewrite, kein Reranking und kein Grounding an eine Pipeline, die auf deinem Eval schon 95 % erreicht.
- Du keine Zitate brauchst. Chat über Allgemeinwissen, Brainstorming, kreatives Schreiben – hier sind die Gewichte des Modells der Korpus. Retrieval macht die Dinge an dieser Stelle nur langsamer und lenkt das Modell weg von nützlicher Generierung.
- Du keine Ground-Truth-Daten für Evals hast. Ohne Fixtures für Faithfulness / Precision / Recall bleibt die Komplexität von Agentic RAG unsichtbar – du kannst nicht sagen, ob eine Änderung geholfen oder das System kaputt gemacht hat. Bau zuerst das Eval-Set, dann die Pipeline.
- Bei einer statischen FAQ die Keyword-Suche gewinnt. Wenn der Korpus klein ist und die Queries vorhersehbar sind, ist BM25 allein (oder eine Volltextsuche in Postgres) an einem Nachmittag live und schlägt Embeddings bei den Kosten. Kein Over-Engineering: Die Embedding-Rechnung summiert sich.
Was die Community sagt
Woran du erkennst, dass es funktioniert
Setz die Spec um und miss sie dann an diesen Kriterien (die Task mit dem Eval-Harness bewertet sie):
- Auf dem Seed-Eval-Set mit 8 Fixtures erreicht Ragas-Faithfulness ≥ 0,85, gemittelt über die 6 Fragen aus dem Korpus
- Context Precision ≥ 0,75 auf denselben 6 Fixtures (die abgerufenen Chunks sind für die Ground-Truth-Antwort wirklich relevant)
- Context Recall ≥ 0,85 (jeder Chunk, der für die Antwort nötig ist, steht in den abgerufenen Top N)
- Answer Relevance ≥ 0,80 (die generierte Antwort geht auf die Frage ein, nicht auf ein Nebenthema)
- Verweigerungsrate auf den 2 Fixtures außerhalb des Korpus ≥ 0,90 (das System sagt „I don't have evidence“, statt zu halluzinieren)
- End-to-End-Latenz p50 < 3 s, p95 < 8 s (Rewrite + Retrieval + Reranking + Generierung + Grounding)
- Kostenschwankung pro Query ≤ 2× zwischen Läufen mit und ohne Cache (das Caching funktioniert wie gedacht)
Quellen
Jede Aussage, jedes Pattern und jede Abnahmeschwelle auf dieser Seite geht auf eine dieser Quellen zurück. Lies sie, bevor du von der Spec abweichst.
- ↗ Anthropic – Introducing Contextual Retrieval anthropic.com
- ↗ LangChain – Agentic RAG, kanonische Definition + Hybrid RAG docs.langchain.com
- ↗ LangChain – RAG-Pipeline mit LangGraph bauen (Node-Graph) docs.langchain.com
- ↗ LlamaIndex – OpenAI-Agent mit Query Engine (Retrieval als Tool) docs.llamaindex.ai
- ↗ Pinecone – Rerankers and Two-Stage Retrieval pinecone.io
- ↗ Cohere – Improve Search Performance with a Single Line of Code (Rerank) cohere.com
- ↗ Ragas – Metrics-driven development of LLM applications docs.ragas.io
- ↗ TruLens – RAG-Triade: Context Relevance, Groundedness, Answer Relevance trulens.org
- ↗ Pinecone Canopy – RAG-Referenz-Stack in Produktionsform (GitHub) github.com
- ↗ llmware – Enterprise-RAG mit Parsern, Faktencheck, Prompt-Katalog (GitHub) github.com
- ↗ Anthropic Cookbook – Notebook-Guide zu Contextual Embeddings (GitHub) github.com
- ↗ HN-Diskussion – Anthropic Contextual Retrieval news.ycombinator.com
- ↗ r/LocalLLaMA – The best way to eliminate hallucinations in RAG reddit.com
Bau das noch heute Abend in deine Codebase
Wähl deinen Stack anhand der fünf Entscheidungen in STACK.md und registrier dich: Diese Spec mit 10 Tasks landet auf deinem Board, dein Coding-Agent (Claude Code, Codex, Cursor) baut sie über den Tekk-MCP-Server, und der gemergte PR schließt sie. Nach dem Launch behält Tekks AI-Engineering-Loop den Agent weiter im Blick – Harness, Prompts, Tools, Kontext, Memory, Retrieval, Evals und Kosten – und bringt dir ein Proposal, sobald sich etwas ändern sollte. Lieber selbst machen? Öffne oben eine beliebige Task und klick auf Copy as Prompt – und füg den Prompt in Cursor, Claude Code oder Codex ein.