Anthropic-SDK-Einrichtungsanleitung
Verbinde das Anthropic SDK mit Lucairn in 2 Minuten
Bisher gab es keine eigene Anthropic-Seite — die Konfiguration war über /integration verstreut. Dies ist die kanonische Anleitung für das Anthropic SDK (Python + TypeScript) gegen das Lucairn-Gateway.
Beide Schlüssel als Umgebungsvariablen setzen
Du brauchst einen Lucairn-Schlüssel (lcr_live_*) für Rate-Limit und Audit-Identität sowie deinen Anthropic-Schlüssel (sk-ant-*), den Lucairn pro Anfrage upstream weiterreicht — BYOK, nichts wird gespeichert. Falls du noch keinen Lucairn-Schlüssel hast, registriere dich unter /account/signup.
Anthropic SDK installieren
Verwende das offizielle Anthropic SDK — Python (pip install anthropic) oder TypeScript (npm install @anthropic-ai/sdk). Es gibt kein Lucairn-SDK zu installieren. Das Anthropic SDK zielt über base_url auf das Lucairn-Gateway.
base_url auf Lucairn setzen und Beispiel ausführen
Setze api_key auf deinen Lucairn-Schlüssel (das SDK schickt ihn als x-api-key — Lucairn erkennt das lcr_live_-Präfix dort als Customer-Key), setze base_url auf https://gateway.lucairn.eu und übergib deinen Anthropic-Schlüssel im Header X-Upstream-Key. Lucairn fängt jede Anfrage ab, bereinigt sie, isoliert sie, signiert sie und leitet sie an Anthropic weiter.
# Two keys: your Lucairn key (rate-limit + audit identity)
# and your Anthropic key (BYOK — forwarded upstream per request).
export LUCAIRN_API_KEY="lcr_live_..."
export ANTHROPIC_API_KEY="sk-ant-..."# Python
pip install anthropic
# TypeScript
npm install @anthropic-ai/sdkimport os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["LUCAIRN_API_KEY"], # Lucairn key — sent as x-api-key
base_url="https://gateway.lucairn.eu", # Lucairn Gateway
default_headers={
"X-Upstream-Key": os.environ["ANTHROPIC_API_KEY"], # your Anthropic key (BYOK)
},
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{
"role": "user",
"content": (
"Bitte fasse den Fall zusammen: "
"Patientin Anna Schmidt, geb. 14.03.1978, "
"IBAN DE89 3704 0044 0532 0130 00, "
"wurde am 02.05.2026 in der Charite vorgestellt."
),
}],
)
print(response.content[0].text)
print(response.metadata["dsa_compliance"]["veil_summary_url"])import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.LUCAIRN_API_KEY!, // Lucairn key — sent as x-api-key
baseURL: "https://gateway.lucairn.eu", // Lucairn Gateway
defaultHeaders: {
"X-Upstream-Key": process.env.ANTHROPIC_API_KEY!, // your Anthropic key (BYOK)
},
});
const response = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [{
role: "user",
content:
"Bitte fasse den Fall zusammen: Patientin Anna Schmidt, " +
"geb. 14.03.1978, IBAN DE89 3704 0044 0532 0130 00, " +
"wurde am 02.05.2026 in der Charite vorgestellt.",
}],
});
console.log(response.content[0]);
// @ts-expect-error metadata.dsa_compliance is a Lucairn extension
console.log(response.metadata?.dsa_compliance?.veil_summary_url);curl https://gateway.lucairn.eu/v1/messages \
-H "x-api-key: $LUCAIRN_API_KEY" \
-H "X-Upstream-Key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"messages": [{
"role": "user",
"content": "Patientin Anna Schmidt, IBAN DE89 3704 0044 0532 0130 00 — bitte zusammenfassen."
}]
}'So funktioniert es
Das api_key-Feld des Anthropic SDK wird als x-api-key-Header gesendet. Das Lucairn-Gateway erkennt lcr_live_*-Präfixe dort als Customer-Key und liest deinen echten Anthropic-Schlüssel aus X-Upstream-Key. Quelle: services/gateway/internal/api/anthropic_handler.go + upstream_key.go.
Jede Nachricht — System-Prompt und jeder Conversation-Turn — wird vor Erreichen von Anthropic auf personenbezogene Daten geprüft (Namen, E-Mails, Adressen, IBANs, deutsche medizinische Begriffe). Erkannte PII werden durch sichere Platzhalter ersetzt.
Anthropic sieht nur bereinigten Text. Dein echter Anthropic-Schlüssel wird pro Anfrage weitergereicht und am Gateway weder gespeichert noch geloggt oder gecacht.
Im Developer-Tier enthalten Antworten Platzhalter ([PERSON_1], [IBAN_1], …), damit dein Code keine echten personenbezogenen Daten empfängt. Pro- und Enterprise-Tier können automatische Rückverknüpfung zu den Originalwerten innerhalb deiner Umgebung aktivieren.
Jede Antwort enthält einen metadata.dsa_compliance-Block — request_id, veil_certificate_url, veil_summary_url, redaction_count, sanitizer_layers, latency_ms — dein kryptographischer Nachweis dessen, was bereinigt wurde. Öffne die veil_summary_url, um den Beleg zu prüfen.
Streaming (stream:true) ist am Gateway durch STREAMING_ENABLED gesteuert. Auf dem gehosteten gateway.lucairn.eu ist es heute AUS; auf einem selbst gehosteten Lucairn lässt es sich aktivieren. Wenn aktiviert, läuft Per-Chunk-Relinking, während jeder SSE-Chunk das Gateway verlässt.
Funktionsumfang
Bevor du das in eine Produktiv-App einfügst: prüfe, was der Anthropic-kompatible Proxy heute wirklich abdeckt. Wir benennen die echten Lücken — keine leeren Versprechen.
| Funktion | Heute aktiv | Hinweise |
|---|---|---|
| Nicht-streaming Messages (stream:false) | ✓ | Vollständige PII-Bereinigung über System-Prompt + jeden Turn + signiertes Lucairn-Zertifikat pro Anfrage. |
| System-Prompts | ✓ | Die System-Message wird zusammen mit den User-Turns end-to-end bereinigt. Klare Hard-Identifier im System-Prompt werden mit HTTP 400 abgewiesen — verschiebe PII in User-Messages. |
| Multi-Turn-Konversationen | ✓ | Jeder Turn wird bereinigt (Move-3-Multi-Turn-Fix). Ein Zertifikat pro Anfrage. |
| Streaming-Antworten (stream:true / SSE) | ! | AUF gateway.lucairn.eu standardmäßig AUS; auf selbst gehostetem Lucairn via STREAMING_ENABLED=true einschaltbar. Wenn aktiv: Per-Chunk-Relinking + Post-Stream-DLP-Audit. |
| Tool-Use / Function Calling (tools, tool_choice) | ✕ Roadmap | Tool-Definitionen und Tool-Call-Argumente werden heute nicht bereinigt. Tool-Inputs über diesen Endpoint zu senden ist unsicher — nutze die DSA Proxy API für explizites Field-Routing oder warte auf das Roadmap-Update. |
| Prompt-Caching (cache_control) | ✕ Roadmap | Jede Anfrage wird unabhängig verarbeitet, damit der Per-Call-Nachweis gültig bleibt. Keine Cache-Wiederverwendung über Requests hinweg. |
| Vision / Bilder / Files / Batch | ✕ Roadmap | Heute wird nur POST /v1/messages mit Text-Content geproxyt. Andere Anthropic-Endpoints haben keine Lucairn-Pipeline-Abdeckung — sende dort keine PII durch. |
Nicht-streaming Messages (stream:false)
✓Vollständige PII-Bereinigung über System-Prompt + jeden Turn + signiertes Lucairn-Zertifikat pro Anfrage.
System-Prompts
✓Die System-Message wird zusammen mit den User-Turns end-to-end bereinigt. Klare Hard-Identifier im System-Prompt werden mit HTTP 400 abgewiesen — verschiebe PII in User-Messages.
Multi-Turn-Konversationen
✓Jeder Turn wird bereinigt (Move-3-Multi-Turn-Fix). Ein Zertifikat pro Anfrage.
Streaming-Antworten (stream:true / SSE)
!AUF gateway.lucairn.eu standardmäßig AUS; auf selbst gehostetem Lucairn via STREAMING_ENABLED=true einschaltbar. Wenn aktiv: Per-Chunk-Relinking + Post-Stream-DLP-Audit.
Tool-Use / Function Calling (tools, tool_choice)
✕ RoadmapTool-Definitionen und Tool-Call-Argumente werden heute nicht bereinigt. Tool-Inputs über diesen Endpoint zu senden ist unsicher — nutze die DSA Proxy API für explizites Field-Routing oder warte auf das Roadmap-Update.
Prompt-Caching (cache_control)
✕ RoadmapJede Anfrage wird unabhängig verarbeitet, damit der Per-Call-Nachweis gültig bleibt. Keine Cache-Wiederverwendung über Requests hinweg.
Vision / Bilder / Files / Batch
✕ RoadmapHeute wird nur POST /v1/messages mit Text-Content geproxyt. Andere Anthropic-Endpoints haben keine Lucairn-Pipeline-Abdeckung — sende dort keine PII durch.
Streaming-on-hosted, Tool-Use-DLP und Vision sind auf der Roadmap. Abonniere das Changelog für Ship-Termine. Zum Changelog.
Andere SDK-Pfade vergleichen
Möchten Sie das in Aktion sehen?
Vereinbaren Sie einen Termin — wir gehen gemeinsam durch Ihren Anwendungsfall.