Ein Schlüssel pro App und eine Seite für jeden Schlüssel.
Geben Sie jedem Kollegen, Laptop, CI-Job und Agenten einen eigenen Schlüssel. Die Seite eines Schlüssels zeigt, was er verbraucht hat und wie lange seine Anfragen in der Warteschlange warteten, Median und p95, für jeden Zeitraum, den Sie mit der Maus markieren oder eingeben. Rotieren Sie einen Schlüssel mit einer Übergangsfrist, und setzen Sie seine Priorität von P0 bis P9: Eine wartende P9-Anfrage kommt immer vor einer P8-Anfrage dran.
Pausieren Sie ihn, und neue Anfragen werden abgelehnt, während die bereits laufenden noch abgeschlossen werden:
$ curl -i http://gpu-box:8080/v1/chat/completions \
-H "Authorization: Bearer vw_…" -d '{…}'
HTTP/1.1 403 Forbidden
content-type: application/json
{"detail":"token paused"}
Aufgenommen auf einer lokalen Instanz am 23. September 2026. Host und Schlüssel ersetzt, weitere Header gekürzt.
demo-agent, dem Schlüssel, der die Last in Abb. 1 erzeugte: 37 Anfragen und 43 Tsd. generierte Token in der gezeigten Stunde. Dann öffnet sich sein Panel von God mode (eine optionale Live-Ansicht der Prompts und Antworten eines Schlüssels, standardmäßig aus), und seine Antworten laufen ein, während sie geschrieben werden. Die Prompts stammen von uns.
opencode-laptop, die zwei dichten rosa Säulen sind research-notebook. Aufgezeichnet am 23. September 2026; die Schlüsselnamen sind ersetzt. Scrollen Sie das Bild seitlich, um die ganze Woche zu sehen.Der Ausstieg ist eine Änderung an base_url.
LM Warden stellt /v1/chat/completions und /v1/models bereit, und /v1/models meldet das max_model_len jedes Modells. Es unterstützt auch die Anthropic Messages API unter /v1/messages, sodass Claude Code ANTHROPIC_BASE_URL auf die Stamm-URL eines Wardens setzen kann (den Pfad /v1/messages hängt Claude Code selbst an), und die OpenAI Responses API unter /v1/responses, sodass Codex CLI ein von Ihnen geladenes Modell nutzen kann. Die Gewichte liegen in einem gewöhnlichen HuggingFace-Cache, den make export-hf-cache Ihnen als Tarball übergibt, und das genaue argv, mit dem jede Engine gestartet wurde, lässt sich mit einem einzigen GET abrufen, sodass sich ein funktionierendes Setup ohne uns nachbauen lässt. Wenden Sie den Diff unten in umgekehrter Richtung an – so steigen Sie wieder aus.
import os from openai import OpenAI client = OpenAI( - base_url="https://api.openai.com/v1", - api_key=os.environ["OPENAI_API_KEY"], + base_url="http://gpu-box:8080/v1", + api_key=os.environ["LM_WARDEN_KEY"], # a vw_ key from API tokens ) reply = client.chat.completions.create( - model="gpt-4o-mini", + model="gpt-oss-20b", # the served name of a model you loaded messages=[{"role": "user", "content": "What is a KV cache?"}], )