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:

KategorieBeispieleTier
Persoenliche IdentifikatorenNamen, E-Mails, Telefonnummern, SSNs, GeburtsdatenFree (Regex), Pro (AI)
FinanzdatenKreditkartennummern, IBANs, BankleitzahlenFree
ZugangsdatenAPI Keys, Bearer Tokens, Passwoerter, Connection StringsFree
Netzwerk-IdentifikatorenIP-Adressen, MAC-AdressenFree
Freitext-PIINamen, Organisationen und Adressen in unstrukturiertem TextPro (lokale AI-Modelle)
Adversarial InputsPrompt-Injection-VersucheBusiness

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