CLI-Backends (Fallback-Runtime)
OpenClaw kann lokale KI-CLIs als rein textbasierten Fallback ausführen, wenn API-Anbieter ausfallen, rate-limitiert sind oder sich vorübergehend fehlerhaft verhalten. Dies ist bewusst konservativ gehalten:- Werkzeuge sind deaktiviert (keine Tool-Aufrufe).
- Text rein → Text raus (zuverlässig).
- Sitzungen werden unterstützt (damit Folgeeingaben kohärent bleiben).
- Bilder können durchgereicht werden, wenn die CLI Bildpfade akzeptiert.
Einsteigerfreundlicher Schnellstart
Sie können Claude Code CLI ohne jegliche Konfiguration verwenden (OpenClaw liefert eine integrierte Standardkonfiguration):Verwendung als Fallback
Fügen Sie einen CLI-Backend zu Ihrer Fallback-Liste hinzu, sodass er nur ausgeführt wird, wenn primäre Modelle fehlschlagen:- Wenn Sie
agents.defaults.models(Allowlist) verwenden, müssen Sieclaude-cli/...einschließen. - Wenn der primäre Anbieter fehlschlägt (Auth, Rate-Limits, Timeouts), versucht OpenClaw als Nächstes den CLI-Backend.
Konfigurationsübersicht
Alle CLI-Backends befinden sich unter:claude-cli, my-cli).
Die Provider-ID wird zur linken Seite Ihrer Modell-Referenz:
Beispielkonfiguration
Wie es funktioniert
- Wählt ein Backend aus basierend auf dem Provider-Präfix (
claude-cli/...). - Erstellt einen System-Prompt unter Verwendung desselben OpenClaw-Prompts + Workspace-Kontext.
- Führt die CLI aus mit einer Sitzungs-ID (falls unterstützt), sodass der Verlauf konsistent bleibt.
- Parst die Ausgabe (JSON oder Klartext) und gibt den finalen Text zurück.
- Persistiert Sitzungs-IDs pro Backend, sodass Folgeeingaben dieselbe CLI-Sitzung wiederverwenden.
Sitzungen
- Wenn die CLI Sitzungen unterstützt, setzen Sie
sessionArg(z. B.--session-id) odersessionArgs(Platzhalter{sessionId}), wenn die ID in mehrere Flags eingefügt werden muss. - Wenn die CLI einen Resume-Subcommand mit unterschiedlichen Flags verwendet, setzen Sie
resumeArgs(ersetztargsbeim Fortsetzen) und optionalresumeOutput(für Nicht-JSON-Resumes). sessionMode:always: immer eine Sitzungs-ID senden (neue UUID, falls keine gespeichert ist).existing: nur eine Sitzungs-ID senden, wenn zuvor eine gespeichert war.none: niemals eine Sitzungs-ID senden.
Bilder (Durchreichen)
Wenn Ihre CLI Bildpfade akzeptiert, setzen SieimageArg:
imageArg gesetzt ist, werden diese
Pfade als CLI-Argumente übergeben. Wenn imageArg fehlt, hängt OpenClaw die
Dateipfade an den Prompt an (Path-Injection), was für CLIs ausreicht, die lokale Dateien aus
reinen Pfadangaben automatisch laden (Verhalten von Claude Code CLI).
Eingaben / Ausgaben
output: "json"(Standard) versucht, JSON zu parsen und Text + Sitzungs-ID zu extrahieren.output: "jsonl"parst JSONL-Streams (Codex CLI--json) und extrahiert die letzte Agent-Nachricht sowiethread_id, sofern vorhanden.output: "text"behandelt stdout als finale Antwort.
input: "arg"(Standard) übergibt den Prompt als letztes CLI-Argument.input: "stdin"sendet den Prompt über stdin.- Wenn der Prompt sehr lang ist und
maxPromptArgCharsgesetzt ist, wird stdin verwendet.
Standardwerte (integriert)
OpenClaw liefert einen Standard fürclaude-cli:
command: "claude"args: ["-p", "--output-format", "json", "--dangerously-skip-permissions"]resumeArgs: ["-p", "--output-format", "json", "--dangerously-skip-permissions", "--resume", "{sessionId}"]modelArg: "--model"systemPromptArg: "--append-system-prompt"sessionArg: "--session-id"systemPromptWhen: "first"sessionMode: "always"
codex-cli:
command: "codex"args: ["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","read-only","--skip-git-repo-check"]output: "jsonl"resumeOutput: "text"modelArg: "--model"imageArg: "--image"sessionMode: "existing"
command-Pfad).
Einschränkungen
- Keine OpenClaw-Werkzeuge (der CLI-Backend erhält niemals Tool-Aufrufe). Einige CLIs können dennoch ihre eigenen Agent-Werkzeuge ausführen.
- Kein Streaming (CLI-Ausgabe wird gesammelt und dann zurückgegeben).
- Strukturierte Ausgaben hängen vom JSON-Format der CLI ab.
- Codex-CLI-Sitzungen werden über Textausgabe fortgesetzt (kein JSONL), was weniger
strukturiert ist als der initiale
--json-Lauf. OpenClaw-Sitzungen funktionieren weiterhin normal.
Fehlerbehebung
- CLI nicht gefunden: setzen Sie
commandauf einen vollständigen Pfad. - Falscher Modellname: verwenden Sie
modelAliases, umprovider/model→ CLI-Modell zuzuordnen. - Keine Sitzungs-Kontinuität: stellen Sie sicher, dass
sessionArggesetzt ist undsessionModenichtnoneist (Codex CLI kann derzeit nicht mit JSON-Ausgabe fortsetzen). - Bilder werden ignoriert: setzen Sie
imageArg(und verifizieren Sie, dass die CLI Dateipfade unterstützt).