Neueste Entwicklungen aus Lagebild statt aus Artikel-Strom
Bisher extrahierte der Generator Bullets direkt aus den neu eingesammelten Artikeln und mergte sie mit den bestehenden Developments. Das fuehrte zu zwei wiederkehrenden Problemen: 1. Off-topic Artikel, die den Keyword-Prefilter aber nicht den Topic-Filter passiert hatten, konnten als Bullet landen (die Kachel bildete dann Nebenschauplaetze des Weltgeschehens ab statt der Lage). 2. Alte Bullets blieben stehen, auch wenn sie laengst nicht mehr die 'neuesten' Entwicklungen waren — nur sehr ueberholte Eintraege fielen durch das 8-Bullet-Cap raus. Neue Logik: Der Generator nimmt das frisch erzeugte Lagebild als autoritative inhaltliche Grundlage und waehlt daraus Bullets aus, die durch eine aktuelle belegende Meldung (<~7 Tage) gestuetzt sind. Dadurch: - Thematisch sauber: Lagebild enthaelt bereits nur relevante Inhalte. - Echt 'neueste': Alte Hintergrund-Erwaehnungen im Lagebild fallen raus, weil kein aktueller Artikel sie belegt. - Klar datiert: Zeitstempel zwingend aus article.published_at der belegenden Meldung. - Kompakt: 4-6 Bullets (vorher 8), nach Zeitstempel absteigend. Kein Merge mit previous_developments mehr — bei jedem Refresh neu generiert (behebt das Drift-Problem). previous_developments bleibt nur als Fallback, falls der Generator im Einzelfall 0 Bullets parst.
Dieser Commit ist enthalten in:
@@ -1293,11 +1293,24 @@ class AgentOrchestrator:
|
||||
self._check_cancelled(incident_id)
|
||||
|
||||
# --- Neueste Entwicklungen (nur Live-Monitoring / adhoc) ---
|
||||
if incident_type == "adhoc" and new_articles_for_analysis:
|
||||
# Basis ist jetzt das frisch generierte Lagebild (autoritativ, thematisch sauber).
|
||||
# Zeitstempel und Quellen kommen aus den jüngsten belegenden Artikeln.
|
||||
dev_summary_source = (locals().get("new_summary") or previous_summary or "").strip()
|
||||
if incident_type == "adhoc" and dev_summary_source:
|
||||
try:
|
||||
# Top-60 neueste Artikel mit Publikationsdatum als Beleg-Pool.
|
||||
dev_cursor = await db.execute(
|
||||
"""SELECT id, headline, headline_de, source, source_url, published_at
|
||||
FROM articles
|
||||
WHERE incident_id = ? AND published_at IS NOT NULL
|
||||
ORDER BY published_at DESC LIMIT 60""",
|
||||
(incident_id,),
|
||||
)
|
||||
dev_articles = [dict(row) for row in await dev_cursor.fetchall()]
|
||||
|
||||
dev_analyzer = AnalyzerAgent()
|
||||
dev_text, dev_usage = await dev_analyzer.generate_latest_developments(
|
||||
title, description, new_articles_for_analysis, previous_developments,
|
||||
title, description, dev_summary_source, dev_articles, previous_developments,
|
||||
)
|
||||
if dev_usage:
|
||||
usage_acc.add(dev_usage)
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren