LM Warden

OpenCode を自分の GPU で。

LM Warden を OpenCode の OpenAI 互換プロバイダーとして設定し、提供中のモデルを一つ使います。

OpenCode からのリクエストの行き先 OpenCode は、baseURL に warden を、apiKey に warden のキーを設定して LM Warden にリクエストを送ります。LM Warden はキーを確認し、OpenAI Chat Completions 形式でリクエストを受け付け、キーの優先度に従ってリクエストをキューに入れ、レプリカ ルーターに渡します。ルーターは各セッションを、そのキャッシュをすでに保持しているレプリカ (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
OpenCode からのリクエストの行き先 OpenCode は、baseURL に warden を、apiKey に warden のキーを設定して LM Warden にリクエストを送ります。LM Warden はキーを確認し、OpenAI Chat Completions 形式でリクエストを受け付け、キーの優先度に従ってリクエストをキューに入れ、レプリカ ルーターに渡します。ルーターは各セッションを、そのキャッシュをすでに保持しているレプリカ (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
OpenCode からのリクエストの行き先:Connect が書き込む二つの設定、中央に warden、その先に GPU ごとに一つのモデルのコピー。

テキストによる説明: OpenCode は、baseURL に warden を、apiKey に warden のキーを設定して LM Warden にリクエストを送ります。LM Warden はキーを確認し、OpenAI Chat Completions 形式でリクエストを受け付け、キーの優先度に従ってリクエストをキューに入れ、レプリカ ルーターに渡します。ルーターは各セッションを、そのキャッシュをすでに保持しているレプリカ (GPU ごとに一つ置かれたモデルのコピー) に留めます。

プロトコル
OpenAI Chat Completions
サポート
ローカル モデルのみ

ローカル モデルのみで、Chat Completions を使います (@ai-sdk/openai-compatible。@ai-sdk/openai は Responses API を使いますが、この warden が Responses API を変換するのは Codex CLI 向けだけです)。モデル ID は /v1/models にある提供中の名前である必要があります。コミットするファイルでは、キーの代わりに {env:LMWARDEN_KEY} を使ってください。OpenCode の Anthropic プロバイダー経由の Router モードには、まだ対応していません。

要件

  • ツール呼び出しに対応したモデルが必要です (エージェントによる編集のため)。
  • 32,768 トークン以上のコンテキストで最もよく動きます。

セットアップ

コンソールでは、Connect が warden のアドレス、キー、選んだモデルを入れてこれらのファイルを書き出します。ここではプレースホルダーを使って示しています。

ローカル モデル

opencode.json で LM Warden をプロバイダーとして追加し、既定にします。

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"
}
シェル
opencode run "Reply with the single word OK."

公式ドキュメント:https://opencode.ai/docs/providers/ (2026-10-04 時点)。