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>
6.1 KiB
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.tsretest nach Prompt-Fixes — bestätigt OK -
writer.tsEnd-to-End-Test via Pipe — bestätigt OK -
Pi
/reloadund Extension-Test — bestätigt OK (Probelauf zeigt alle 6 Extensions aktiv) -
verify_article0-Claims-Bug bei langem Text- Fix: dynamisches
num_ctxincallOllamaClaimExtract()— 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 ✓
- Fix: dynamisches
-
Pi-Prompt-Guidelines für
verify_claimergänzenollama-verifier.tspromptGuidelines: "Never call verify_claim for multiple claims simultaneously"
P2 — Mittelfristig (Stabilität + Konfiguration)
-
Job-Speicher: persistente Pipeline-Ergebnisse
lib/jobs.ts—createJob/findJobDir/getOrCreateJob/saveJobFile/loadJobFile/updateJobMeta/listJobsollama-verify-article.ts --job-id <slug>/llama-verify-article.ts --job-id <slug>— speichertinput.txt,claims.json,perplexity/<id>.json,report.json- Resume: bei erneutem Aufruf mit gleichem
--job-idwerden gecachte Ergebnisse wiederverwendet - Claims-Cache: Extraktion übersprungen wenn
claims.jsonvorhanden - Perplexity-Cache: jeder einzelne
perplexity/<claim_id>.jsongecacht — kein doppelter API-Aufruf
- Resume: bei erneutem Aufruf mit gleichem
ollama-writer.ts --from-job <slug>/llama-writer.ts --from-job <slug>— liestreport.json, speichertarticle.md+ aktualisiertmeta.jsonmeta.jsonenthä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-fallaciesFlag- Gibt nur Fehlschlüsse aus (Text- oder JSON-Modus), kombinierbar mit
--json
- Gibt nur Fehlschlüsse aus (Text- oder JSON-Modus), kombinierbar mit
-
verify-article.ts— FortschrittsanzeigeonProgress-Callback inverifyArticle()— 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 +--verbosein allen CLI-ToolscreateLogger(opts)→ schreibt in~/.pi/agent/logs/<timestamp>.logLogger.info/warn/error/debug(msg, data)— strukturierte Einträge mit ISO-Timestampverbose=true→ alle Einträge auch auf stderr;warn/errorimmer auf stderrnullLoggerfür Pi-Extension-Kontext (keine Seiteneffekte)--verbose/-vFlag 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 intests/results/<timestamp>/ - Verwendung:
bash tests/run_corpus.sh [--mode deep] [--no-cache] [case_001 ...]
-
ollama-writer.ts—--langFlag — bereits implementiert (war nicht nötig) -
ollama-verify-article.ts— Cache für wiederholte Claimslib/cache.ts: SHA256-basierter File-Cache, TTL 7 Tage,~/.pi/agent/cache/perplexity/--no-cacheFlag inollama-verify-article.tsundllama-verify-article.ts
Erledigte Aufgaben (Phase 1–3)
package.json,tsconfig.json,types/pi-coding-agent.d.tsschemas/claim.schema.jsonschemas/source-record.schema.jsonschemas/verification-result.schema.jsonschemas/argument-map.schema.jsonschemas/article-draft.schema.json(inkl. Bugfix type-Array)agenten/ollama-claim-extractor.ts— getestetlib/perplexity.tsagenten/ollama-verifier.ts— getestetagenten/ollama-verify-article.ts— End-to-End getestet (umbenannt von verify-article.ts)lib/router.tsagenten/logic-editor.ts— getestetagenten/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, getestetagenten/llama-verifier.ts— Pi-Tool: verify_claim_llama, getestet (★ BEVORZUGT)agenten/llama-verify-article.ts— Pi-Tool: verify_article_llama, End-to-End getestetagenten/llama-writer.ts— Pi-Tool: write_article_llama, getestet (★ BEVORZUGT)agenten/llama-logic-editor.ts— Pi-Tool: analyze_logic_llama, getestet (★ BEVORZUGT)logic-editor.ts→ollama-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)