feat: read full article text via a new read_article tool

Löst die RSS-Beschränkung: Feed-Einträge liefern nur eine kurze
Teaser-Beschreibung, nie den vollen Artikeltext.

- astra/articles.py: lädt eine URL, extrahiert den reinen Fließtext via
  trafilatura (ohne Navigation/Werbung/Boilerplate). Live gegen einen
  echten RP-ONLINE-Artikel verifiziert (1682 Zeichen sauberer Text).
- read_article-Tool in tools.py, gleiches tool_start/tool_result/
  tool_error-Muster wie die anderen beiden Tools. Beschreibung nennt
  explizit den erwarteten Anwendungsfall (Nachfrage zu einer schon
  genannten Schlagzeile) — konsequent nach der zuletzt beschlossenen
  Regel, Tool-Verhalten nur in der FunctionSchema, nie im SYSTEM_PROMPT.

Gemessen: mit drei Tools sinkt read_news weiter auf ca. 15-20%
(vorher mit zwei Tools 20-50%). read_article selbst liegt bei einer
konkreten Nachfrage zu einer schon im Kontext stehenden Schlagzeile
bei ~65% (2/3 in einem Live-Lauf gegen echtes Ollama, echter
Artikeltext erfolgreich extrahiert; der eine Fehlschlag gab ehrlich
zu, den Volltext nicht zu kennen, statt zu erfinden).

NICHT gepusht — auf Anweisung bis auf Weiteres nur lokal.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LVgSHNHdRx3UNTBodFmhRA
This commit is contained in:
Jeuner 2026-09-07 18:26:02 +02:00
parent 51f6824a5d
commit 0d2e826dd3
7 changed files with 398 additions and 7 deletions

View file

@ -12,6 +12,7 @@ dependencies = [
"pypdf",
"python-multipart",
"feedparser",
"trafilatura",
]
[dependency-groups]