PII aus LangChain-Pipelines schwaerzen
Verhindern Sie PII-Leaks in LangChain-Chains und -Agents. Erfahren Sie, wie Sie sensible Daten aus jedem LLM-Aufruf in Ihrer LangChain-Pipeline mit einer Proxy-basierten Sicherheitsschicht schwaerzen.
Das Problem: PII gelangt ueber LangChain-Pipelines nach aussen
LangChain macht es einfach, komplexe KI-Workflows zu bauen — Chains, Agents, RAG-Pipelines, Tool-Calling-Schleifen. Aber jeder invoke-Aufruf sendet letztendlich einen Prompt an einen LLM-Anbieter. Wenn Ihre Pipeline Benutzerdaten aus Datenbanken, Dokumenten oder APIs zusammensetzt, enthaelt dieser Prompt mit hoher Wahrscheinlichkeit PII.
import { ChatOpenAI } from "@langchain/openai";
import { HumanMessage } from "@langchain/core/messages";
const model = new ChatOpenAI({ model: "gpt-4o" });
const response = await model.invoke([
new HumanMessage(
`Analyze this customer's account history:
Name: Jennifer Walsh
Email: j.walsh@enterprise.com
Phone: (415) 555-0288
SSN: 552-31-8847
Account: 4024-0071-4382-9956
Address: 88 Mission St, San Francisco, CA 94105
Slack webhook: https://hooks.slack.com/services/T00/B00/secret`
),
]);
Dieser einzelne Aufruf hat gerade einen Namen, eine E-Mail-Adresse, eine Telefonnummer, eine SSN, eine Kreditkartennummer, eine Adresse und ein Webhook-Secret an OpenAI gesendet. In einer echten LangChain-Pipeline werden Daten oft automatisch aus Retrievern, Tools und Datenbanken gezogen — was es noch schwieriger macht, zu ueberpruefen, was gesendet wird.
Warum LangChain-Pipelines besonders riskant sind
LangChains Staerke liegt in der Komposierbarkeit — aber diese Komposierbarkeit schafft eine groessere Angriffsflaeche fuer PII-Leakage:
- Retrieval Chains (RAG) ziehen Dokumente aus Vector Stores, die Kundendaten, medizinische Unterlagen oder interne Dokumente enthalten koennen
- Agents und Tools koennen APIs aufrufen, Datenbanken abfragen und Inhalte scrapen — und PII aus mehreren Quellen in einem einzigen Prompt zusammenfuehren
- Memory und Konversationshistorie akkumulieren PII ueber mehrere Interaktionsrunden
- Output Parser koennen Zwischenergebnisse mit sensiblen Daten loggen
- Chain Callbacks koennen Prompt-Inhalte an Logging-, Monitoring- oder Tracing-Dienste senden
Das Problem ist nicht ein einzelner Aufruf — es ist, dass LangChain viele Aufrufe orchestriert, von denen jeder PII aus verschiedenen Quellen tragen kann.
Die Loesung: Proxy-basierte Schwaerzung mit Grepture
Grepture ist ein Open-Source-Sicherheitsproxy, der zwischen Ihrer LangChain-Pipeline und jedem LLM-Anbieter sitzt. Jede Anfrage wird auf PII, Geheimnisse und sensible Muster gescannt, bevor sie Ihre Infrastruktur verlaesst. Sensible Daten werden mit umkehrbaren Token maskiert — und in der Antwort wiederhergestellt, sodass Ihre Pipeline normal funktioniert.
Ein Proxy schuetzt jeden LLM-Aufruf in Ihrer Pipeline, unabhaengig davon, welchen Anbieter oder welches Modell Sie verwenden.
Einrichtung in 3 Minuten
1. SDK installieren
npm install @grepture/sdk
2. API Key erhalten
Registrieren Sie sich unter grepture.com/en/pricing — der kostenlose Plan umfasst 1.000 Anfragen/Monat. Kopieren Sie Ihren API Key aus dem Dashboard.
3. LangChain-Modell einbinden
LangChain-Modelle akzeptieren ein configuration-Objekt, in dem Sie den HTTP-Client ueberschreiben koennen. Verwenden Sie clientOptions(), um den Traffic ueber Grepture zu leiten:
import { ChatOpenAI } from "@langchain/openai";
import { Grepture } from "@grepture/sdk";
const grepture = new Grepture({
apiKey: process.env.GREPTURE_API_KEY!,
proxyUrl: "https://proxy.grepture.com",
});
const opts = grepture.clientOptions({
apiKey: process.env.OPENAI_API_KEY!,
baseURL: "https://api.openai.com/v1",
});
const model = new ChatOpenAI({
model: "gpt-4o",
configuration: {
baseURL: opts.baseURL,
fetch: opts.fetch,
},
});
// Every chain, agent, and retriever call is now protected
const response = await model.invoke([
new HumanMessage(userInput),
]);
Funktioniert mit jedem von LangChain unterstuetzten Anbieter
Der gleiche Ansatz funktioniert mit Anthropic, Google und jedem OpenAI-kompatiblen Anbieter:
import { ChatAnthropic } from "@langchain/anthropic";
const opts = grepture.clientOptions({
apiKey: process.env.ANTHROPIC_API_KEY!,
baseURL: "https://api.anthropic.com",
});
const model = new ChatAnthropic({
model: "claude-sonnet-4-5-20250929",
clientOptions: {
baseURL: opts.baseURL,
fetch: opts.fetch,
},
});
Was erkannt wird
Grepture wird im Free-Tier mit ueber 50 Erkennungsmustern und im Pro-Tier mit ueber 80 ausgeliefert:
| Kategorie | Beispiele | Tier |
|---|---|---|
| Persoenliche Identifikatoren | Namen, E-Mails, Telefonnummern, SSNs, Geburtsdaten | Free (Regex), Pro (AI) |
| Finanzdaten | Kreditkartennummern, IBANs, Bankleitzahlen | Free |
| Zugangsdaten | API Keys, Bearer Tokens, Passwoerter, Connection Strings | Free |
| Netzwerk-Identifikatoren | IP-Adressen, MAC-Adressen | Free |
| Freitext-PII | Namen, Organisationen und Adressen in unstrukturiertem Text | Pro (lokale AI-Modelle) |
| Adversarial Inputs | Prompt-Injection-Versuche | Business |
Die gesamte Erkennung laeuft auf der Grepture-Infrastruktur — es werden keine Daten an weitere Drittanbieter weitergeleitet.
Maskieren und Wiederherstellen: umkehrbare Schwaerzung
Grepture entfernt PII nicht einfach nur — es ersetzt sensible Werte durch Token, sendet den bereinigten Prompt an das LLM und stellt die Originalwerte in der Antwort wieder her. Das ist entscheidend fuer LangChain-Pipelines, in denen nachfolgende Chains davon abhaengen, dass die Modellantwort die Originaldaten enthaelt.
Was das LLM sieht:
Analyze this customer's account history:
Name: [PERSON_1]
Email: [EMAIL_1]
SSN: [SSN_1]
Account: [CREDIT_CARD_1]
...
Was Ihre Pipeline zurueckbekommt:
The customer Jennifer Walsh (j.walsh@enterprise.com)
has an active account at 88 Mission St, San Francisco.
No anomalies detected in recent transactions.
Das Modell verarbeitet saubere Daten. Ihre LangChain-Pipeline erhaelt die vollstaendige, personalisierte Antwort — und nachfolgende Chains, Tools und Output Parser funktionieren normal.
Schuetzt die gesamte Pipeline
Da Grepture auf HTTP-Ebene arbeitet, schuetzt es jeden LLM-Aufruf in Ihrer Pipeline:
- Retrieval Chains — PII in abgerufenen Dokumenten wird vor der Weitergabe an das Modell geschwaerzt
- Agent-Tool-Aufrufe — von Tools zusammengestellte Daten werden vor jedem LLM-Aufruf gescannt
- Mehrrundige Konversationen — angesammelte PII in der Nachrichtenhistorie wird bei jeder Runde erkannt
- Parallele Chains — alle gleichzeitigen LLM-Aufrufe fliessen durch denselben Proxy
Keine Aenderungen an Ihrer Chain-Logik, Ihren Retrievern oder Agents. Binden Sie den Model-Client einfach einmal ein.
Naechste Schritte
- Preise ansehen — kostenlos fuer bis zu 1.000 Anfragen/Monat
- Dokumentation lesen — SDK-Referenz, Konfiguration und Dashboard-Anleitung
- So funktioniert es — Architektur, Erkennungsregeln und Zero-Data-Modus