LM Warden

Anthropic SDK sur vos propres GPU.

Votre clé API Anthropic reste dans api_key ; la clé warden est transmise dans un en-tête distinct.

Où va une requête envoyée par l’Anthropic SDK L’Anthropic SDK envoie ses requêtes à LM Warden : base_url pointe vers le warden et X-LMWarden-Key contient une clé du warden. LM Warden vérifie la clé, interprète la requête au format Anthropic Messages, la place en file d’attente selon la priorité de la clé, puis la confie au routeur de réplicas, qui maintient chaque session sur le réplica détenant déjà son cache (une copie du modèle par GPU). Un chemin distinct mène à api.anthropic.com : les règles y envoient les autres modèles Claude, avec votre propre clé API. Anthropic SDK base_url points at the warden X-LMWarden-Key vw_…, in default headers POST /v1/messages LM Warden checks the key: one per app speaks Anthropic Messages scheduler, key priority usage, latency and live stats per key Replica router a session goes back to the replica that holds its cache one model copy per GPU your GPUs: vLLM or llama.cpp replica 0, GPU 0 replica 1, GPU 1 replica 2, GPU 2 a conversation stays on its replica api.anthropic.com rules send other Claude models here, on your own API key
Où va une requête envoyée par l’Anthropic SDK L’Anthropic SDK envoie ses requêtes à LM Warden : base_url pointe vers le warden et X-LMWarden-Key contient une clé du warden. LM Warden vérifie la clé, interprète la requête au format Anthropic Messages, la place en file d’attente selon la priorité de la clé, puis la confie au routeur de réplicas, qui maintient chaque session sur le réplica détenant déjà son cache (une copie du modèle par GPU). Un chemin distinct mène à api.anthropic.com : les règles y envoient les autres modèles Claude, avec votre propre clé API. Anthropic SDK base_url points at the warden X-LMWarden-Key vw_…, in default headers POST /v1/messages LM Warden checks the key: one per app speaks Anthropic Messages scheduler, key priority usage, latency, live stats per key Replica router a session goes back to the replica that holds its cache replica 0 GPU 0 replica 1 GPU 1 replica 2 GPU 2 your GPUs: vLLM or llama.cpp a conversation stays on its replica api.anthropic.com rules send other Claude models here, on your own API key
Où va une requête envoyée par l’Anthropic SDK : les deux paramètres que génère Connect, le warden au centre, puis une copie du modèle par GPU.

En clair : L’Anthropic SDK envoie ses requêtes à LM Warden : base_url pointe vers le warden et X-LMWarden-Key contient une clé du warden. LM Warden vérifie la clé, interprète la requête au format Anthropic Messages, la place en file d’attente selon la priorité de la clé, puis la confie au routeur de réplicas, qui maintient chaque session sur le réplica détenant déjà son cache (une copie du modèle par GPU). Un chemin distinct mène à api.anthropic.com : les règles y envoient les autres modèles Claude, avec votre propre clé API.

Protocole
Anthropic Messages
Prise en charge
Complète

Les modèles Claude désignés par vos règles tournent ici ; tous les autres modèles et chemins /v1 partent chez Anthropic avec votre propre clé API. Le mode Local uniquement ne nécessite aucun compte Anthropic : la clé warden sert d’api_key et le modèle est un nom de modèle servi.

Prérequis

  • Le routage doit être activé, avec au moins une règle active.
  • La clé doit être autorisée à relayer vers Anthropic (May relay).

Configuration

Dans la console, Connect génère ces fichiers avec l’adresse de votre warden, votre clé et le modèle choisi. Ils sont présentés ici avec des valeurs fictives.

Router : gardez votre clé Anthropic

base_url pointe vers ce warden ; votre clé API Anthropic reste dans api_key et la clé warden va dans les en-têtes par défaut.

Python
import anthropic

# api_key is your own Anthropic key (ANTHROPIC_API_KEY), used for pass-through.
client = anthropic.Anthropic(
    base_url="https://your-warden",
    default_headers={"X-LMWarden-Key": "vw_YOUR_KEY"},
)
message = client.messages.create(
    model="claude-haiku-4-5",  # a model your rules serve here; others go to Anthropic
    max_tokens=256,
    messages=[{"role": "user", "content": "Reply with the single word OK."}],
)
print(message.content[0].text)
TypeScript
import Anthropic from "@anthropic-ai/sdk";

// apiKey is your own Anthropic key (ANTHROPIC_API_KEY), used for pass-through.
const client = new Anthropic({
  baseURL: "https://your-warden",
  defaultHeaders: { "X-LMWarden-Key": "vw_YOUR_KEY" },
});
const message = await client.messages.create({
  model: "claude-haiku-4-5", // a model your rules serve here; others go to Anthropic
  max_tokens: 256,
  messages: [{ role: "user", content: "Reply with the single word OK." }],
});
console.log(message.content);
curl
curl https://your-warden/v1/messages \
  -H "X-LMWarden-Key: vw_YOUR_KEY" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "claude-haiku-4-5", "max_tokens": 256, "messages": [{"role": "user", "content": "Reply with the single word OK."}]}'

Local uniquement

La clé warden sert d’api_key et le modèle est un nom de modèle servi.

Python
import anthropic

client = anthropic.Anthropic(base_url="https://your-warden", api_key="vw_YOUR_KEY")
message = client.messages.create(
    model="your-served-model-name",
    max_tokens=256,
    messages=[{"role": "user", "content": "Reply with the single word OK."}],
)
print(message.content[0].text)
TypeScript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ baseURL: "https://your-warden", apiKey: "vw_YOUR_KEY" });
const message = await client.messages.create({
  model: "your-served-model-name",
  max_tokens: 256,
  messages: [{ role: "user", content: "Reply with the single word OK." }],
});
console.log(message.content);
curl
curl https://your-warden/v1/messages \
  -H "x-api-key: vw_YOUR_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model": "your-served-model-name", "max_tokens": 256, "messages": [{"role": "user", "content": "Reply with the single word OK."}]}'

Documentation officielle : https://platform.claude.com/docs/en/api/sdks/python (consultée le 2026-10-04).