Backends CLI (runtime de repli)
OpenClaw peut exécuter des CLI d’IA locales comme solution de repli texte seul lorsque les fournisseurs d’API sont indisponibles, soumis à des limites de débit, ou se comportent temporairement mal. Cette approche est volontairement conservative :- Les outils sont désactivés (aucun appel d’outil).
- Texte entrant → texte sortant (fiable).
- Les sessions sont prises en charge (les tours de suivi restent cohérents).
- Les images peuvent être transmises si la CLI accepte des chemins d’image.
Demarrage rapide pour debutants
Vous pouvez utiliser Claude Code CLI sans aucune configuration (OpenClaw fournit une valeur par défaut intégrée) :L’utiliser comme repli
Ajoutez un backend CLI à votre liste de repli afin qu’il ne s’exécute que lorsque les modèles principaux échouent :- Si vous utilisez
agents.defaults.models(allowlist), vous devez inclureclaude-cli/.... - Si le fournisseur principal échoue (authentification, limites de débit, délais), OpenClaw essaiera ensuite le backend CLI.
Vue d’ensemble de la configuration
Tous les backends CLI se trouvent sous :claude-cli, my-cli).
L’identifiant de fournisseur devient la partie gauche de votre référence de modèle :
Exemple de configuration
Fonctionnement
- Sélectionne un backend en fonction du préfixe de fournisseur (
claude-cli/...). - Construit un prompt système en utilisant le même prompt OpenClaw + le contexte de l’espace de travail.
- Exécute la CLI avec un identifiant de session (si pris en charge) afin que l’historique reste cohérent.
- Analyse la sortie (JSON ou texte brut) et renvoie le texte final.
- Conserve les identifiants de session par backend, afin que les suivis réutilisent la même session CLI.
Sessions
- Si la CLI prend en charge les sessions, définissez
sessionArg(par ex.--session-id) ousessionArgs(placeholder{sessionId}) lorsque l’identifiant doit être inséré dans plusieurs options. - Si la CLI utilise une sous‑commande de reprise avec des options différentes, définissez
resumeArgs(remplaceargslors de la reprise) et éventuellementresumeOutput(pour les reprises non‑JSON). sessionMode:always: toujours envoyer un identifiant de session (nouvel UUID s’il n’en existe pas).existing: n’envoyer un identifiant de session que s’il a été stocké auparavant.none: ne jamais envoyer d’identifiant de session.
Images (pass‑through)
Si votre CLI accepte des chemins d’image, définissezimageArg :
imageArg est défini, ces
chemins sont passés comme arguments de la CLI. Si imageArg est absent, OpenClaw ajoute les
chemins de fichiers au prompt (injection de chemin), ce qui suffit pour les CLI qui chargent automatiquement
les fichiers locaux à partir de chemins simples (comportement de Claude Code CLI).
Entrées / sorties
output: "json"(par défaut) tente d’analyser le JSON et d’extraire le texte + l’identifiant de session.output: "jsonl"analyse des flux JSONL (Codex CLI--json) et extrait le dernier message de l’agent ainsi quethread_idlorsqu’il est présent.output: "text"traite stdout comme la réponse finale.
input: "arg"(par défaut) transmet le prompt comme dernier argument de la CLI.input: "stdin"envoie le prompt via stdin.- Si le prompt est très long et que
maxPromptArgCharsest défini, stdin est utilisé.
Par défaut (intégré)
OpenClaw fournit une valeur par défaut pourclaude-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 absolu).
Limitations
- Aucun outil OpenClaw (le backend CLI ne reçoit jamais d’appels d’outils). Certaines CLI peuvent néanmoins exécuter leurs propres outils d’agent.
- Pas de streaming (la sortie de la CLI est collectée puis renvoyée).
- Les sorties structurées dépendent du format JSON de la CLI.
- Les sessions Codex CLI reprennent via une sortie texte (pas de JSONL), ce qui est moins
structuré que l’exécution initiale
--json. Les sessions OpenClaw fonctionnent néanmoins normalement.
Problemes courants
- CLI introuvable : définissez
commandvers un chemin complet. - Nom de modèle incorrect : utilisez
modelAliasespour mapperprovider/model→ modèle CLI. - Pas de continuité de session : assurez‑vous que
sessionArgest défini et quesessionModen’est pasnone(Codex CLI ne peut actuellement pas reprendre avec une sortie JSON). - Images ignorées : définissez
imageArg(et vérifiez que la CLI prend en charge les chemins de fichiers).