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.

1

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.

2

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.

3

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.

Umgebungsvariablen
# 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-..."
Installation
# Python
pip install anthropic

# TypeScript
npm install @anthropic-ai/sdk
Python — Beispiel (deutsche medizinische PII)
import 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"])
TypeScript — Beispiel
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 (verifizieren)
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.

  • 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.

Streaming-on-hosted, Tool-Use-DLP und Vision sind auf der Roadmap. Abonniere das Changelog für Ship-Termine. Zum Changelog.

Möchten Sie das in Aktion sehen?

Vereinbaren Sie einen Termin — wir gehen gemeinsam durch Ihren Anwendungsfall.