vLLM

vLLM kann Open-Source-Modelle (und einige benutzerdefinierte) über eine OpenAI-kompatible HTTP-API bereitstellen. OpenClaw kann sich über die openai-completions-API mit vLLM verbinden.

OpenClaw kann verfügbare Modelle von vLLM auch automatisch erkennen, wenn du VLLM_API_KEY aktivierst (jeder Wert funktioniert, falls dein Server keine Authentifizierung erzwingt) und keinen expliziten models.providers.vllm-Eintrag definierst.

Schnellstart

  1. Starte vLLM mit einem OpenAI-kompatiblen Server.

Deine Base-URL sollte /v1-Endpunkte bereitstellen (z.B. /v1/models, /v1/chat/completions). vLLM läuft üblicherweise auf:

  • http://127.0.0.1:8000/v1
  1. Aktiviere den Zugang (jeder Wert funktioniert, wenn keine Authentifizierung konfiguriert ist):
export VLLM_API_KEY="vllm-local"
  1. Wähle ein Modell aus (ersetze es durch eine deiner vLLM-Modell-IDs):
{
  agents: {
    defaults: {
      model: { primary: "vllm/your-model-id" },
    },
  },
}

Modellerkennung (impliziter Provider)

Wenn VLLM_API_KEY gesetzt ist (oder ein Auth-Profil existiert) und du models.providers.vllm nicht definierst, fragt OpenClaw ab:

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

…und wandelt die zurückgegebenen IDs in Modelleinträge um.

Wenn du models.providers.vllm explizit setzt, wird die automatische Erkennung übersprungen und du musst Modelle manuell definieren.

Explizite Konfiguration (manuelle Modelle)

Verwende die explizite Konfiguration, wenn:

  • vLLM auf einem anderen Host/Port läuft.
  • Du contextWindow/maxTokens-Werte festlegen möchtest.
  • Dein Server einen echten API-Key erfordert (oder du Header steuern möchtest).
{
  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,
          },
        ],
      },
    },
  },
}

Fehlerbehebung

  • Prüfe, ob der Server erreichbar ist:
curl http://127.0.0.1:8000/v1/models
  • Falls Anfragen mit Authentifizierungsfehlern fehlschlagen, setze einen echten VLLM_API_KEY, der zu deiner Serverkonfiguration passt, oder konfiguriere den Provider explizit unter models.providers.vllm.