Text_Agent/TODO.md
dschlueter 5146b7fa30 feat: Pi Text-Agent — initialer Commit (sauberes Repo)
Vollständiges Multi-Agenten-System für Fact-Checking, Artikelschreiben
und Argumentationsanalyse. Zwei Backends: llama.cpp (★ bevorzugt) und Ollama.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 04:21:48 +02:00

6.1 KiB
Raw Blame History

TODO.md — Priorisierte Aufgabenliste

Format: [x] erledigt, [ ] offen. Aufgaben sind nach Priorität sortiert. Nach Erledigung: [x] setzen + WORKLOG.md ergänzen + HANDOFF.md aktualisieren.


P1 — Sofort

  • logic-editor.ts retest nach Prompt-Fixes — bestätigt OK

  • writer.ts End-to-End-Test via Pipe — bestätigt OK

  • Pi /reload und Extension-Test — bestätigt OK (Probelauf zeigt alle 6 Extensions aktiv)

  • verify_article 0-Claims-Bug bei langem Text

    • Fix: dynamisches num_ctx in callOllamaClaimExtract() — 8192/16384/32768 je nach Textlänge
    • Fix: 0-Claims wirft jetzt expliziten Fehler mit num_ctx + prompt_tokens in der Meldung
    • Fix: Duplikat-Unterdrückung im System-Prompt ergänzt
    • Getestet: Umerziehung.md (17964 Zeichen) → bekommt num_ctx=16384 ✓
  • Pi-Prompt-Guidelines für verify_claim ergänzen

    • ollama-verifier.ts promptGuidelines: "Never call verify_claim for multiple claims simultaneously"

P2 — Mittelfristig (Stabilität + Konfiguration)

  • Job-Speicher: persistente Pipeline-Ergebnisse

    • lib/jobs.tscreateJob/findJobDir/getOrCreateJob/saveJobFile/loadJobFile/updateJobMeta/listJobs
    • ollama-verify-article.ts --job-id <slug> / llama-verify-article.ts --job-id <slug> — speichert input.txt, claims.json, perplexity/<id>.json, report.json
      • Resume: bei erneutem Aufruf mit gleichem --job-id werden gecachte Ergebnisse wiederverwendet
      • Claims-Cache: Extraktion übersprungen wenn claims.json vorhanden
      • Perplexity-Cache: jeder einzelne perplexity/<claim_id>.json gecacht — kein doppelter API-Aufruf
    • ollama-writer.ts --from-job <slug> / llama-writer.ts --from-job <slug> — liest report.json, speichert article.md + aktualisiert meta.json
    • meta.json enthält Status (created/extracting/verifying/writing/completed/failed) + Step-Metadaten
  • OLLAMA_KEEP_ALIVE via systemd setzen

    • Was: Modell wird nach 5min entladen, dann ~200s Ladezeit
    • Wer: Nutzer muss selbst ausführen:
      sudo systemctl edit ollama
      # Einfügen unter [Service]:
      # Environment="OLLAMA_KEEP_ALIVE=-1"
      sudo systemctl daemon-reload && sudo systemctl restart ollama
      
    • Akzeptanzkriterium: Zweiter Ollama-Aufruf nach >5min braucht keine Ladezeit mehr
  • logic-editor.ts--only-fallacies Flag

    • Gibt nur Fehlschlüsse aus (Text- oder JSON-Modus), kombinierbar mit --json
  • verify-article.ts — Fortschrittsanzeige

    • onProgress-Callback in verifyArticle() — schreibt auf stderr, stört --json-Output nicht
    • Zeigt: Claim-Extraktion, Anzahl prüfbarer Claims, [N/M] pro Perplexity-Ergebnis, Urteilssynthese
  • lib/logger.ts — Persistentes Logging + --verbose in allen CLI-Tools

    • createLogger(opts) → schreibt in ~/.pi/agent/logs/<timestamp>.log
    • Logger.info/warn/error/debug(msg, data) — strukturierte Einträge mit ISO-Timestamp
    • verbose=true → alle Einträge auch auf stderr; warn/error immer auf stderr
    • nullLogger für Pi-Extension-Kontext (keine Seiteneffekte)
    • --verbose / -v Flag in: ollama-claim-extractor.ts, verify-article.ts, ollama-verifier.ts
    • Chunking-Details, Token-Counts, Perplexity-Kosten, Laufzeiten werden geloggt
  • Long-Text Bug final bestätigen: Chunking-Test auf Umerziehung.md

    • 5/7 Chunks erfolgreich (Chunk 6 failed weil Nutzer Ollama manuell neu startete — kein Bug)
    • Retry-Logik ergänzt: 3 Versuche mit 15s Pause bei fetch failed
    • Chunking funktioniert korrekt ✓

P3 — Langfristig (Testkorpus + Metriken)

  • Testkorpus anlegen: tests/corpus/

    • 10 Fälle: Inflation, EZB-Zins, Mondlandung, Bevölkerung DE, Erneuerbare, Bitcoin, COVID-Impfstoff, Bundeshaushalt, Klimaabkommen, Weltbevölkerung
    • Negativtests (nur korrekte Fakten): case_003, case_007, case_009
  • Test-Runner-Skript

    • tests/run_corpus.sh — führt alle Fälle durch verify-article, vergleicht mit expected.json
    • Precision/Recall für contradicted, Kosten, Laufzeit; Reports in tests/results/<timestamp>/
    • Verwendung: bash tests/run_corpus.sh [--mode deep] [--no-cache] [case_001 ...]
  • ollama-writer.ts--lang Flag — bereits implementiert (war nicht nötig)

  • ollama-verify-article.ts — Cache für wiederholte Claims

    • lib/cache.ts: SHA256-basierter File-Cache, TTL 7 Tage, ~/.pi/agent/cache/perplexity/
    • --no-cache Flag in ollama-verify-article.ts und llama-verify-article.ts

Erledigte Aufgaben (Phase 13)

  • package.json, tsconfig.json, types/pi-coding-agent.d.ts
  • schemas/claim.schema.json
  • schemas/source-record.schema.json
  • schemas/verification-result.schema.json
  • schemas/argument-map.schema.json
  • schemas/article-draft.schema.json (inkl. Bugfix type-Array)
  • agenten/ollama-claim-extractor.ts — getestet
  • lib/perplexity.ts
  • agenten/ollama-verifier.ts — getestet
  • agenten/ollama-verify-article.ts — End-to-End getestet (umbenannt von verify-article.ts)
  • lib/router.ts
  • agenten/logic-editor.ts — getestet
  • agenten/ollama-writer.ts — getestet (umbenannt von writer.ts)
  • Deployment: Symlinks in ~/.pi/agent/extensions/
  • AGENTS.md, HANDOFF.md, TODO.md, WORKLOG.md, docs/ARCHITECTURE.md

Erledigte Aufgaben (llama.cpp-Pipeline)

  • agenten/llama-claim-extractor.ts — Pi-Tool: extract_claims_llama, getestet
  • agenten/llama-verifier.ts — Pi-Tool: verify_claim_llama, getestet (★ BEVORZUGT)
  • agenten/llama-verify-article.ts — Pi-Tool: verify_article_llama, End-to-End getestet
  • agenten/llama-writer.ts — Pi-Tool: write_article_llama, getestet (★ BEVORZUGT)
  • agenten/llama-logic-editor.ts — Pi-Tool: analyze_logic_llama, getestet (★ BEVORZUGT)
  • logic-editor.tsollama-logic-editor.ts (Naming-Convention)
  • Symlinks + package.json für alle llama.cpp-Agenten aktualisiert
  • Dokumentation vollständig aktualisiert (BEDIENUNGSANLEITUNG.md, README.md, AGENTS.md, HANDOFF.md, WORKLOG.md, TODO.md)