Backendy CLI (środowisko wykonawcze awaryjne)
OpenClaw może uruchamiać lokalne CLI AI jako tekstowy tryb awaryjny, gdy dostawcy API są niedostępni, objęci limitami lub tymczasowo działają nieprawidłowo. Jest to celowo rozwiązanie zachowawcze:- Narzędzia są wyłączone (brak wywołań narzędzi).
- Tekst na wejściu → tekst na wyjściu (niezawodne).
- Sesje są obsługiwane (kolejne tury zachowują spójność).
- Obrazy mogą być przekazywane (pass-through), jeśli CLI akceptuje ścieżki do obrazów.
Przyjazny dla początkujących szybki start
Możesz używać Claude Code CLI bez żadnej konfiguracji (OpenClaw dostarcza wbudowane ustawienia domyślne):Użycie jako tryb awaryjny
Dodaj backend CLI do listy trybów awaryjnych, aby był uruchamiany tylko wtedy, gdy modele podstawowe zawiodą:- Jeśli używasz
agents.defaults.models(lista dozwolonych), musisz uwzględnićclaude-cli/.... - Jeśli podstawowy dostawca zawiedzie (uwierzytelnianie, limity, timeouty), OpenClaw spróbuje następnie backendu CLI.
Przegląd konfiguracji
Wszystkie backendy CLI znajdują się pod:claude-cli, my-cli).
Identyfikator dostawcy staje się lewą stroną odwołania do modelu:
Przykładowa konfiguracja
Jak to działa
- Wybiera backend na podstawie prefiksu dostawcy (
claude-cli/...). - Buduje prompt systemowy z użyciem tego samego promptu OpenClaw + kontekstu obszaru roboczego.
- Wykonuje CLI z identyfikatorem sesji (jeśli obsługiwane), aby historia pozostała spójna.
- Parsuje wyjście (JSON lub zwykły tekst) i zwraca końcowy tekst.
- Utrwala identyfikatory sesji per backend, aby kolejne wywołania używały tej samej sesji CLI.
Sessions
- Jeśli CLI obsługuje sesje, ustaw
sessionArg(np.--session-id) lubsessionArgs(placeholder{sessionId}), gdy identyfikator musi być wstawiony do wielu flag. - Jeśli CLI używa podpolecenia wznawiania z innymi flagami, ustaw
resumeArgs(zastępujeargsprzy wznawianiu) oraz opcjonalnieresumeOutput(dla wznawiania nie-JSON). sessionMode:always: zawsze wysyłaj identyfikator sesji (nowy UUID, jeśli żaden nie jest zapisany).existing: wysyłaj identyfikator sesji tylko wtedy, gdy był wcześniej zapisany.none: nigdy nie wysyłaj identyfikatora sesji.
Obrazy (pass-through)
Jeśli Twoje CLI akceptuje ścieżki do obrazów, ustawimageArg:
imageArg,
te ścieżki są przekazywane jako argumenty CLI. Jeśli brakuje imageArg, OpenClaw
dołącza ścieżki plików do promptu (wstrzykiwanie ścieżek), co wystarcza dla CLI, które
automatycznie ładują lokalne pliki z samych ścieżek (zachowanie Claude Code CLI).
Wejścia / wyjścia
output: "json"(domyślnie) próbuje sparsować JSON i wyodrębnić tekst + identyfikator sesji.output: "jsonl"parsuje strumienie JSONL (Codex CLI--json) i wyodrębnia ostatnią wiadomość agenta orazthread_id, gdy jest obecne.output: "text"traktuje stdout jako odpowiedź końcową.
input: "arg"(domyślnie) przekazuje prompt jako ostatni argument CLI.input: "stdin"wysyła prompt przez stdin.- Jeśli prompt jest bardzo długi i ustawiono
maxPromptArgChars, używany jest stdin.
Ustawienia domyślne (wbudowane)
OpenClaw dostarcza domyślne ustawienia dlaclaude-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).
Ograniczenia
- Brak narzędzi OpenClaw (backend CLI nigdy nie otrzymuje wywołań narzędzi). Niektóre CLI mogą nadal uruchamiać własne narzędzia agenta.
- Brak strumieniowania (wyjście CLI jest zbierane, a następnie zwracane).
- Wyjścia strukturalne zależą od formatu JSON danego CLI.
- Sesje Codex CLI są wznawiane przez wyjście tekstowe (bez JSONL), co jest mniej
ustrukturyzowane niż początkowe uruchomienie
--json. Sesje OpenClaw nadal działają normalnie.
Rozwiązywanie problemów
- Nie znaleziono CLI: ustaw
commandna pełną ścieżkę. - Nieprawidłowa nazwa modelu: użyj
modelAliases, aby mapowaćprovider/model→ model CLI. - Brak ciągłości sesji: upewnij się, że ustawiono
sessionArgoraz żesessionModenie jestnone(Codex CLI obecnie nie może wznawiać z wyjściem JSON). - Obrazy ignorowane: ustaw
imageArg(i sprawdź, czy CLI obsługuje ścieżki plików).