vLLM

vLLM は OpenAI 互換 の HTTP API でオープンソース(および一部カスタム)モデルを提供できます。OpenClaw は openai-completions API を使って vLLM に接続します。

VLLM_API_KEY(サーバーが認証を要求しない場合は任意の値で可)を設定し、明示的な models.providers.vllm エントリを定義しなければ、OpenClaw は vLLM の利用可能なモデルを自動検出することもできます。

クイックスタート

  1. OpenAI 互換サーバーとして vLLM を起動します。

ベース URL は /v1 エンドポイント(例: /v1/models/v1/chat/completions)を公開する必要があります。vLLM は通常以下で動作します:

  • http://127.0.0.1:8000/v1
  1. オプトイン(認証未設定の場合は任意の値で可):
export VLLM_API_KEY="vllm-local"
  1. モデルを選択(vLLM のモデル ID に置き換えてください):
{
  agents: {
    defaults: {
      model: { primary: "vllm/your-model-id" },
    },
  },
}

モデル自動検出(暗黙的プロバイダー)

VLLM_API_KEY が設定されている(または認証プロファイルが存在する)状態で、models.providers.vllm定義しない場合、OpenClaw は以下にクエリします:

  • GET http://127.0.0.1:8000/v1/models

返された ID をモデルエントリに変換します。

models.providers.vllm を明示的に設定した場合、自動検出はスキップされ、モデルを手動で定義する必要があります。

明示的設定(手動モデル定義)

以下の場合は明示的な設定を使用します:

  • vLLM が別のホスト/ポートで動作している。
  • contextWindow/maxTokens の値を固定したい。
  • サーバーが実際の API キーを要求する(またはヘッダーを制御したい)。
{
  models: {
    providers: {
      vllm: {
        baseUrl: "http://127.0.0.1:8000/v1",
        apiKey: "${VLLM_API_KEY}",
        api: "openai-completions",
        models: [
          {
            id: "your-model-id",
            name: "Local vLLM Model",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 128000,
            maxTokens: 8192,
          },
        ],
      },
    },
  },
}

トラブルシューティング

  • サーバーに到達できるか確認:
curl http://127.0.0.1:8000/v1/models
  • 認証エラーでリクエストが失敗する場合は、サーバー設定に一致する実際の VLLM_API_KEY を設定するか、models.providers.vllm でプロバイダーを明示的に構成してください。