I plugin backend CLI consentono a OpenClaw di chiamare una CLI AI locale come backend di inferenza testuale. Il backend appare come prefisso provider nei riferimenti modello:Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Se il servizio upstream espone una normale API modello HTTP, scrivi invece un
plugin provider. Se il runtime upstream
gestisce sessioni agente complete, eventi tool, compaction o stato di task in
background, usa un agent harness.
Cosa gestisce il plugin
Un plugin backend CLI ha tre contratti:| Contratto | File | Scopo |
|---|---|---|
| Entry del package | package.json | Punta OpenClaw al modulo runtime del plugin |
| Proprietà manifest | openclaw.plugin.json | Dichiara l’id backend prima del caricamento del runtime |
| Registrazione runtime | index.ts | Chiama api.registerCliBackend(...) con i default comando |
api.registerCliBackend(...).
Plugin backend minimale
Crea i metadati del package
package.json
./src/index.ts, aggiungi
openclaw.runtimeExtensions che punta al peer JavaScript compilato. Vedi
Entry point.Dichiara la proprietà del backend
openclaw.plugin.json
cliBackends è l’elenco di proprietà runtime. Consente a OpenClaw di
caricare automaticamente il plugin quando la configurazione o la selezione
del modello menziona acme-cli/....setup.cliBackends è la superficie di setup descriptor-first. Aggiungila
quando discovery dei modelli, onboarding o stato devono riconoscere il
backend senza caricare il runtime del plugin. Usa requiresRuntime: false
solo quando quei descrittori statici sono sufficienti per il setup.Forma della configurazione
CliBackendConfig descrive come OpenClaw deve avviare e analizzare la CLI:
| Campo | Uso |
|---|---|
command | Nome binario o percorso comando assoluto |
args | Argv base per esecuzioni nuove |
resumeArgs | Argv alternativo per sessioni riprese; supporta {sessionId} |
output / resumeOutput | Parser: json, jsonl o text |
input | Trasporto prompt: arg o stdin |
modelArg | Flag usato prima dell’id modello |
modelAliases | Mappa gli id modello OpenClaw agli id nativi della CLI |
sessionArg / sessionArgs | Come passare un id sessione |
sessionMode | always, existing o none |
sessionIdFields | Campi JSON che OpenClaw legge dall’output della CLI |
systemPromptArg / systemPromptFileArg | Trasporto del prompt di sistema |
systemPromptWhen | first, always o never |
imageArg / imageMode | Supporto percorso immagine |
serialize | Mantiene ordinate le esecuzioni dello stesso backend |
reliability.watchdog | Regolazione timeout senza output |
Hook backend avanzati
CliBackendPlugin può anche definire:
| Hook | Uso |
|---|---|
normalizeConfig(config, context) | Riscrive la configurazione utente legacy dopo il merge |
resolveExecutionArgs(ctx) | Aggiunge flag con ambito richiesta come il thinking effort |
prepareExecution(ctx) | Crea bridge temporanei di auth o configurazione prima dell’avvio |
transformSystemPrompt(ctx) | Applica una trasformazione finale del prompt di sistema specifica della CLI |
textTransforms | Sostituzioni bidirezionali prompt/output |
defaultAuthProfileId | Preferisce un profilo auth OpenClaw specifico |
authEpochMode | Decide come le modifiche auth invalidano le sessioni CLI archiviate |
nativeToolMode | Dichiara se la CLI ha strumenti nativi sempre attivi |
bundleMcp / bundleMcpMode | Abilita il bridge tool MCP loopback di OpenClaw |
Bridge tool MCP
I backend CLI non ricevono i tool OpenClaw per impostazione predefinita. Se la CLI può consumare una configurazione MCP, abilitala esplicitamente:| Modalità | Uso |
|---|---|
claude-config-file | CLI che accettano un file di configurazione MCP |
codex-config-overrides | CLI che accettano override di configurazione su argv |
gemini-system-settings | CLI che leggono impostazioni MCP dalla propria directory impostazioni di sistema |
nativeToolMode: "always-on" così OpenClaw può fallire chiuso quando un
chiamante richiede nessun tool nativo.
Configurazione utente
Gli utenti possono sovrascrivere qualsiasi default del backend:command quando il binario è fuori da PATH.
Verifica
Per i plugin bundled, aggiungi un test mirato intorno al builder e alla registrazione setup, quindi esegui la lane di test mirata del plugin:Checklist
package.json ha openclaw.extensions e entry runtime compilate per i package pubblicatiopenclaw.plugin.json dichiara cliBackends e activation.onStartup intenzionalesetup.cliBackends è presente quando setup/discovery dei modelli deve vedere il backend a freddoapi.registerCliBackend(...) usa lo stesso id backend del manifestGli override utente sotto
agents.defaults.cliBackends.<id> continuano a prevalereLe impostazioni sessione, prompt di sistema, immagine e parser output corrispondono al contratto reale della CLI
Test mirati e almeno uno smoke CLI live provano il percorso backend
Correlati
- Backend CLI - configurazione utente e comportamento runtime
- Creare plugin - basi di package e manifest
- Panoramica del Plugin SDK - riferimento API di registrazione
- Manifest del plugin -
cliBackendse descrittori setup - Agent harness - runtime agente esterni completi