From 6a2bd9e9c96b5d27025e0832b4fc220e99770618 Mon Sep 17 00:00:00 2001 From: Claude Dev Date: Sun, 15 Mar 2026 20:07:13 +0100 Subject: [PATCH] feat: Adhoc-Recherche bekommt bestehende Artikel als Kontext MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - RESEARCH_PROMPT_TEMPLATE: {existing_context} Platzhalter eingefügt - search(): Baut bei Adhoc-Folge-Refreshes Kontextblock mit bis zu 30 bekannten Headlines auf - orchestrator: Übergibt bestehende Artikel jetzt für ALLE Incident-Typen, nicht nur Research Effekt: Bei Adhoc-Auto-Refreshes findet Claude WebSearch gezielt neue Quellen statt immer dieselben Mainstream-Treffer Co-Authored-By: Claude Opus 4.6 (1M context) --- src/agents/orchestrator.py | 4 ++-- src/agents/researcher.py | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/agents/orchestrator.py b/src/agents/orchestrator.py index 4b2aaa0..380404d 100644 --- a/src/agents/orchestrator.py +++ b/src/agents/orchestrator.py @@ -624,9 +624,9 @@ class AgentOrchestrator: async def _web_search_pipeline(): """Claude WebSearch-Recherche.""" researcher = ResearcherAgent() - # Bei Research: bestehende Artikel als Kontext mitgeben + # Bestehende Artikel als Kontext mitgeben (Research + Adhoc) existing_for_context = None - if incident_type == "research" and existing_db_articles_full: + if existing_db_articles_full: existing_for_context = [ {"source": row["source"] if "source" in row.keys() else "", "headline": row["headline"], diff --git a/src/agents/researcher.py b/src/agents/researcher.py index 0428039..f163fda 100644 --- a/src/agents/researcher.py +++ b/src/agents/researcher.py @@ -14,7 +14,7 @@ WICHTIG: Verwende IMMER echte UTF-8-Umlaute (ä, ö, ü, ß) — NIEMALS Umschre AUFTRAG: Suche nach aktuellen Informationen zu folgendem Vorfall: Titel: {title} Kontext: {description} - +{existing_context} REGELN: - Suche nur bei seriösen Nachrichtenquellen (Nachrichtenagenturen, Qualitätszeitungen, öffentlich-rechtliche Medien, Behörden) - KEIN Social Media (Twitter/X, Facebook, Instagram, TikTok, Reddit) @@ -331,9 +331,21 @@ class ResearcherAgent: ) else: lang_instruction = LANG_INTERNATIONAL if international else LANG_GERMAN_ONLY + # Bestehende Artikel als Kontext: bei Folge-Refreshes findet Claude andere Quellen + existing_context = "" + if existing_articles: + known_lines = [] + for art in existing_articles[:30]: # Max 30 bei adhoc (kompakter als research) + source = art.get("source", "Unbekannt") + headline = art.get("headline", "") + known_lines.append(f"- {source}: {headline}") + existing_context = ( + "BEREITS BEKANNTE QUELLEN (aus RSS-Feeds und vorherigen Recherchen) — suche ANDERE Blickwinkel und Quellen:\n" + + "\n".join(known_lines) + "\n" + ) prompt = RESEARCH_PROMPT_TEMPLATE.format( title=title, description=description, language_instruction=lang_instruction, - output_language=OUTPUT_LANGUAGE, + output_language=OUTPUT_LANGUAGE, existing_context=existing_context, ) try: