Case Study 4 · August 2026 · Agentic AI · Full-Stack · IAM · Reliability
Blog-Redaktionsportal mit agentischer KI-Pipeline
Ein produktives Redaktionsportal für den Fachblog eines Fortbildungsinstituts: Themenrecherche mit Websuche, dialogische Artikelerstellung, agentischer Fakt-Check gegen amtliche Quellen, redaktionelle Einzelentscheidung über jedes Finding und Veröffentlichung in WordPress.
Das Projekt verbindet eine klassische Webanwendung mit einer agentischen KI-Pipeline. Es wurde nicht als Demo, sondern als dauerhaft betriebenes Redaktionssystem mit Identity, Audit-Trail, Kostenkontrolle, Fehlerbehandlung und produktiver Datenmigration umgesetzt. Die Implementierung erfolgte KI-gestützt; die eigene Leistung liegt in Anforderungsdefinition, Architektur, Modell- und Kostenstrategie, Steuerung, fachlicher Abnahme, Security-Entscheidungen und Produktionsbetrieb.
Größenordnung
Ausgangslage
Manuelle Audits veröffentlichter Fachartikel hatten wiederkehrende Qualitätsprobleme sichtbar gemacht: Gerichtsentscheidungen ohne belastbare Fundstellen, veraltete Rechtsstände, zu absolute Aussagen und stehengebliebene Arbeitsnotizen. Für einen Anbieter, dessen Zielgruppe fachliche Verlässlichkeit erwartet, ist das kein kosmetisches Redaktionsproblem.
Gesucht war deshalb kein allgemeiner Textgenerator, sondern ein Redaktionssystem, das den gesamten Prozess von Themenfindung und Entwurf bis zur fachlichen Prüfung und Veröffentlichung unterstützt, ohne die redaktionelle Entscheidung an das Modell abzugeben.
Architektur
Das Portal wurde als eigenständiger Service neben WordPress aufgebaut und ausschließlich über definierte Schnittstellen angebunden. Redaktion, Identity, KI-Logik und CMS bleiben dadurch technisch voneinander entkoppelt.
- Backend: Python/FastAPI (async), PostgreSQL, SQLAlchemy und Alembic
- Frontend: React/TypeScript-SPA mit Vite; Secrets ausschließlich serverseitig
- Identity: Keycloak über OIDC Authorization Code + PKCE; das Backend validiert Tokens und Rollen selbst
- Publikation: WordPress REST API; vorhandene Beiträge werden aktualisiert statt dupliziert, bestehende URLs bleiben stabil
- LLM-Schicht: Claude über API mit serverseitiger Websuche und strukturierten Ausgaben; die Prüfkomponente ist über ein provider-unabhängiges Runner-Interface gekapselt
- Betrieb: Docker Compose hinter Caddy, systemd-basierte Zeitsteuerung und bestehende Mail-Infrastruktur für Statusmeldungen
Die Redaktions-Pipeline
- Themenrecherche: agentische Websuche liefert belegpflichtige Vorschläge je Themenbereich
- Auswahl und Vorgaben: Vorschlag übernehmen oder frei starten; fachliche Vorgaben in normaler Sprache
- Entwurf: Streaming-Generierung mit anschließendem persistentem Dialog zur iterativen Überarbeitung
- Agentischer Fakt-Check: eigenständige Recherche gegen definierte Quellen und strukturierte Findings
- Redaktionelle Entscheidung: Findings editieren, übernehmen, ablehnen und zurücknehmen
- Finales Gegenlesen und Veröffentlichung in WordPress
Alle KI-Schritte können bewusst übersprungen werden. Ein handgeschriebener Artikel bleibt damit ein regulärer Fall erster Klasse; der Workflow erzwingt keine KI-Nutzung, sondern macht ihren Einsatz nachvollziehbar.
Herzstück: agentischer Fakt-Check
Beim Übergang eines Artikels in die Prüfung recherchiert ein Agent eigenständig zu den überprüfbaren Aussagen. Es gilt eine harte, redaktionell erweiterbare Quellenpolitik mit Schwerpunkt auf amtlichen Gesetzen, Rechtsprechungs- und Fachquellen. Das Ergebnis wird nicht als Fließtext zurückgegeben, sondern als validierte strukturierte Daten mit Gesamtbewertung und einzeln entscheidbaren Findings.
- Absolutheits-Scanner für risikoreiche Formulierungen wie „immer“, „nie“, „ausschließlich“ oder „muss“
- Aktualitätssuche nach Rechtsprechung, die jünger ist als die jüngste im Artikel verwendete Entscheidung
- Verifikation von Aktenzeichen und Boundary-Tests bei Schwellenwerten
- Prüfung der Publikationsreife auf Arbeitsnotizen, unpassende Selbstbezüge und redaktionelle Inkonsistenzen
- Konsistenzprüfung gegen Kernaussagen bereits veröffentlichter Artikel desselben Fachbereichs
- Claim Ledger: Ampelliste aller prüfbaren Tatsachenbehauptungen mit Quelle, Aktenzeichen und Konfidenz
Inline-Findings ohne fragile Zeichenpositionen
Findings werden nicht über vom Modell berechnete Zeichen-Offsets im Artikel verankert. Stattdessen liefert das Modell die betroffene Passage mit; das Frontend findet sie über eine Matching-Kaskade wieder und behandelt Mehrfachtreffer explizit. Markierungen bleiben so auch bei typografischen Unterschieden und kleineren Textänderungen belastbar. Korrekturvorschläge können vor der Übernahme editiert werden; Entscheidungen sind reversibel und werden einschließlich Rücknahme im Audit-Trail protokolliert.
Benchmark und fachliche Abnahme
Für die Abnahme wurde ein Artikel mit fünf bewusst eingebauten Fehlern erstellt, die zuvor tatsächlich in Bestandsartikeln beobachtet worden waren: falsche Norm, veralteter Rechtsstand, unzulässige Absolutaussage, unpassender Selbstbezug und falsche Institutsschreibweise. Der Fakt-Check erkannte alle fünf, belegte die fachlichen Korrekturen mit amtlichen Quellen und fand zusätzlich selbständig eine einschlägige jüngere Gerichtsentscheidung. In der Nachprüfung zweier bereits veröffentlichter Artikel deckten sich die wesentlichen Funde mit zuvor unabhängig erstellten manuellen Audits.
Der 5-von-5-Test ist ein gezielter Benchmark mit eingebauten Fehlern und keine allgemeine Aussage über die Fehlerquote des Systems.
Human-in-the-loop statt „KI entscheidet“
Ein zentrales Produktprinzip ist die Trennung zwischen maschineller Recherche und menschlicher Entscheidung. Das Modell darf Findings recherchieren und Vorschläge machen, aber keinen Artikel eigenständig fachlich freigeben. Jede Anmerkung wird einzeln übernommen oder abgelehnt, Korrekturvorschläge sind vor der Übernahme bearbeitbar, Entscheidungen sind rücknehmbar, der komplette Entstehungsverlauf bleibt nachvollziehbar, und veröffentlicht wird erst nach finalem menschlichem Gegenlesen.
Produktionshärtung und Kostensteuerung
Die längeren LLM-Läufe wurden wie andere produktive Hintergrundjobs behandelt: mit Zustandsmodell, Fehlerbehandlung, Abbruch, Wiederanlauf und messbaren Betriebskosten.
- Token-, Suchanfragen-, Laufzeit- und Kostenlogging für jeden LLM-Aufruf
- Provider-Spend-Limit sowie konfigurierbare Such-, Effort- und Task-Budgets
- Automatische Wiederholung unterbrochener Streaming- und API-Verbindungen
- Startup-Recovery für nach Neustarts verwaiste Prüfläufe
- Echter serverseitiger Task-Abbruch aus der UI mit Schutz gegen verspätete Ergebnisse
- Keine offenen Datenbanktransaktionen während minutenlanger Modellaufrufe
- Mailbenachrichtigungen über Erfolg, Fehlschlag oder Abbruch, ohne dass Mailprobleme die Pipeline blockieren
- Least-Privilege-Betrieb mit getrennten Service-Identitäten und Secrets außerhalb des Repositories
Ein praktischer Effekt der Kostensteuerung: Durch ein Task-Budget konnte der Agent sein verfügbares Arbeitskontingent selbst priorisieren. Die typische Laufzeit eines Fakt-Checks sank dadurch deutlich, bei im Test unveränderter Trefferqualität.
Was dieses Projekt zeigt
- AI Product Engineering LLM-Funktionen nicht als Chatfenster, sondern als kontrollierte Bestandteile eines Fachprozesses entwerfen.
- Agentische Systeme Websuche, strukturierte Tool-Nutzung, iterative Recherche und Budgetsteuerung mit klar definierten Grenzen.
- Human-in-the-loop Vorschläge, Evidenz und redaktionelle Entscheidungen technisch voneinander trennen.
- Full-Stack-Verantwortung Datenmodell, Backend, Frontend, IAM, CMS-Integration und Betrieb als zusammenhängendes Produkt behandeln.
- Security by Design Secrets, Tokenvalidierung, Rollenprüfung, Least Privilege und Vertrauensgrenzen von Beginn an berücksichtigen.
- Reliability Engineering Lange KI-Läufe abbrechbar, wiederanlauffähig und beobachtbar machen, statt sie wie einfache HTTP-Requests zu behandeln.
- Kostenbewusstsein Qualität, Laufzeit und API-Kosten gemeinsam optimieren und jeden Modelllauf betrieblich messbar machen.
- KI-gestützte Entwicklung mit eigener Verantwortung Implementierung beschleunigen, ohne Architektur-, Prüf- oder Freigabeentscheidungen an das Modell auszulagern.
- Python
- FastAPI
- PostgreSQL
- SQLAlchemy
- Alembic
- React
- TypeScript
- Vite
- TanStack Query
- Anthropic/Claude
- Websuche
- Structured Outputs
- Server-Sent Events
- Keycloak
- OIDC/PKCE
- WordPress REST
- Docker Compose
- Caddy
- systemd
- SMTP