LM Warden

OpenCode en tus propias GPU.

LM Warden como proveedor compatible con OpenAI para OpenCode, con un modelo servido.

Adónde va una solicitud de OpenCode OpenCode envía sus solicitudes a LM Warden, con baseURL configurada con la dirección del warden y una clave del warden en apiKey. LM Warden comprueba la clave, recibe la solicitud por OpenAI Chat Completions, la pone en cola según la prioridad de la clave y se la pasa al enrutador de réplicas, que mantiene cada sesión en la réplica que ya tiene su caché, con una copia del modelo por GPU. OpenCode baseURL the warden, at /v1 apiKey vw_…, the warden key POST /v1/chat/completions LM Warden checks the key: one per app speaks OpenAI Chat Completions 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
Adónde va una solicitud de OpenCode OpenCode envía sus solicitudes a LM Warden, con baseURL configurada con la dirección del warden y una clave del warden en apiKey. LM Warden comprueba la clave, recibe la solicitud por OpenAI Chat Completions, la pone en cola según la prioridad de la clave y se la pasa al enrutador de réplicas, que mantiene cada sesión en la réplica que ya tiene su caché, con una copia del modelo por GPU. OpenCode baseURL the warden, at /v1 apiKey vw_…, the warden key POST /v1/chat/completions LM Warden checks the key: one per app speaks OpenAI Chat Completions 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
Adónde va una solicitud de OpenCode: las dos opciones que configura Connect, el warden en medio y, después, una copia del modelo por GPU.

Descripción: OpenCode envía sus solicitudes a LM Warden, con baseURL configurada con la dirección del warden y una clave del warden en apiKey. LM Warden comprueba la clave, recibe la solicitud por OpenAI Chat Completions, la pone en cola según la prioridad de la clave y se la pasa al enrutador de réplicas, que mantiene cada sesión en la réplica que ya tiene su caché, con una copia del modelo por GPU.

Protocolo
OpenAI Chat Completions
Compatibilidad
Solo modelos locales

Solo modelos locales, mediante Chat Completions (@ai-sdk/openai-compatible; @ai-sdk/openai usaría la Responses API, que este warden solo traduce para Codex CLI). El ID del modelo debe ser un nombre servido de /v1/models. Si el archivo se sube al repositorio, usa {env:LMWARDEN_KEY} en lugar de la clave. El modo Router a través del proveedor Anthropic de OpenCode todavía no está contemplado.

Requisitos

  • Necesita un modelo con llamadas a herramientas (ediciones agénticas).
  • Funciona mejor con al menos 32.768 tokens de contexto.

Configuración

En la consola, Connect genera estos archivos con la dirección de tu warden, tu clave y el modelo que hayas elegido. Aquí aparecen con marcadores de posición.

Modelos locales

Agrega LM Warden como proveedor en opencode.json y conviértelo en el predeterminado.

opencode.json (opencode.json)
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "lmwarden": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "LM Warden",
      "options": { "baseURL": "https://your-warden/v1", "apiKey": "vw_YOUR_KEY" },
      "models": {
        "your-served-model-name": { "name": "your-served-model-name", "limit": { "context": 32768, "output": 8192 } }
      }
    }
  },
  "model": "lmwarden/your-served-model-name"
}
Shell
opencode run "Reply with the single word OK."

Documentación oficial: https://opencode.ai/docs/providers/ (consultada el 2026-10-04).