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

115 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- [x] **`logic-editor.ts` retest nach Prompt-Fixes** — bestätigt OK
- [x] **`writer.ts` End-to-End-Test via Pipe** — bestätigt OK
- [x] **Pi `/reload` und Extension-Test** — bestätigt OK (Probelauf zeigt alle 6 Extensions aktiv)
- [x] **`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 ✓
- [x] **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)
- [x] **Job-Speicher: persistente Pipeline-Ergebnisse**
- `lib/jobs.ts``createJob/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:
```bash
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
- [x] **`logic-editor.ts` — `--only-fallacies` Flag**
- Gibt nur Fehlschlüsse aus (Text- oder JSON-Modus), kombinierbar mit `--json`
- [x] **`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
- [x] **`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
- [x] **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)
- [x] **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
- [x] **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 ...]`
- [x] **`ollama-writer.ts` — `--lang` Flag** — bereits implementiert (war nicht nötig)
- [x] **`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)
- [x] `package.json`, `tsconfig.json`, `types/pi-coding-agent.d.ts`
- [x] `schemas/claim.schema.json`
- [x] `schemas/source-record.schema.json`
- [x] `schemas/verification-result.schema.json`
- [x] `schemas/argument-map.schema.json`
- [x] `schemas/article-draft.schema.json` (inkl. Bugfix type-Array)
- [x] `agenten/ollama-claim-extractor.ts` — getestet
- [x] `lib/perplexity.ts`
- [x] `agenten/ollama-verifier.ts` — getestet
- [x] `agenten/ollama-verify-article.ts` — End-to-End getestet (umbenannt von verify-article.ts)
- [x] `lib/router.ts`
- [x] `agenten/logic-editor.ts` — getestet
- [x] `agenten/ollama-writer.ts` — getestet (umbenannt von writer.ts)
- [x] Deployment: Symlinks in `~/.pi/agent/extensions/`
- [x] `AGENTS.md`, `HANDOFF.md`, `TODO.md`, `WORKLOG.md`, `docs/ARCHITECTURE.md`
## Erledigte Aufgaben (llama.cpp-Pipeline)
- [x] `agenten/llama-claim-extractor.ts` — Pi-Tool: extract_claims_llama, getestet
- [x] `agenten/llama-verifier.ts` — Pi-Tool: verify_claim_llama, getestet (★ BEVORZUGT)
- [x] `agenten/llama-verify-article.ts` — Pi-Tool: verify_article_llama, End-to-End getestet
- [x] `agenten/llama-writer.ts` — Pi-Tool: write_article_llama, getestet (★ BEVORZUGT)
- [x] `agenten/llama-logic-editor.ts` — Pi-Tool: analyze_logic_llama, getestet (★ BEVORZUGT)
- [x] `logic-editor.ts` → `ollama-logic-editor.ts` (Naming-Convention)
- [x] Symlinks + package.json für alle llama.cpp-Agenten aktualisiert
- [x] Dokumentation vollständig aktualisiert (BEDIENUNGSANLEITUNG.md, README.md, AGENTS.md, HANDOFF.md, WORKLOG.md, TODO.md)