Окремий ключ для кожного застосунку й сторінка для кожного ключа.
Дайте кожному колезі, ноутбуку, завданню CI та агенту власний ключ. Сторінка ключа показує, скільки він витратив і скільки його запити чекали в черзі, медіану та p95, за будь-який проміжок, який ви виділите мишею чи введете. Замінюйте ключ із перехідним періодом і задавайте йому пріоритет від P0 до P9: запит P9, що чекає, завжди йде перед P8.
Призупиніть його, і нові запити відхилятимуться, а ті, що вже виконуються, завершаться:
$ 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"}
З локального екземпляра 23 вересня 2026 р. Хост і ключ замінено, інші заголовки обрізано.
demo-agent — ключа, який створив навантаження на рис. 1: 37 запитів і 43 тис. згенерованих токенів за годину на екрані. Потім відкривається його панель God mode (необов’язковий перегляд промптів і відповідей одного ключа в реальному часі, за замовчуванням вимкнений), і відповіді з’являються просто під час написання. Промпти наші.
opencode-laptop, два щільні рожеві стовпці — research-notebook. Записано 23 вересня 2026 р.; назви ключів замінено. Прокрутіть зображення вбік, щоб побачити весь тиждень.Щоб піти, достатньо змінити base_url.
LM Warden обслуговує /v1/chat/completions і /v1/models, а /v1/models повідомляє max_model_len кожної моделі. Він також приймає Anthropic Messages API на /v1/messages, тож для Claude Code достатньо вказати в ANTHROPIC_BASE_URL кореневу URL-адресу LM Warden (шлях /v1/messages Claude Code додає сам), і OpenAI Responses API на /v1/responses, тож Codex CLI може використовувати завантажену вами модель. Ваги лежать у звичайному кеші HuggingFace, який make export-hf-cache видає вам як tar-архів, а точні аргументи командного рядка (argv), з якими запущено кожен рушій, можна отримати одним GET-запитом, тож робочу конфігурацію можна відтворити без нас. Нижче наведено diff — зміни, потрібні, щоб перейти на LM Warden; щоб піти, достатньо скасувати ці самі зміни.
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?"}], )