6.0 KiB
Research → Generate → Review
Die Artikelpipeline trennt Recherche, Autorenschaft und Qualitätskontrolle bewusst in drei Rollen. Webquellen werden nicht mehr vor der Texterzeugung so lange bewertet, bis eine abstrakte Wissensbasis als „vollständig“ gilt. Stattdessen sammelt das Brain belastbares Volltextmaterial, ein konfigurierbares Autor-Modell erstellt daraus einen vollständigen Artikel und ein getrenntes Reviewer-Modell prüft den sichtbaren Text anschließend Claim für Claim.
Ablauf
interne KB-Quellen
+
offene SearXNG-Recherche
↓
Volltext-Materialpool
↓
BRAIN_ARTICLE_SYNTHESIS_MODEL
↓
vollständiger Artikelentwurf
↓
BRAIN_ARTICLE_REVIEW_MODEL
↓
Claim-by-Claim-Prüfung
├─ akzeptiert → Staging-KB
└─ Lücken → gezielte Suchfragen → Nachrecherche → Revision → Review
Die Vorstrukturierung (KnowledgeBrief) dient nur noch dazu, sinnvolle Recherchefragen zu erzeugen und Material zu ordnen. ready_for_article und vorab erkannte critical_gaps sind keine harte Freigabesperre mehr. Ob ein Artikel geschrieben werden darf, entscheidet der Reviewer am tatsächlich erzeugten Text zusammen mit den deterministischen Strukturregeln.
1. Recherche als Materialsammlung
SearXNG arbeitet offen und ohne site:-Filter, ist aber im Cluster/Fast-Modus kein obligatorischer erster Schritt mehr. Bei BRAIN_ARTICLE_RESEARCH_STRATEGY=adaptive schreibt Gemma grundsätzlich aus kohärenten internen Quellen. Eine kleine Webrunde wird deterministisch vorgezogen, wenn Aktualität relevant ist, wenn der Planner für einen operationalen Artikel nur zwei kohärente interne Quellen findet oder wenn ein Entwurf weniger als drei konkrete Lösungsschritte bzw. keine Validierung enthält. Gemmas interne Routingfelder und Reviewer-Lücken können zusätzliche gezielte Evidenz anfordern. Details: ADAPTIVE-ARTICLE-WORKFLOW.md.
Frisch recherchiertes Artikelmaterial wird zunächst nur als Evidence-Datei mit pending_article_review persistiert. Es erzeugt noch keinen Graph-Node. Erst eine vom Reviewer tatsächlich für einen unterstützten Claim verwendete Quelle wird materialisiert und grounded.
Deutsch- und englischsprachige Quellen dürfen gemeinsam verwendet werden. Die sichtbare Artikelsprache wird separat durch BRAIN_ARTICLE_LANGUAGE festgelegt.
2. Eigenes Autor-Modell
BRAIN_ARTICLE_SYNTHESIS_MODEL=gemma3:12b
BRAIN_ARTICLE_LANGUAGE=de-DE
Das Autor-Modell erhält:
- die ausgewählten internen KB-Volltexte;
- den Artikeltyp und Pflegeauftrag;
- die fachliche Vorstrukturierung;
- den gesammelten Web-Volltext;
- bei einem Reparaturdurchlauf ausschließlich das Feedback des Reviewers und neu gefundenes Material.
Der Autor bewertet keine Quellen in der sichtbaren Ausgabe. Er erzeugt ausschließlich den späteren KB-Inhalt.
Das Modell muss auf mindestens einem gesunden Ollama-Knoten im vorhandenen Pool installiert sein. /api/status zeigt unter article_model_status separat, ob Autor- und Reviewer-Modell verfügbar sind.
3. Unabhängiger Claim-Reviewer
BRAIN_ARTICLE_REVIEW_MODEL=qwen3:8b
Der Reviewer sieht erst den fertigen Artikel. Er prüft jede wesentliche Behauptung, jeden technischen Schritt, jedes Entscheidungskriterium und jede sicherheitsrelevante Empfehlung gegen die beigefügten internen Quellen und Web-Volltexte.
Jeder Claim erhält einen der Zustände:
supportedpartially_supportedunsupportedcontradicted
Zusätzlich nennt der Reviewer konkrete source_refs. Interne Quellen werden über ihre SOURCE_NODE_ID, Webquellen über R<n> oder ihre URL referenziert.
Ein Artikel wird nur akzeptiert, wenn keine unsupported- oder contradicted-Claims verbleiben und keine Meta-/Prozesssprache im sichtbaren Artikel enthalten ist.
4. Gezielter Reparaturzyklus
BRAIN_ARTICLE_REVIEW_REPAIR_ROUNDS=1
Findet der Reviewer eine nicht belegte Aussage, liefert er missing_evidence_queries und rewrite_instructions. Nur diese konkreten Aussagen lösen weitere SearXNG-Recherche aus. Das Autor-Modell überarbeitet anschließend den Artikel, danach prüft der Reviewer erneut.
Damit wird die zweite Recherchephase durch Probleme im realen Artikel gesteuert und nicht durch immer neue abstrakte Vorab-Gates.
Der Wert kann zwischen 0 und 3 liegen. Für einen einzelnen GPU-/Ollama-Knoten ist 1 ein sinnvoller Startwert.
5. Provenienz
Die Staging-KB-Datei enthält weiterhin nur den sichtbaren KB-Inhalt. Das Audit-Sidecar unter
BRAIN_DATA_DIR/article-metadata/<artikel-id>.json
speichert zusätzlich:
research_material: sämtliches Material, das dem Autor zur Verfügung stand;article_review: die vollständige Claim-by-Claim-Bewertung;grounded_research_evidence: nur Webquellen, die der Reviewer für einensupportedoderpartially_supportedClaim tatsächlich referenziert hat;review_repair_attempts;- Autor- und Reviewer-Modell.
Im Graphen erhält der Artikel grounded_by-Edges ebenfalls nur zu diesen tatsächlich verwendeten Research-Quellen. Recherchebeifang bleibt als Research-Material erhalten, wird aber nicht als Beleg des Artikels ausgegeben.
6. Gemeinsame Queue
Recherche, Web-Fetch und Ollama-Verarbeitung verwenden weiterhin die gemeinsame begrenzte Work-Queue:
BRAIN_RESEARCH_OLLAMA_MAX_INFLIGHT=2
BRAIN_RESEARCH_OLLAMA_QUEUE_SIZE=64
Zusätzlich gelten die normalen Ollama-Poolgrenzen. Ein separates Autor-Modell erzeugt daher keinen zweiten unkontrollierten GPU-Pool.
Empfohlene Konfiguration
BRAIN_RESEARCH_ENABLED=true
SEARXNG_URL=http://searxng:8080
BRAIN_ARTICLE_SYNTHESIS_ENABLED=true
BRAIN_ARTICLE_LANGUAGE=de-DE
BRAIN_ARTICLE_SYNTHESIS_MODEL=gemma3:12b
BRAIN_ARTICLE_REVIEW_MODEL=qwen3:8b
BRAIN_ARTICLE_REVIEW_REPAIR_ROUNDS=1
BRAIN_ARTICLE_RESEARCH_RESULTS=12
BRAIN_ARTICLE_RESEARCH_FETCH_RESULTS=6
BRAIN_ARTICLE_MAX_RESEARCH_QUERIES=6
BRAIN_RESEARCH_OLLAMA_MAX_INFLIGHT=2
BRAIN_RESEARCH_OLLAMA_QUEUE_SIZE=64
gemma3:12b ist nur ein Beispiel. Jeder auf dem Ollama-Pool vorhandene Chat-Modelname kann als Autor oder Reviewer verwendet werden.