Les plugins de backend CLI permettent à OpenClaw d’appeler une CLI d’IA locale comme backend d’inférence textuelle. Le backend apparaît comme un préfixe de fournisseur dans les références de modèle :Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Si le service amont expose une API de modèle HTTP normale, écrivez plutôt un
plugin de fournisseur. Si le runtime amont
possède des sessions d’agent complètes, des événements d’outils, la Compaction ou l’état
de tâches en arrière-plan, utilisez un harnais d’agent.
Ce que possède le plugin
Un plugin de backend CLI a trois contrats :| Contrat | Fichier | Objectif |
|---|---|---|
| Point d’entrée du paquet | package.json | Oriente OpenClaw vers le module de runtime du plugin |
| Propriété du manifeste | openclaw.plugin.json | Déclare l’id du backend avant le chargement du runtime |
| Enregistrement runtime | index.ts | Appelle api.registerCliBackend(...) avec les valeurs de commande par défaut |
api.registerCliBackend(...).
Plugin de backend minimal
Créer les métadonnées du paquet
package.json
./src/index.ts, ajoutez openclaw.runtimeExtensions qui pointe vers
le pair JavaScript compilé. Voir Points d’entrée.Déclarer la propriété du backend
openclaw.plugin.json
cliBackends est la liste de propriété runtime. Elle permet à OpenClaw de charger
automatiquement le plugin lorsque la configuration ou la sélection de modèle mentionne acme-cli/....setup.cliBackends est la surface de configuration priorisant les descripteurs. Ajoutez-la lorsque
la découverte de modèles, l’onboarding ou l’état doivent reconnaître le backend sans
charger le runtime du plugin. Utilisez requiresRuntime: false uniquement lorsque ces descripteurs
statiques suffisent pour la configuration.Forme de la configuration
CliBackendConfig décrit comment OpenClaw doit lancer et analyser la CLI :
| Champ | Utilisation |
|---|---|
command | Nom du binaire ou chemin de commande absolu |
args | argv de base pour les nouvelles exécutions |
resumeArgs | argv alternatif pour les sessions reprises ; prend en charge {sessionId} |
output / resumeOutput | Analyseur : json, jsonl ou text |
input | Transport du prompt : arg ou stdin |
modelArg | Drapeau utilisé avant l’id du modèle |
modelAliases | Associe les ids de modèles OpenClaw aux ids natifs de la CLI |
sessionArg / sessionArgs | Comment transmettre un id de session |
sessionMode | always, existing ou none |
sessionIdFields | Champs JSON lus par OpenClaw depuis la sortie de la CLI |
systemPromptArg / systemPromptFileArg | Transport du prompt système |
systemPromptWhen | first, always ou never |
imageArg / imageMode | Prise en charge des chemins d’image |
serialize | Garde les exécutions du même backend ordonnées |
reliability.watchdog | Réglage du délai d’absence de sortie |
Hooks de backend avancés
CliBackendPlugin peut aussi définir :
| Hook | Utilisation |
|---|---|
normalizeConfig(config, context) | Réécrire l’ancienne configuration utilisateur après fusion |
resolveExecutionArgs(ctx) | Ajouter des drapeaux propres à la requête, comme l’effort de réflexion |
prepareExecution(ctx) | Créer des ponts temporaires d’authentification ou de configuration avant le lancement |
transformSystemPrompt(ctx) | Appliquer une transformation finale du prompt système propre à la CLI |
textTransforms | Remplacements bidirectionnels de prompt/sortie |
defaultAuthProfileId | Préférer un profil d’authentification OpenClaw précis |
authEpochMode | Décider comment les changements d’authentification invalident les sessions CLI stockées |
nativeToolMode | Déclarer si la CLI possède des outils natifs toujours activés |
bundleMcp / bundleMcpMode | S’inscrire au pont d’outils MCP local loopback d’OpenClaw |
Pont d’outils MCP
Les backends CLI ne reçoivent pas les outils OpenClaw par défaut. Si la CLI peut consommer une configuration MCP, inscrivez-la explicitement :| Mode | Utilisation |
|---|---|
claude-config-file | CLI qui acceptent un fichier de configuration MCP |
codex-config-overrides | CLI qui acceptent des remplacements de configuration dans argv |
gemini-system-settings | CLI qui lisent les paramètres MCP depuis leur répertoire de paramètres système |
nativeToolMode: "always-on" afin qu’OpenClaw puisse échouer de manière fermée lorsqu’un appelant exige l’absence d’outils natifs.
Configuration utilisateur
Les utilisateurs peuvent remplacer toute valeur par défaut du backend :command lorsque le binaire se trouve hors de PATH.
Vérification
Pour les plugins intégrés, ajoutez un test ciblé autour du générateur et de l’enregistrement de configuration, puis exécutez la voie de test ciblée du plugin :Checklist
package.json possède openclaw.extensions et des entrées runtime compilées pour les paquets publiésopenclaw.plugin.json déclare cliBackends et un activation.onStartup intentionnelsetup.cliBackends est présent lorsque la configuration/découverte de modèle doit voir le backend à froidapi.registerCliBackend(...) utilise le même id de backend que le manifesteLes remplacements utilisateur sous
agents.defaults.cliBackends.<id> gagnent toujoursLes paramètres de session, de prompt système, d’image et d’analyseur de sortie correspondent au vrai contrat de la CLI
Des tests ciblés et au moins un smoke test CLI live prouvent le chemin du backend
Associé
- Backends CLI - configuration utilisateur et comportement runtime
- Créer des plugins - bases des paquets et manifestes
- Vue d’ensemble du SDK de plugin - référence de l’API d’enregistrement
- Manifeste de plugin -
cliBackendset descripteurs de configuration - Harnais d’agent - runtimes d’agents externes complets