Produktionsorientierte HR-Politik-RAG mit LangChain und LangGraph
Eingabe, MMR, historiebasierte Überarbeitung, fundierte Antworten, Schutzmechanismen, Bewertung, Zitierungen sowie Graph-Orchestrierung für einen HR-Politik-Assistenten.
Ein Leitfaden, der die Dateneingabe, das Abrufen von MMR-Daten, abfragungsbezogene Berücksichtigung der Historie, Sicherheitsprüfungen, Evaluierungsmechanismen sowie die Benutzeroberfläche für mehrteilige Chats behandelt.
Einführung
Flüssige, generative Antworten reichen für das Unternehmenspersonalwesen nicht aus. Ein Richtlinienassistent darf keine Urlaubsregeln aus dem Vortraining erfinden. Er sollte genehmigte Dokumente abrufen und jede Behauptung auf diesen Quellen stützen. Das ist die Aufgabe der retrieval-augmented Generation (RAG).
Eine modulare, für die Produktion konzipierte HR-Politik-FAQ-Lösung kann Python, LangChain, LangGraph, ein mit OpenAI kompatibles Chat-Modell, ChromaDB, Streamlit, Embeddings, MMR-Auswertungsmethoden, abfragungsbezogene Umformulierungen unter Berücksichtigung des Kontexts, Prompt-Design, Eingabenzensur, Checks gegen Prompt-Injection, Auswertung der Ergebnisse, konversationelles Gedächtnis, Zusammenfassungsfunktionen sowie PDF-Export kombinieren. Ziel ist kein Demo-Chatbot – es handelt sich um ein RAG-System, das Qualität der Informationsbeschaffung, Gesprächskontext, Sicherheit, Bewertungsmethoden sowie Benutzerfreundlichkeit ernst nimmt.
1. Das Problem
Wenn jemand fragt: „Wie viele Krankheitstage sind erlaubt?“, könnte ein einfaches LLM eine Antwort erfunden haben. Ein HR-Assistent hingegen sollte:
- Die Frage verstehen
- Organisatorische HR-Dokumente durchsuchen
- Die relevantesten Abschnitte finden
- Diese Abschnitte an das Modell weiterleiten
- Eine auf ihnen basierende Antwort erstellen
Hochlevel-Fluss: HR-Dokumente → Aufnahme → Teilung in Blöcke + Metadaten → Embeddings → ChromaDB → Abrufmechanismus → abfragungsbezogener Suchablauf → relevante Dokumente → fundierter Prompt → Antwort → Zitate.
2. Aufnahme der Dokumente
Rohdaten werden suchbare Blöcke. Vollständige Dokumente sind zu groß, um in jeden Prompt aufgenommen zu werden, und können die Kontextgrenzen überschreiten. Die Blöcke enthalten Metadaten wie Dateinamen, Pfad, Ordner, Dokumenttyp und Quellkennzeichnungen – diese sind später nützlich für Zitate, Fehlerbehebung und die Überprüfung der abgerufenen Ergebnisse.
3. Embeddings und Vektorlagern
Jeder Block wird zu einem Embedding-Vektor:
"Employees receive annual leave..."
↓
Embedding Model
↓
[0.12, -0.43, 0.87, ...]
Vektoren und Metadaten werden in ChromaDB gespeichert. Nutzerfragen werden auf dieselbe Weise eingebettet, sodass semantisch ähnliche Richtlinien auch bei unterschiedlicher Formulierung angezeigt werden (“Zeitfreistellung aufgrund von Krankheit” vs “Recht auf Krankenurlaub”).
4. Abfrage mit MMR
Die naive top-k-Similarity kann vier nahezu identische Blöcke zur Urlaubsrichtlinie zurückgeben:
Chunk 1 → Leave policy
Chunk 2 → Leave policy
Chunk 3 → Leave policy
Chunk 4 → Leave policy
Die maximale marginale Relevanz balanciert Relevanz und Vielfalt. Ein größeres Kandidatenpool mit fetch_k, gefolgt von der Auswahl der endgültigen k mit MMR, verringert die Redundanz:
10,000 chunks
↓
Similarity search
↓
20 candidate chunks
↓
MMR
↓
4 diverse + relevant chunks
↓
LLM
5. abfragengestützte Abfrage
Aufgaben wie „Wie sieht es mit Managern aus?“ nach einer Antwort zur Jahresurlaubspolitik sind für sich genommen unklar. Ein schritt, der die Konversationshistorie berücksichtigt, formuliert die Anfrage vor der Abfrage neu:
Conversation History
+
Current Question
↓
LLM
↓
Standalone Search Query
Dadurch wird die Kontextualisierung der Anfrage (was meinte der Benutzer?) von der Erstellung der Antwort (was sollte die Antwort anhand der Dokumente enthalten?) getrennt.
6. begründete Antworterstellung
Die abgerufenen Datenblöcke liefern einen Prompt, der dem Modell mitteilt, ausschließlich HR-Dokumente zu verwenden, keine Richtlinien zu erfinden, Ausschlüsse aufzuzeigen, prägnant zu bleiben und Lücken einzugestehen. Architektur: Frage → Kontextualisierung → Abrufmechanismus → Dokumente → QA-Prompt → LLM → fundierte Antwort. Das Modell verfasst den Text; das Korpus liefert die Fakten.
7. Warum LangGraph
Sobald sich die Phasen – Validierung, Moderation, Erkennung von Eingriffen, Abfragenverarbeitung, Abruf, Erstellung, Speicherung, Zusammenfassung – vermehren, wird eine lineare Kette anfällig. LangGraph modelliert den Workflow als Zustände und Knoten:
User Input
↓
Validation
↓
Guardrails
↙ ↘
Safe Unsafe
↓ ↓
RAG Workflow Reject
↓
Final Response
↓
Conversation
Management
Der Graph lässt sich leichter erweitern als eine einzige riesige Funktion.
8. Schutzmaßnahmen
Die Eingaben für die Produktion müssen vor der RAG-Verarbeitung überprüft werden:
- Moderation – Inhalte, die gegen Richtlinien verstoßen, frühzeitig blockieren
- Erkennung von Prompt-Eingriffen – Angriffe im Stil von „Ignoriere vorherige Anweisungen…“ ablehnen
Die Reihenfolge ist wichtig: Benutzereingabe → Sicherheitsprüfungen → RAG, nicht Benutzereingabe → rohes LLM.
9. Gesprächsmerkmale und Zusammenfassung
Mehrfachinteraktions-Assistenten benötigen einen Historieverlauf, doch unbegrenzte Transkripte verbrauchen viele Token. Das Zusammenfassen älterer Interaktionen bewahrt die relevanten Informationen bei gleichzeitiger Begrenzung des aktiven Kontexts – ein Kompromiss zwischen Erhaltung und Kosten.
10. Bewertung der Informationsabrufung
Eine Antwort kann fließend wirken, obwohl die Informationsabrufung fehlschlug. Prüfen Sie, ob die richtigen Abschnitte übermittelt wurden, und nicht nur, ob Text zurückgegeben wurde. Bewerten Sie die Qualität der Informationsabrufung, die fundierte Generierung sowie das Verhalten der Anwendung als separate Aspekte.
11. Quellenangaben
Ziehen Sie Aussagen wie „Mitarbeiter erhalten 20 Tage Jahresurlaub (Urlaubsrichtlinie §3)“ vor bloßen Behauptungen. Quellenangaben stärken das Vertrauen, erleichtern die Fehlersuche und verbessern die Nachvollziehbarkeit, da Mitarbeiter das ursprüngliche PDF öffnen können.
12. Export der PDF-Gesprächsdaten
Durch den Export einer Konversation in PDF können Mitarbeiter eine Aufzeichnung für später behalten. Es handelt sich um ein Usability-Element, das zeigt, dass das System für echte Arbeit konzipiert ist und kein temporäres Chat-Widget.
Abschluss
Ein für die Produktion geeigneter HR-RAG-Assistent umfasst eine Kette aus Dateneingang, Abrufstrategie, konversationeller Umformulierung, Grundlegung, Graph-Orchestrierung, Sicherheitsmaßnahmen, Bewertung und Zitierungen. LangChain und LangGraph helfen dabei, diese Schritte zusammenzustellen; Chroma und MMR bestimmen, was das Modell sehen darf. Die unverhandelbare Produktregel bleibt: Antwortvorschläge stammen aus genehmigten Dokumenten, nicht aus dem Internetgedächtnis des Modells.
Designentscheidungen, die in der Praxis wichtig sind
Die Größe der Blöcke sowie das Überschneidungsniveau sind nicht nur kosmetischer Natur. Zu große Blöcke schwächen das Embedding-Signal; zu kleine Blöcke führen zum Verlust der umgebenden Richtlinienbeschränkungen. Das Überschneiden hilft, wenn eine Regel eine Grenze überspannt. Metadaten sind keine optionalen Verzierungen – ohne Dateinamen und Hinweise zu den Abschnitten werden Zitate unklar und Bewertungssätze schwer beurteilbar.
Die MMR-Parameter (fetch_k, k, Diversity-Lambda) sollten anhand eines gelabelten Fragekatalogs abgestimmt werden, nicht aufgrund von Intuition. Ein zu kleiner Kandidatenpool liefert niemals vielfältige Abschnitte; ein zu großer Pool verschwendet Latenzzeit.
Historiebewusstes Umformulieren darf keine Fakten erfinden. Der Umformulierungs Schritt sollte lediglich Pronomen sowie unvollständige Nachfragen in eigenständige Suchanfragen erweitern. Wenn das Umformulierungsmodell dazu neigt, direkt zu antworten, erhält die Suche niemals eine saubere Anfrage.
Schutzmechanismen müssen bereits vor der Informationsabfrage vorhanden sein. Moderation und Erkennung von Eingriffen, die erst nachdem das Modell bereits den Text der Datenschutzerklärung gesehen hat, durchgeführt werden, sind zu spät. Bei Verdacht auf Eingriffe soll sofort abgelehnt werden; eine Genehmigung ist nur zulässig, wenn die Produktrichtlinie ausdrücklich sanfte Blockierungen mit Protokollierung erlaubt.
Die Bewertung sollte sowohl die Informationsabfrage (Recall@k der erwarteten Dokument-ID) als auch die Generierung (Treue zum abgerufenen Text) berücksichtigen. Eine ansprechende Antwort auf der Grundlage einer falschen Klausel gilt dennoch als Fehlschlag. Speichern Sie Spuren: die umgeschriebene Abfrage, die abgerufenen IDs, die endgültige Antwort sowie die Zitierliste.
Streamlit (oder jede andere einfache Benutzeroberfläche) sollte Zitierungen sowie „unbekannte“ Zustände klar darstellen. Mitarbeiter vertrauen Systemen, die Lücken eingestehen, mehr als solchen, die übertriebene Urlaubsregelungen erfinden.
Die Exportfunktion in PDF ist ein Funktion zur Datenspeicherung: Nutzer kopieren die Antworten aus den Richtlinien in Tickets. Behandeln Sie den exportierten Text als potenziell sensibel und wenden Sie dieselben Zugriffskontrollen an wie bei der Chat-Sitzung.
Zum Schluss sollte der optimale Ablauf des Diagramms deutlich sichtbar sein. Neue Ingenieure sollten in der Lage sein, die Schritte Validierung → Überarbeitung → Abruf → Erstellung → Antwort ohne das Durchforsten optionaler Pfade auszuführen. Optionale Pfade (Zusammenfassung, Export) sind an klare Knoten angebunden und nicht in den Erstellungsprozess eingebettet.
Diese Disziplin verwandelt eine Wochenend-Demo von RAG in etwas, das ein HR-Team ohne Angst vor stillen Fehlinterpretationen der Richtlinien testen kann.
Die einzelnen Schritte in einer Zeitachse darstellen
HR DOCUMENTS
│
▼
DOCUMENT INGESTION
│
Chunking + Metadata
│
▼
EMBEDDINGS
│
▼
CHROMADB
│
▼
RETRIEVER
(MMR Search)
│
│
USER ──→ GUARDRAILS ─────┤
│
▼
HISTORY-AWARE QUERY
CONTEXTUALIZATION
│
▼
RETRIEVAL
│
▼
RELEVANT DOCUMENTS
│
▼
QA PROMPT + LLM
│
▼
GROUNDED ANSWER
│
┌────┴────┐
↓ ↓
Citations Memory
│
▼
Summarization
│
▼
PDF Export
Der erste Tag beschränkt sich oft auf das Einbetten von PDFs und Chatten. Ab dem zweiten bis zehnten Tag treten die eigentlichen Produktfunktionen in Erscheinung: Metadatenschemata, Anpassung von MMR, Nachschreibevorschläge, Moderationsmechanismen, Klassifizierer für Eingaben, Bewertungstabellen, Formatierung von Zitaten sowie Zusammenfassung von Gesprächen. Wenn man diese Schritte überspringt, erhält man ein System, das bei einfachen Fragen gut funktioniert, aber bereits beim zweiten Versuch, bei feindlichen Anfragen oder bei der Suche nach nahezu identischen Inhalten versagt.
LangChain hilft dabei, Modelle und Suchobjekte miteinander zu verbinden; LangGraph ermöglicht es, den Ablauf der Steuerung nachzuvollziehen. Keines davon ersetzt eine produktbezogene Entscheidung darüber, welche HR-Ordnner als autoritativ gelten, wer welche Richtlinien anfordern darf und wie „Unbekanntes“ in der Benutzeroberfläche dargestellt werden soll. Solche Entscheidungen gehören in die Designdokumente neben dem Diagramm des Graphen.
Wenn in der Produktion etwas schiefgeht, ist der schnellste Debugging-Weg in der Regel: Die umgeschriebene Abfrage überprüfen, die abgerufenen Chunk-IDs auflisten, diese Chunks lesen und anschließend den zugrunde liegenden Prompt einsehen. Falls dieser Ablauf in den Logs fehlt, muss die Überwachbarkeit verbessert werden, bevor ein weiteres Modell hinzugefügt wird.