chore(i18n): refresh fr translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-16 19:31:39 +00:00
parent 66a84f4352
commit 9bada7aefc

View File

@ -1,48 +1,47 @@
---
read_when:
- Vous voulez une solution de secours fiable lorsque les fournisseurs dAPI échouent
- Vous utilisez Codex CLI ou dautres CLI dIA locaux et souhaitez les réutiliser
- Vous souhaitez comprendre le pont MCP en loopback pour laccès aux outils des backends CLI
summary: 'Backends CLI : fallback CLI dIA locale avec pont doutil MCP optionnel'
- Vous voulez une solution de repli fiable lorsque les fournisseurs dAPI échouent.
- Vous exécutez Codex CLI ou dautres CLI dIA locaux et souhaitez les réutiliser.
- Vous souhaitez comprendre le pont local loopback MCP pour laccès aux outils du backend CLI.
summary: 'Backends CLI : repli local du CLI dIA avec pont doutil MCP optionnel'
title: Backends CLI
x-i18n:
generated_at: "2026-04-11T02:44:24Z"
generated_at: "2026-04-16T19:31:02Z"
model: gpt-5.4
provider: openai
source_hash: d108dbea043c260a80d15497639298f71a6b4d800f68d7b39bc129f7667ca608
source_hash: 381273532a8622bc4628000a6fb999712b12af08faade2b5f2b7ac4cc7d23efe
source_path: gateway/cli-backends.md
workflow: 15
---
# Backends CLI (runtime de secours)
# Backends CLI (runtime de repli)
OpenClaw peut exécuter des **CLI dIA locaux** comme **solution de secours en texte seul** lorsque les fournisseurs dAPI sont indisponibles,
soumis à des limites de débit, ou se comportent temporairement mal. Cette approche est volontairement prudente :
OpenClaw peut exécuter des **CLI dIA locaux** comme **solution de repli en texte seul** lorsque les fournisseurs dAPI sont indisponibles, limités en débit ou temporairement défaillants. Cette approche est volontairement prudente :
- **Les outils OpenClaw ne sont pas injectés directement**, mais les backends avec `bundleMcp: true`
peuvent recevoir les outils de la gateway via un pont MCP en loopback.
peuvent recevoir des outils Gateway via un pont MCP en local loopback.
- **Streaming JSONL** pour les CLI qui le prennent en charge.
- **Les sessions sont prises en charge** (pour que les tours de suivi restent cohérents).
- **Les images peuvent être transmises** si le CLI accepte des chemins dimage.
Cela est conçu comme un **filet de sécurité** plutôt quun chemin principal. Utilisez-le lorsque vous
voulez des réponses textuelles « qui fonctionnent toujours » sans dépendre dAPI externes.
Cela est conçu comme un **filet de sécurité** plutôt que comme un chemin principal. Utilisez-le lorsque vous
voulez des réponses texte « qui fonctionnent toujours » sans dépendre dAPI externes.
Si vous voulez un runtime de harnais complet avec contrôles de session ACP, tâches en arrière-plan,
liaison thread/conversation, et sessions de codage externes persistantes, utilisez
Si vous voulez un runtime harness complet avec contrôles de session ACP, tâches en arrière-plan,
liaison thread/conversation et sessions de codage externes persistantes, utilisez
[ACP Agents](/fr/tools/acp-agents) à la place. Les backends CLI ne sont pas ACP.
## Démarrage rapide pour débutants
Vous pouvez utiliser Codex CLI **sans aucune configuration** (le plugin OpenAI intégré
enregistre un backend par défaut) :
Vous pouvez utiliser Codex CLI **sans aucune configuration** (le Plugin OpenAI intégré
enregistre un backend par défaut) :
```bash
openclaw agent --message "hi" --model codex-cli/gpt-5.4
```
Si votre gateway sexécute sous launchd/systemd et que `PATH` est minimal, ajoutez simplement le
chemin de la commande :
Si votre Gateway sexécute sous launchd/systemd et que `PATH` est minimal, ajoutez simplement le
chemin de commande :
```json5
{
@ -61,13 +60,13 @@ chemin de la commande :
Cest tout. Aucune clé, aucune configuration dauthentification supplémentaire nest nécessaire au-delà du CLI lui-même.
Si vous utilisez un backend CLI intégré comme **fournisseur de messages principal** sur un
hôte gateway, OpenClaw charge désormais automatiquement le plugin intégré propriétaire lorsque votre configuration
hôte Gateway, OpenClaw charge désormais automatiquement le Plugin intégré propriétaire lorsque votre configuration
référence explicitement ce backend dans une référence de modèle ou sous
`agents.defaults.cliBackends`.
## Lutiliser comme solution de secours
## Utilisation comme solution de repli
Ajoutez un backend CLI à votre liste de solutions de secours pour quil ne sexécute que lorsque les modèles principaux échouent :
Ajoutez un backend CLI à votre liste de repli afin quil ne sexécute que lorsque les modèles principaux échouent :
```json5
{
@ -86,22 +85,22 @@ Ajoutez un backend CLI à votre liste de solutions de secours pour quil ne s
}
```
Remarques :
Remarques :
- Si vous utilisez `agents.defaults.models` (liste dautorisation), vous devez également y inclure les modèles de votre backend CLI.
- Si vous utilisez `agents.defaults.models` (liste dautorisation), vous devez aussi y inclure vos modèles de backend CLI.
- Si le fournisseur principal échoue (authentification, limites de débit, délais dexpiration), OpenClaw
essaiera ensuite le backend CLI.
## Vue densemble de la configuration
Tous les backends CLI se trouvent sous :
Tous les backends CLI se trouvent sous :
```
agents.defaults.cliBackends
```
Chaque entrée est indexée par un **id de fournisseur** (par exemple `codex-cli`, `my-cli`).
Lid de fournisseur devient le côté gauche de votre référence de modèle :
Lid du fournisseur devient la partie gauche de votre référence de modèle :
```
<provider>/<model>
@ -131,7 +130,7 @@ Lid de fournisseur devient le côté gauche de votre référence de modèle :
sessionMode: "existing",
sessionIdFields: ["session_id", "conversation_id"],
systemPromptArg: "--system",
// Les CLI de style Codex peuvent pointer vers un fichier de prompt à la place :
// Les CLI de style Codex peuvent pointer vers un fichier de prompt à la place :
// systemPromptFileConfigArg: "-c",
// systemPromptFileConfigKey: "model_instructions_file",
systemPromptWhen: "first",
@ -148,54 +147,54 @@ Lid de fournisseur devient le côté gauche de votre référence de modèle :
## Fonctionnement
1. **Sélectionne un backend** en fonction du préfixe du fournisseur (`codex-cli/...`).
2. **Construit un prompt système** en utilisant le même prompt OpenClaw + contexte despace de travail.
2. **Construit un prompt système** à laide du même prompt OpenClaw + contexte despace de travail.
3. **Exécute le CLI** avec un id de session (si pris en charge) afin que lhistorique reste cohérent.
4. **Analyse la sortie** (JSON ou texte brut) et renvoie le texte final.
5. **Persiste les ids de session** par backend, afin que les suivis réutilisent la même session CLI.
<Note>
Le backend intégré Anthropic `claude-cli` est de nouveau pris en charge. Le personnel dAnthropic
nous a indiqué que lusage de Claude CLI dans le style OpenClaw est de nouveau autorisé, donc OpenClaw traite
lusage de `claude -p` comme approuvé pour cette intégration, à moins quAnthropic ne publie
nous a indiqué que lutilisation de Claude CLI dans le style OpenClaw est de nouveau autorisée, donc OpenClaw considère
lutilisation de `claude -p` comme approuvée pour cette intégration, sauf si Anthropic publie
une nouvelle politique.
</Note>
Le backend intégré OpenAI `codex-cli` transmet le prompt système dOpenClaw via
la surcharge de configuration `model_instructions_file` de Codex (`-c
model_instructions_file="..."`). Codex nexpose pas doption de type Claude
model_instructions_file="..."`). Codex nexpose pas de drapeau de style Claude
`--append-system-prompt`, donc OpenClaw écrit le prompt assemblé dans un
fichier temporaire pour chaque nouvelle session Codex CLI.
Le backend intégré Anthropic `claude-cli` reçoit linstantané des Skills OpenClaw
de deux façons : le catalogue compact de Skills OpenClaw dans le prompt système ajouté, et
un plugin Claude Code temporaire transmis avec `--plugin-dir`. Le plugin contient
uniquement les Skills éligibles pour cet agent/cette session, afin que le résolveur natif de Skills de Claude Code
de deux façons : le catalogue compact de Skills OpenClaw dans le prompt système ajouté, et
un Plugin Claude Code temporaire transmis avec `--plugin-dir`. Le Plugin ne contient
que les Skills éligibles pour cet agent/cette session, afin que le résolveur de Skills natif de Claude Code
voie le même ensemble filtré que celui quOpenClaw annoncerait autrement dans
le prompt. Les surcharges denvironnement/de clé API des Skills sont toujours appliquées par OpenClaw à lenvironnement
du processus enfant pour lexécution.
le prompt. Les surcharges de variables denvironnement/de clé API des Skills sont toujours appliquées par OpenClaw à lenvironnement
du processus enfant pendant lexécution.
## Sessions
- Si le CLI prend en charge les sessions, définissez `sessionArg` (par exemple `--session-id`) ou
- Si le CLI prend en charge les sessions, définissez `sessionArg` (par ex. `--session-id`) ou
`sessionArgs` (espace réservé `{sessionId}`) lorsque lid doit être inséré
dans plusieurs options.
- Si le CLI utilise une **sous-commande de reprise** avec des options différentes, définissez
dans plusieurs drapeaux.
- Si le CLI utilise une **sous-commande de reprise** avec des drapeaux différents, définissez
`resumeArgs` (remplace `args` lors de la reprise) et éventuellement `resumeOutput`
(pour les reprises non JSON).
- `sessionMode` :
- `always` : envoie toujours un id de session (nouvel UUID si aucun nest stocké).
- `existing` : envoie un id de session uniquement si un id a déjà été stocké.
- `none` : nenvoie jamais did de session.
- `sessionMode` :
- `always` : toujours envoyer un id de session (nouvel UUID si aucun nest stocké).
- `existing` : envoyer un id de session uniquement si un id a déjà été stocké.
- `none` : ne jamais envoyer did de session.
Remarques sur la sérialisation :
Remarques sur la sérialisation :
- `serialize: true` maintient lordre des exécutions sur la même voie.
- `serialize: true` conserve lordre des exécutions sur la même voie.
- La plupart des CLI sérialisent sur une voie de fournisseur.
- OpenClaw abandonne la réutilisation dune session CLI stockée lorsque létat dauthentification du backend change, y compris en cas de reconnexion, rotation de jeton, ou modification dun identifiant de profil dauthentification.
- OpenClaw abandonne la réutilisation de session CLI stockée lorsque létat dauthentification du backend change, y compris lors dune reconnexion, dune rotation de jeton ou dun changement didentifiant de profil dauthentification.
## Images (transmission directe)
Si votre CLI accepte des chemins dimage, définissez `imageArg` :
Si votre CLI accepte des chemins dimage, définissez `imageArg` :
```json5
imageArg: "--image",
@ -203,39 +202,39 @@ imageMode: "repeat"
```
OpenClaw écrira les images base64 dans des fichiers temporaires. Si `imageArg` est défini, ces
chemins sont transmis comme arguments 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
chemins sont transmis comme arguments du 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 simples chemins.
## Entrées / sorties
- `output: "json"` (par défaut) essaie danalyser le JSON et dextraire le texte + lid de session.
- `output: "json"` (par défaut) essaie danalyser le JSON et den extraire le texte + lid de session.
- Pour la sortie JSON de Gemini CLI, OpenClaw lit le texte de réponse depuis `response` et
lusage depuis `stats` lorsque `usage` est absent ou vide.
- `output: "jsonl"` analyse les flux JSONL (par exemple Codex CLI `--json`) et extrait le message final de lagent ainsi que les
identifiants de session lorsquils sont présents.
- `output: "text"` traite stdout comme réponse finale.
- `output: "jsonl"` analyse les flux JSONL (par exemple Codex CLI `--json`) et extrait le message final de lagent ainsi que les identifiants de session
lorsquils sont présents.
- `output: "text"` traite stdout comme la réponse finale.
Modes dentrée :
Modes dentrée :
- `input: "arg"` (par défaut) transmet le prompt comme dernier argument CLI.
- `input: "arg"` (par défaut) transmet le prompt comme dernier argument du CLI.
- `input: "stdin"` envoie le prompt via stdin.
- Si le prompt est très long et que `maxPromptArgChars` est défini, stdin est utilisé.
## Valeurs par défaut (propriété du plugin)
## Valeurs par défaut (possédées par le Plugin)
Le plugin OpenAI intégré enregistre également une valeur par défaut pour `codex-cli` :
Le Plugin OpenAI intégré enregistre également une valeur par défaut pour `codex-cli` :
- `command: "codex"`
- `args: ["exec","--json","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
- `resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
- `resumeArgs: ["exec","resume","{sessionId}","-c","sandbox_mode=\"workspace-write\"","--skip-git-repo-check"]`
- `output: "jsonl"`
- `resumeOutput: "text"`
- `modelArg: "--model"`
- `imageArg: "--image"`
- `sessionMode: "existing"`
Le plugin Google intégré enregistre également une valeur par défaut pour `google-gemini-cli` :
Le Plugin Google intégré enregistre également une valeur par défaut pour `google-gemini-cli` :
- `command: "gemini"`
- `args: ["--output-format", "json", "--prompt", "{prompt}"]`
@ -246,32 +245,32 @@ Le plugin Google intégré enregistre également une valeur par défaut pour `go
- `sessionMode: "existing"`
- `sessionIdFields: ["session_id", "sessionId"]`
Prérequis : le Gemini CLI local doit être installé et disponible sous le nom
Prérequis : le Gemini CLI local doit être installé et disponible comme
`gemini` dans `PATH` (`brew install gemini-cli` ou
`npm install -g @google/gemini-cli`).
Remarques sur le JSON de Gemini CLI :
Remarques sur le JSON de Gemini CLI :
- Le texte de réponse est lu depuis le champ JSON `response`.
- Lusage retombe sur `stats` lorsque `usage` est absent ou vide.
- Lusage revient à `stats` lorsque `usage` est absent ou vide.
- `stats.cached` est normalisé en `cacheRead` OpenClaw.
- Si `stats.input` est absent, OpenClaw dérive les jetons dentrée à partir de
`stats.input_tokens - stats.cached`.
Ne surchargez que si nécessaire (cas courant : chemin `command` absolu).
Ne surchargez que si nécessaire (cas courant : chemin `command` absolu).
## Valeurs par défaut propriété du plugin
## Valeurs par défaut possédées par le Plugin
Les valeurs par défaut des backends CLI font désormais partie de la surface du plugin :
Les valeurs par défaut des backends CLI font désormais partie de la surface du Plugin :
- Les plugins les enregistrent avec `api.registerCliBackend(...)`.
- L`id` du backend devient le préfixe du fournisseur dans les références de modèle.
- La configuration utilisateur dans `agents.defaults.cliBackends.<id>` surcharge toujours la valeur par défaut du plugin.
- Le nettoyage de configuration spécifique au backend reste propriété du plugin via le hook optionnel
- Les Plugins les enregistrent avec `api.registerCliBackend(...)`.
- Le `id` du backend devient le préfixe du fournisseur dans les références de modèle.
- La configuration utilisateur dans `agents.defaults.cliBackends.<id>` surcharge toujours la valeur par défaut du Plugin.
- Le nettoyage de configuration spécifique au backend reste possédé par le Plugin via le hook optionnel
`normalizeConfig`.
Les plugins qui ont besoin de petits shims de compatibilité de prompt/message peuvent déclarer
des transformations de texte bidirectionnelles sans remplacer un fournisseur ou un backend CLI :
Les Plugins qui ont besoin de petites adaptations de compatibilité de prompt/message peuvent déclarer
des transformations de texte bidirectionnelles sans remplacer un fournisseur ni un backend CLI :
```typescript
api.registerTextTransforms({
@ -289,51 +288,51 @@ api.registerTextTransforms({
```
`input` réécrit le prompt système et le prompt utilisateur transmis au CLI. `output`
réécrit les deltas diffusés de lassistant et le texte final analysé avant quOpenClaw ne gère
réécrit les deltas assistant streamés et le texte final analysé avant quOpenClaw ne gère
ses propres marqueurs de contrôle et la livraison au canal.
Pour les CLI qui émettent du JSONL compatible avec le stream-json de Claude Code, définissez
`jsonlDialect: "claude-stream-json"` dans la configuration de ce backend.
## Overlays MCP intégrés
## Overlays bundle MCP
Les backends CLI **ne** reçoivent **pas** directement les appels doutils OpenClaw, mais un backend peut
opter pour un overlay de configuration MCP généré avec `bundleMcp: true`.
Les backends CLI ne reçoivent **pas** directement les appels doutils OpenClaw, mais un backend peut
choisir dutiliser un overlay de configuration MCP généré avec `bundleMcp: true`.
Comportement intégré actuel :
Comportement intégré actuel :
- `claude-cli` : fichier de configuration MCP strict généré
- `codex-cli` : surcharges de configuration en ligne pour `mcp_servers`
- `google-gemini-cli` : fichier de paramètres système Gemini généré
- `claude-cli` : fichier de configuration MCP strict généré
- `codex-cli` : surcharges de configuration en ligne pour `mcp_servers`
- `google-gemini-cli` : fichier de paramètres système Gemini généré
Lorsque bundle MCP est activé, OpenClaw :
Lorsque bundle MCP est activé, OpenClaw :
- lance un serveur MCP HTTP en loopback qui expose les outils de la gateway au processus CLI
- lance un serveur MCP HTTP en local loopback qui expose les outils Gateway au processus CLI
- authentifie le pont avec un jeton par session (`OPENCLAW_MCP_TOKEN`)
- limite laccès aux outils à la session, au compte, et au contexte de canal actuels
- limite laccès aux outils à la session, au compte et au contexte de canal actuels
- charge les serveurs bundle-MCP activés pour lespace de travail actuel
- les fusionne avec toute forme existante de configuration/paramètres MCP du backend
- réécrit la configuration de lancement à laide du mode dintégration propriété du backend depuis lextension propriétaire
- réécrit la configuration de lancement en utilisant le mode dintégration possédé par le backend depuis lextension propriétaire
Si aucun serveur MCP nest activé, OpenClaw injecte quand même une configuration stricte lorsquun
backend opte pour bundle MCP afin que les exécutions en arrière-plan restent isolées.
Si aucun serveur MCP nest activé, OpenClaw injecte tout de même une configuration stricte lorsquun
backend choisit dutiliser bundle MCP afin que les exécutions en arrière-plan restent isolées.
## Limitations
## Limites
- **Pas dappels directs aux outils OpenClaw.** OpenClaw ninjecte pas dappels doutils dans
le protocole du backend CLI. Les backends ne voient les outils de la gateway que lorsquils optent pour
`bundleMcp: true`.
- **Le streaming est spécifique au backend.** Certains backends diffusent en JSONL ; dautres mettent en tampon
le protocole du backend CLI. Les backends ne voient les outils Gateway que lorsquils choisissent
dutiliser `bundleMcp: true`.
- **Le streaming est spécifique au backend.** Certains backends diffusent du JSONL en flux ; dautres mettent en tampon
jusquà la fin.
- **Les sorties structurées** dépendent du format JSON du CLI.
- **Les sessions Codex CLI** reprennent via une sortie texte (pas de JSONL), ce qui est moins
structuré que lexécution initiale avec `--json`. Les sessions OpenClaw continuent de fonctionner
- **Les sessions Codex CLI** reprennent via une sortie texte (sans JSONL), ce qui est moins
structuré que lexécution initiale `--json`. Les sessions OpenClaw continuent de fonctionner
normalement.
## Dépannage
- **CLI introuvable** : définissez `command` sur un chemin complet.
- **Nom de modèle incorrect** : utilisez `modelAliases` pour mapper `provider/model` → modèle CLI.
- **Aucune continuité de session** : assurez-vous que `sessionArg` est défini et que `sessionMode` nest pas
- **CLI introuvable** : définissez `command` sur un chemin complet.
- **Nom de modèle incorrect** : utilisez `modelAliases` pour mapper `provider/model` → modèle CLI.
- **Pas de continuité de session** : assurez-vous que `sessionArg` est défini et que `sessionMode` nest pas
`none` (Codex CLI ne peut actuellement pas reprendre avec une sortie JSON).
- **Images ignorées** : définissez `imageArg` (et vérifiez que le CLI prend en charge les chemins de fichiers).
- **Images ignorées** : définissez `imageArg` (et vérifiez que le CLI prend en charge les chemins de fichiers).