Concepts and configuration

Modelle-CLI

Modellreferenzen wählen einen Provider und ein Modell aus. Normalerweise wählen sie nicht die Low-Level-Agent-Laufzeit aus. OpenAI-Agent-Referenzen sind die wichtigste Ausnahme: openai/gpt-5.5 läuft beim offiziellen OpenAI-Provider standardmäßig über die Codex-App-Server-Laufzeit. Subscription-Copilot-Referenzen (github-copilot/*) können zusätzlich für das externe GitHub-Copilot-Agent-Laufzeit-Plugin aktiviert werden – dieser Pfad bleibt explizit (kein auto-Fallback). Explizite Laufzeitüberschreibungen gehören in die Provider-/Modellrichtlinie, nicht auf den gesamten Agent oder die gesamte Sitzung. Im Codex-Laufzeitmodus impliziert die Referenz openai/gpt-* keine Abrechnung über API-Schlüssel; die Authentifizierung kann über ein Codex-Konto oder ein openai-OAuth-Profil erfolgen. Siehe Agent-Laufzeiten und GitHub-Copilot-Agent-Laufzeit.

So funktioniert die Modellauswahl

OpenClaw wählt Modelle in dieser Reihenfolge aus:

  • Primäres Modell

    agents.defaults.model.primary (oder agents.defaults.model).

  • Fallbacks

    agents.defaults.model.fallbacks (in Reihenfolge).

  • Provider-Auth-Failover

    Auth-Failover erfolgt innerhalb eines Providers, bevor zum nächsten Modell gewechselt wird.

  • Zugehörige Modelloberflächen
    • agents.defaults.models ist die Allowlist/der Katalog der Modelle, die OpenClaw verwenden kann (plus Aliase). Verwenden Sie provider/*-Einträge, um sichtbare Provider zu begrenzen, während die Provider-Erkennung dynamisch bleibt.
    • agents.defaults.imageModel wird nur verwendet, wenn das primäre Modell keine Bilder akzeptieren kann.
    • agents.defaults.pdfModel wird vom Tool pdf verwendet. Wenn es weggelassen wird, fällt das Tool auf agents.defaults.imageModel zurück, dann auf das aufgelöste Sitzungs-/Standardmodell.
    • agents.defaults.imageGenerationModel wird von der gemeinsam genutzten Bildgenerierungsfunktion verwendet. Wenn es weggelassen wird, kann image_generate weiterhin einen auth-gestützten Provider-Standard ableiten. Es versucht zuerst den aktuellen Standard-Provider, dann die übrigen registrierten Bildgenerierungs-Provider in Reihenfolge der Provider-ID. Wenn Sie einen bestimmten Provider/ein bestimmtes Modell festlegen, konfigurieren Sie auch die Authentifizierung/den API-Schlüssel dieses Providers.
    • agents.defaults.musicGenerationModel wird von der gemeinsam genutzten Musikgenerierungsfunktion verwendet. Wenn es weggelassen wird, kann music_generate weiterhin einen auth-gestützten Provider-Standard ableiten. Es versucht zuerst den aktuellen Standard-Provider, dann die übrigen registrierten Musikgenerierungs-Provider in Reihenfolge der Provider-ID. Wenn Sie einen bestimmten Provider/ein bestimmtes Modell festlegen, konfigurieren Sie auch die Authentifizierung/den API-Schlüssel dieses Providers.
    • agents.defaults.videoGenerationModel wird von der gemeinsam genutzten Videogenerierungsfunktion verwendet. Wenn es weggelassen wird, kann video_generate weiterhin einen auth-gestützten Provider-Standard ableiten. Es versucht zuerst den aktuellen Standard-Provider, dann die übrigen registrierten Videogenerierungs-Provider in Reihenfolge der Provider-ID. Wenn Sie einen bestimmten Provider/ein bestimmtes Modell festlegen, konfigurieren Sie auch die Authentifizierung/den API-Schlüssel dieses Providers.
    • Agent-spezifische Standards können agents.defaults.model über agents.list[].model plus Bindings überschreiben (siehe Multi-Agent-Routing).

    Auswahlquelle und Fallback-Verhalten

    Dasselbe provider/model kann je nach Herkunft unterschiedliche Dinge bedeuten:

    • Konfigurierte Standards (agents.defaults.model.primary und agent-spezifische Primärmodelle) sind der normale Ausgangspunkt und verwenden agents.defaults.model.fallbacks.
    • Automatische Fallback-Auswahlen sind temporärer Wiederherstellungszustand. Sie werden mit modelOverrideSource: "auto" gespeichert, damit spätere Durchläufe die Fallback-Kette weiter verwenden können, ohne jedes Mal ein bekannt defektes Primärmodell zu prüfen; OpenClaw prüft das ursprüngliche Primärmodell regelmäßig erneut, löscht die automatische Auswahl, wenn es sich erholt, und kündigt Fallback-/Wiederherstellungsübergänge einmal pro Zustandsänderung an.
    • Benutzersitzungsauswahlen sind exakt. /model, die Modellauswahl, session_status(model=...) und sessions.patch speichern modelOverrideSource: "user"; wenn dieser ausgewählte Provider/dieses ausgewählte Modell nicht erreichbar ist, schlägt OpenClaw sichtbar fehl, statt auf ein anderes konfiguriertes Modell zurückzufallen.
    • Das Ändern von agents.defaults.model.primary schreibt bestehende Sitzungsauswahlen nicht um. Wenn der Status This session is pinned to X; config primary Y will apply to new/unpinned sessions. meldet, löschen Sie die aktuelle Sitzungsauswahl mit /model default, damit sie wieder das konfigurierte Primärmodell erbt.
    • Cron --model / Payload model ist ein Primärmodell pro Job. Es verwendet weiterhin konfigurierte Fallbacks, sofern der Job keine expliziten Payload-fallbacks bereitstellt (verwenden Sie fallbacks: [] für einen strikten Cron-Lauf).
    • CLI-Standardmodell- und Allowlist-Auswahlen respektieren models.mode: "replace", indem sie explizite models.providers.*.models auflisten, statt den vollständigen eingebauten Katalog zu laden.
    • Die Control-UI-Modellauswahl fragt beim Gateway die konfigurierte Modellansicht ab: agents.defaults.models, falls vorhanden, einschließlich providerweiter provider/*-Einträge, andernfalls explizite models.providers.*.models plus Provider mit verwendbarer Authentifizierung. Der vollständige eingebaute Katalog ist expliziten Browsing-Ansichten vorbehalten, etwa models.list mit view: "all" oder openclaw models list --all.

    Kurze Modellrichtlinie

    • Legen Sie Ihr Primärmodell auf das stärkste Modell der neuesten Generation fest, das Ihnen zur Verfügung steht.
    • Verwenden Sie Fallbacks für kosten-/latenzempfindliche Aufgaben und Chats mit geringeren Anforderungen.
    • Vermeiden Sie bei Tool-fähigen Agenten oder nicht vertrauenswürdigen Eingaben ältere/schwächere Modellstufen.

    Onboarding (empfohlen)

    Wenn Sie die Konfiguration nicht manuell bearbeiten möchten, führen Sie Onboarding aus:

    bash
    openclaw onboard

    Es kann Modell + Authentifizierung für gängige Provider einrichten, einschließlich OpenAI Code (Codex)-Abonnement (OAuth) und Anthropic (API-Schlüssel oder Claude CLI).

    Konfigurationsschlüssel (Überblick)

    • agents.defaults.model.primary und agents.defaults.model.fallbacks
    • agents.defaults.imageModel.primary und agents.defaults.imageModel.fallbacks
    • agents.defaults.pdfModel.primary und agents.defaults.pdfModel.fallbacks
    • agents.defaults.imageGenerationModel.primary und agents.defaults.imageGenerationModel.fallbacks
    • agents.defaults.videoGenerationModel.primary und agents.defaults.videoGenerationModel.fallbacks
    • agents.defaults.models (Allowlist + Aliase + Provider-Parameter + dynamische Provider-Einträge provider/*)
    • models.providers (benutzerdefinierte Provider, die in models.json geschrieben werden)

    Sichere Allowlist-Bearbeitungen

    Verwenden Sie additive Schreibvorgänge, wenn Sie agents.defaults.models manuell aktualisieren:

    bash
    openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --merge
    Regeln zum Schutz vor Überschreiben

    openclaw config set schützt Modell-/Provider-Maps vor versehentlichem Überschreiben. Eine einfache Objektzuweisung an agents.defaults.models, models.providers oder models.providers.<id>.models wird abgelehnt, wenn dadurch bestehende Einträge entfernt würden. Verwenden Sie --merge für additive Änderungen; verwenden Sie --replace nur, wenn der bereitgestellte Wert zum vollständigen Zielwert werden soll.

    Interaktive Provider-Einrichtung und openclaw configure --section model führen Provider-spezifische Auswahlen ebenfalls in die bestehende Allowlist zusammen, sodass das Hinzufügen von Codex, Ollama oder einem anderen Provider keine nicht zusammenhängenden Modelleinträge entfernt. Configure bewahrt ein bestehendes agents.defaults.model.primary, wenn Provider-Authentifizierung erneut angewendet wird. Explizite Befehle zum Setzen von Standards wie openclaw models auth login --provider <id> --set-default und openclaw models set <model> ersetzen weiterhin agents.defaults.model.primary.

    „Modell ist nicht erlaubt“ (und warum Antworten stoppen)

    Wenn agents.defaults.models gesetzt ist, wird es zur Allowlist für /model und für Sitzungsüberschreibungen. Wenn ein Benutzer ein Modell auswählt, das nicht in dieser Allowlist enthalten ist, gibt OpenClaw zurück:

    Code
    Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --merge

    Wenn der abgelehnte Befehl eine Laufzeitüberschreibung wie /model openai/gpt-5.5 --runtime codex enthielt, beheben Sie zuerst die Allowlist und wiederholen Sie dann denselben Befehl /model ... --runtime .... Für native Codex-Ausführung ist das ausgewählte Modell weiterhin openai/gpt-5.5; die Laufzeit codex wählt das Harness aus und verwendet Codex-Authentifizierung separat.

    Speichern Sie für lokale/GGUF-Modelle die vollständige, providerpräfixierte Referenz in der Allowlist, zum Beispiel ollama/gemma4:26b, lmstudio/Gemma4-26b-a4-it-gguf oder das exakte Provider/Modell, das von openclaw models list --provider <provider> angezeigt wird. Bloße lokale Dateinamen oder Anzeigenamen reichen nicht aus, wenn die Allowlist aktiv ist.

    Wenn Sie Provider begrenzen möchten, ohne jedes Modell manuell aufzulisten, fügen Sie provider/*-Einträge zu agents.defaults.models hinzu:

    json5
    {  agents: {    defaults: {      models: {        "openai/*": {},        "vllm/*": {},      },    },  },}

    Mit dieser Richtlinie zeigen /model, /models und Modellauswahlen den erkannten Katalog nur für diese Provider an. Neue Modelle der ausgewählten Provider können erscheinen, ohne die Allowlist zu bearbeiten. Exakte provider/model-Einträge können mit provider/*-Einträgen gemischt werden, wenn Sie ein bestimmtes Modell eines anderen Providers benötigen.

    Beispielkonfiguration für die Allowlist:

    json5
    {  agents: {    defaults: {      model: { primary: "anthropic/claude-sonnet-4-6" },      models: {        "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },        "anthropic/claude-opus-4-6": { alias: "Opus" },      },    },  },}

    Modelle im Chat wechseln (/model)

    Sie können Modelle für die aktuelle Sitzung wechseln, ohne neu zu starten:

    Code
    /model/model list/model 3/model openai/gpt-5.4/model default/model status
    Auswahlverhalten
    • /model (und /model list) ist eine kompakte, nummerierte Auswahl (Modellfamilie + verfügbare Provider).
    • Auf Discord öffnen /model und /models eine interaktive Auswahl mit Provider- und Modell-Dropdowns plus einem Submit-Schritt.
    • Auf Telegram sind /models-Auswahlen sitzungsbezogen; sie ändern nicht den persistenten Standard des Agenten in openclaw.json.
    • /models add ist veraltet und gibt jetzt eine Veraltungsmeldung zurück, statt Modelle aus dem Chat zu registrieren.
    • /model <#> wählt aus dieser Auswahl aus.
    Persistenz und Live-Umschaltung
    • /model speichert die neue Sitzungsauswahl sofort.
    • Wenn der Agent inaktiv ist, verwendet der nächste Lauf sofort das neue Modell.
    • Wenn bereits ein Lauf aktiv ist, markiert OpenClaw eine Live-Umschaltung als ausstehend und startet erst an einem sauberen Wiederholungspunkt mit dem neuen Modell neu.
    • Wenn Tool-Aktivität oder Antwortausgabe bereits begonnen hat, kann die ausstehende Umschaltung bis zu einer späteren Wiederholungsmöglichkeit oder bis zur nächsten Benutzereingabe in der Warteschlange bleiben.
    • /model default löscht die Sitzungsauswahl und setzt die Sitzung auf das konfigurierte Standardmodell zurück.
    • Eine vom Benutzer ausgewählte /model-Referenz ist für diese Sitzung strikt: Wenn der ausgewählte Provider/das ausgewählte Modell nicht erreichbar ist, schlägt die Antwort sichtbar fehl, statt stillschweigend über agents.defaults.model.fallbacks zu antworten. Dies unterscheidet sich von konfigurierten Standards und Cron-Job-Primärmodellen, die weiterhin Fallback-Ketten verwenden können.
    • /model status ist die Detailansicht (Auth-Kandidaten und, wenn konfiguriert, Provider-Endpunkt baseUrl + api-Modus).
    Referenzparsing
    • Modellreferenzen werden durch Aufteilen am ersten / geparst. Verwenden Sie provider/model, wenn Sie /model <ref> eingeben.
    • Wenn die Modell-ID selbst / enthält (OpenRouter-Stil), müssen Sie das Provider-Präfix einschließen (Beispiel: /model openrouter/moonshotai/kimi-k2).
    • Wenn Sie den Provider auslassen, löst OpenClaw die Eingabe in dieser Reihenfolge auf:
      1. Alias-Übereinstimmung
      2. eindeutige Übereinstimmung eines konfigurierten Providers für genau diese Modell-ID ohne Präfix
      3. veralteter Fallback auf den konfigurierten Standard-Provider — wenn dieser Provider das konfigurierte Standardmodell nicht mehr anbietet, fällt OpenClaw stattdessen auf den ersten konfigurierten Provider/das erste konfigurierte Modell zurück, um zu vermeiden, dass ein veralteter Standard eines entfernten Providers sichtbar wird.

    Vollständiges Befehlsverhalten/Konfiguration: Slash-Befehle.

    CLI-Befehle

    bash
    openclaw models listopenclaw models statusopenclaw models set <provider/model>openclaw models set-image <provider/model> openclaw models aliases listopenclaw models aliases add <alias> <provider/model>openclaw models aliases remove <alias> openclaw models fallbacks listopenclaw models fallbacks add <provider/model>openclaw models fallbacks remove <provider/model>openclaw models fallbacks clear openclaw models image-fallbacks listopenclaw models image-fallbacks add <provider/model>openclaw models image-fallbacks remove <provider/model>openclaw models image-fallbacks clear

    openclaw models (ohne Unterbefehl) ist eine Abkürzung für models status.

    models list

    Zeigt standardmäßig konfigurierte/auth-verfügbare Modelle. Nützliche Flags:

    --allboolean

    Vollständiger Katalog. Enthält gebündelte, vom Provider verwaltete statische Katalogzeilen, bevor Auth konfiguriert ist, sodass reine Discovery-Ansichten Modelle anzeigen können, die erst verfügbar sind, nachdem Sie passende Provider-Anmeldedaten hinzugefügt haben.

    --localboolean

    Nur lokale Provider.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk " type="string"> Nach Provider-ID filtern, zum Beispiel moonshot. Anzeigebezeichnungen aus interaktiven Auswahldialogen werden nicht akzeptiert.

    --plainboolean

    Ein Modell pro Zeile.

    --jsonboolean

    Maschinenlesbare Ausgabe.

    models status

    Zeigt das aufgelöste Primärmodell, Fallbacks, Bildmodell und eine Auth-Übersicht der konfigurierten Provider. Außerdem wird der OAuth-Ablaufstatus für Profile angezeigt, die im Auth-Speicher gefunden wurden (standardmäßig Warnung innerhalb von 24 h). --plain gibt nur das aufgelöste Primärmodell aus.

    Auth- und Prüfverhalten
    • Der OAuth-Status wird immer angezeigt (und in der --json-Ausgabe eingeschlossen). Wenn ein konfigurierter Provider keine Anmeldedaten hat, gibt models status einen Abschnitt Fehlende Authentifizierung aus.
    • JSON enthält auth.oauth (Warnfenster + Profile) und auth.providers (effektive Authentifizierung pro Provider, einschließlich env-gestützter Anmeldedaten). auth.oauth ist nur der Zustand der Auth-Speicherprofile; reine env-Provider erscheinen dort nicht.
    • Verwenden Sie --check für Automatisierung (Exit 1 bei fehlend/abgelaufen, 2 bei bald ablaufend).
    • Verwenden Sie --probe für Live-Auth-Prüfungen; Prüfzeilen können aus Auth-Profilen, env-Anmeldedaten oder models.json stammen.
    • Wenn explizites auth.order.<provider> ein gespeichertes Profil auslässt, meldet die Prüfung excluded_by_auth_order, statt es zu versuchen. Wenn Auth vorhanden ist, aber für diesen Provider kein prüfbares Modell aufgelöst werden kann, meldet die Prüfung status: no_model.

    Beispiel (Claude CLI):

    bash
    claude auth loginopenclaw models status

    Scanning (kostenlose OpenRouter-Modelle)

    openclaw models scan prüft den kostenlosen Modellkatalog von OpenRouter und kann optional Modelle auf Tool- und Bildunterstützung prüfen.

    --no-probeboolean

    Live-Prüfungen überspringen (nur Metadaten).

    "--min-params
    "--max-age-days
    "--provider
    "--max-candidates
    --set-defaultboolean

    Setzt agents.defaults.model.primary auf die erste Auswahl.

    --set-imageboolean

    Setzt agents.defaults.imageModel.primary auf die erste Bildauswahl.

    Scan-Ergebnisse werden bewertet nach:

    1. Bildunterstützung
    2. Tool-Latenz
    3. Kontextgröße
    4. Parameteranzahl

    Eingabe:

    • OpenRouter-/models-Liste (Filter :free)
    • Live-Prüfungen erfordern einen OpenRouter-API-Schlüssel aus Auth-Profilen oder OPENROUTER_API_KEY (siehe Umgebungsvariablen)
    • Optionale Filter: --max-age-days, --min-params, --provider, --max-candidates
    • Anforderungs-/Prüfsteuerung: --timeout, --concurrency

    Wenn Live-Prüfungen in einem TTY laufen, können Sie Fallbacks interaktiv auswählen. Im nicht interaktiven Modus übergeben Sie --yes, um Standardwerte zu akzeptieren. Ergebnisse nur mit Metadaten dienen der Information; --set-default und --set-image erfordern Live-Prüfungen, damit OpenClaw kein unbrauchbares OpenRouter-Modell ohne Schlüssel konfiguriert.

    Modellregistrierung (models.json)

    Benutzerdefinierte Provider in models.providers werden in models.json im Agent-Verzeichnis geschrieben (Standard ~/.openclaw/agents/<agentId>/agent/models.json). Provider-Plugin-Kataloge werden als generierte, Plugin-eigene Katalog-Shards im Plugin-Status des Agents gespeichert und automatisch geladen. Diese Datei wird standardmäßig zusammengeführt, sofern models.mode nicht auf replace gesetzt ist.

    Rangfolge im Zusammenführungsmodus

    Rangfolge im Zusammenführungsmodus für übereinstimmende Provider-IDs:

    • Nicht leere baseUrl, die bereits in der Agent-models.json vorhanden ist, hat Vorrang.
    • Nicht leerer apiKey in der Agent-models.json hat nur Vorrang, wenn dieser Provider im aktuellen Konfigurations-/Auth-Profil-Kontext nicht SecretRef-verwaltet ist.
    • SecretRef-verwaltete Provider-apiKey-Werte werden aus Quellmarkierungen (ENV_VAR_NAME für env-Refs, secretref-managed für Datei-/Exec-Refs) aktualisiert, statt aufgelöste Secrets dauerhaft zu speichern.
    • SecretRef-verwaltete Provider-Header-Werte werden aus Quellmarkierungen (secretref-env:ENV_VAR_NAME für env-Refs, secretref-managed für Datei-/Exec-Refs) aktualisiert.
    • Leere oder fehlende Agent-apiKey/baseUrl fallen auf Konfiguration models.providers zurück.
    • Andere Provider-Felder werden aus Konfiguration und normalisierten Katalogdaten aktualisiert.

    Verwandte Themen

    Was this useful?
    On this page

    On this page