Pattern-Kern
Research Agent ist ein Pattern, bei dem der Agent gesteuerte Recherche uber eine begrenzte Pipeline ausfuhrt: search, dedupe, policy-check, read, extract notes mit provenance, und synthesize einer Antwort nur aus verifizierten Materialien.
Wann einsetzen: wenn Fakten aus mehreren Quellen gesammelt und verifiziert werden mussen, statt ohne Evidenz zu antworten.
Das ist nicht "einfach browse".
Eine Research-Pipeline enthalt typischerweise:
Search + dedupe URL: Duplikate schon vor dem Lesen entfernenRead im Budget: Seiten innerhalb von Zeit- und Quellenlimits lesenExtract facts: strukturierte Notizen erfassenVerify claim/citation: zentrale Aussagen grundlegend prufenSynthesize mit Quellen: finale Antwort mit Zitaten schreiben
Problem
Stell dir vor, du fragst:
"Finde die Regeln im neuen Gesetz und erklare sie kurz."
Der Agent hat "gegoogelt" und ein Fazit geliefert, aber ohne klaren Quellenpfad.
Dann entstehen typische Risiken:
- oberflachliches Lesen (viel geoffnet, wenig wirklich gelesen)
- Duplikate derselben Materialien
- Vermischung von Fakten und Autoren-Interpretation
- schwache oder falsche Zitate
- keine Reproduzierbarkeit des Ergebnisses
Open-Web-Recherche ohne Prozess wird schnell chaotisch: viele Schritte, wenig Belegbarkeit.
Das ist das Kernproblem: ohne gesteuerte Pipeline ist schwer nachweisbar, dass ein Fazit auf realen und verifizierten Quellen basiert.
Losung
Research Agent arbeitet uber eine begrenzte Pipeline, nicht uber "such noch ein bisschen".
Analogie: wie journalistische Recherche mit Checkliste. Zuerst sammelst du Quellen und Notizen mit Links, dann schreibst du Schlussfolgerungen. Ohne das vermischt man leicht Fakten mit Annahmen.
Kernprinzip: writer bekommt Recht auf Synthesis erst nach extrahierten Notizen mit Herkunft.
Gesteuerter Prozess:
- Suche (
Search): begrenzte Anzahl von Quellen finden - Deduplizierung (
Dedupe): URLs normalisieren und Duplikate entfernen - Policy-Prufung (
Policy Check): Quellen durch policy-gate lassen - Lesen (
Read): nur erlaubte Seiten lesen - Extraktion (
Extract): Notizen mit Herkunft bilden (url+quote) - Verifikation (
Verify): zentrale Aussagen prufen - Synthese (
Synthesize): Antwort nur aus Notizen schreiben
So kannst du an die Antwort anhangen:
- welche Seiten gelesen wurden
- welche Zitate extrahiert wurden
- welche Aussagen gepruft wurden
- warum die Pipeline beendet wurde (
stop reason)
Funktioniert gut, wenn:
- Suchschritt (
Search) klare Grenzen hat (max_urls,max_seconds) - Leseschritt (
Read) durch policy-check geht - Extraktionsschritt (
Extract) volle Herkunft enthalt - Ausfuhrung Synthesis ohne notes verbietet
Sonst kann der Agent:
- Quellen zitieren, die er nie gelesen hat
- ungeprufte Fakten vermischen
- Zitate fur Plausibilitat erfinden
Darum brauchst du budget caps, dedupe + cache, abgesicherte Ausfuhrung und Stop-Rules gegen endlose search-loop.
Wie Es Funktioniert
Kritisches Prinzip: writer darf keine Quellen erfinden. Er arbeitet nur mit extracted notes.
Voller Ablauf: Search â Dedupe â Policy Check â Read â Extract â Verify â Synthesize
Suche (Search)
Ein oder zwei kontrollierte Search-Schritte mit Zeit- und URL-Limits.
Dedupe (Dedupe)
URLs werden normalisiert und Duplikate vor dem Lesen entfernt.
Policy-Prufung (Policy Check)
Nur erlaubte Domains, Content-Typen und sichere Risiko-Level werden verarbeitet.
Lesen (Read)
Seiten werden uber Cache geladen, damit derselbe Content nicht mehrfach gelesen wird.
Extraktion (Extract)
Fakten werden strukturiert gespeichert: url, quote, claims, timestamp.
Verifikation (Verify)
Basis-Spot-check: ob zentrale Aussagen durch Seitenzitate gestutzt sind.
Synthese (Synthesize)
Finale Antwort wird nur aus Notizen geschrieben und enthalt explizite Quellenzitate.
Im Code Sieht Das So Aus
budget = {"max_urls": 10, "max_seconds": 90}
urls = search_once(goal, k=8)
urls = dedupe_and_normalize(urls)[: budget["max_urls"]]
notes = []
for url in urls:
if budget_exceeded(budget):
break
if not policy_allow(url):
continue # stop/skip reason kann geloggt werden
page = fetch_with_cache(url)
note = extract_structured_note(goal, page, url=url)
notes.append(note)
if not notes:
return partial_or_escalate("no_reliable_sources")
verified = spot_check_claims(notes, sample_size=2)
answer = synthesize_from_notes(goal, notes, verified=verified)
return answer
Wichtig sind hier nicht "schone Prompts", sondern gesteuerte Ausfuhrung: budget, dedupe, cache, stop reasons.
So Sieht Es Zur Laufzeit Aus
Goal: Welche Einschrankungen hat der EU AI Act fur High-Risk-Systeme?
Search:
- 12 URLs gefunden
- nach Dedupe: 7 eindeutig
Read/Extract:
- 5 Seiten erfolgreich gelesen
- 2 wegen niedriger Relevanz abgelehnt
Verify:
- 2 zentrale Claims im Spot-check bestanden
Synthesize:
- kurze Zusammenfassung erstellt
- Zitate aus 3 Quellen hinzugefugt
Vollstandiges Research-Agent-Beispiel
Wann Es Passt - Und Wann Nicht
Passt
| Situation | Warum Research Passt | |
|---|---|---|
| â | Externe Quellen sind Pflicht und Zitate werden benotigt | Research-Agent kann Quellen suchen, lesen und zitieren. |
| â | Thema ist dynamisch und interne Wissensbasis reicht nicht | Suche im Runtime holt aktuelle Daten aus Open-Web oder externen Quellen. |
| â | Herkunft der Schlussfolgerungen ist erforderlich | Es ist klar nachvollziehbar, woher zentrale Fakten und Claims stammen. |
| â | Ausfuhrungskontrolle vorhanden: Budgets und Tool-Regeln | Begrenzte Recherche steuert Kosten und reduziert Tool-Loop-Risiko. |
Passt Nicht
| Situation | Warum Research Nicht Passt | |
|---|---|---|
| â | Daten liegen bereits in RAG | Externe Suche ist unnötig, interne Suche reicht aus. |
| â | Kritische Latenz | Suche und Lesen von Seiten sind meist teurer als lokale Generierung. |
| â | Kein policy-sicherer Browse-Pipeline vorhanden | Sicherer Kontrollrahmen fur Tools und Domains ist nicht gegeben. |
Weil Research-Modus fast immer teurer ist als lokale Generierung oder RAG.
Unterschied Zu RAG
| RAG | Research Agent | |
|---|---|---|
| Quellen | Interner Index/Wissensbasis | Open-Web oder externe Quellen |
| Fokus | Schnelle geerdete Antwort | Suche, Lesen und Verifikation von Fakten |
| Kostenkontrolle | Relativ stabil | Braucht harte budget caps |
| Hauptrisiko | Schwache Suche | Tool-Zyklen und falsche Zitate |
RAG arbeitet auf vorbereiteter knowledge layer. Research Agent beschafft Wissen extern im runtime.
Wann Research Nutzen (vs Andere Patterns)
Verwende Research Agent, wenn Fakten aus mehreren Quellen gesammelt und als strukturierte Evidenz zusammengefuhrt werden mussen.
Kurzer Test:
- wenn du "Thema aus mehreren Quellen recherchieren und begrundetes Fazit geben" musst -> Research
- wenn du "bereits gelieferten Datensatz analysieren" musst -> Data Analysis Agent
Vergleich mit anderen Patterns und Beispiele
Schneller Spickzettel:
| Wenn die Aufgabe so aussieht... | Nutze |
|---|---|
| Nach jedem Schritt muss entschieden werden, was als nachstes folgt | ReAct Agent |
| Gro?es Ziel muss zuerst in kleinere ausfuhrbare Aufgaben zerlegt werden | Task Decomposition Agent |
| Code muss ausgefuhrt, Ergebnisse gepruft und sicher iteriert werden | Code Execution Agent |
| Daten mussen analysiert und Schlussfolgerungen auf Analysebasis geliefert werden | Data Analysis Agent |
| Recherche aus mehreren Quellen mit strukturierter Evidenz ist notig | Research Agent |
Beispiele:
ReAct: "Finde Ursache fur API-Ausfall: Logs prufen -> Fehler ansehen -> nachstes Check anhand Ergebnis starten".
Task Decomposition: "Launch eines neuen Tarifs vorbereiten: Aufgabe in Subtasks fur Content, Technik, QA und Support zerlegen".
Code Execution: "Retention uber 12 Monate in Python berechnen und Formeln auf realen Daten validieren".
Data Analysis: "Sales-CSV analysieren: Trends, Ausreisser finden und kurze Schlussfolgerungen liefern".
Research: "Daten zu 5 Wettbewerbern aus mehreren Quellen sammeln und vergleichende Zusammenfassung erstellen".
Wie Mit Anderen Patterns Kombinieren
- Research + RAG: verifizierte externe Erkenntnisse werden fur nachfolgende Antworten in interne knowledge base gespeichert.
- Research + Guarded-Policy: Policies begrenzen erlaubte Tools, Domains und Datentypen.
- Research + Fallback-Recovery: bei instabiler Search/Fetch fuhrt Agent Retry aus oder wechselt auf Fallback-Quellen.
Kurz
Research Agent:
- fuhrt begrenzte Suche und Quellenlesen aus
- extrahiert strukturierte Notizen mit Herkunft
- verifiziert zentrale Claims vor der Antwort
- liefert zitierbare Antwort ohne endlose Review-Loops
Vorteile Und Nachteile
Vorteile
sammelt Daten aus mehreren Quellen in einem Flow
fuhrt Links hinzu, dadurch ist Antwort leichter prufbar
deckt Themen besser ab als nur eine Quelle
praktisch fur Vergleich von Fakten und Versionen
Nachteile
arbeitet langsamer wegen Suche und Quellenlesen
kann ohne Limits zu viele Ressourcen verbrauchen
Antwortqualitat hangt von Quellqualitat ab
FAQ
Q: Kann man "bis zur Sicherheit" suchen?
A: Nein. Sicherheitsgefuhl ist keine Stop-Bedingung. Du brauchst klare Grenzen: max_urls, max_seconds und stagnation/convergence-Regeln.
Q: Warum ist URL-Dedupe wichtig?
A: Ohne Dedupe zahlt der Agent fur wiederholtes Lesen desselben Contents und verfalscht die effektive Quellenanzahl.
Q: Reicht es, am Ende einfach Zitate anzuhangen?
A: Nein. Zitate mussen aus extracted notes stammen und nicht "fur den Look" generiert werden.
Was Danach
Research Agent deckt open-world Suche und Zitierung ab.
Jetzt, wo du die Kern-Patterns kennst, kommt die nachste Frage: Wie kombiniert man sie in einem echten System? Wann nimmt man einen deterministischen Workflow und wann einen flexiblen Agenten? Und wie arbeiten sie zusammen?