feat: Adhoc-Recherche bekommt bestehende Artikel als Kontext

- 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) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
Claude Dev
2026-03-15 20:07:13 +01:00
Ursprung e0f8124e10
Commit 6a2bd9e9c9
2 geänderte Dateien mit 16 neuen und 4 gelöschten Zeilen

Datei anzeigen

@@ -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"],

Datei anzeigen

@@ -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: