Os plugins de backend CLI permitem que o OpenClaw chame uma CLI de IA local como um backend de inferência de texto. O backend aparece como um prefixo de provedor em refs de modelo: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.
Se o serviço upstream expõe uma API HTTP normal de modelo, escreva um
Plugin de provedor em vez disso. Se o runtime
upstream possui sessões completas de agente, eventos de ferramenta, Compaction
ou estado de tarefas em segundo plano, use um harness de agente.
O que o Plugin possui
Um Plugin de backend CLI tem três contratos:| Contrato | Arquivo | Finalidade |
|---|---|---|
| Entrada do pacote | package.json | Aponta o OpenClaw para o módulo de runtime do Plugin |
| Propriedade do manifesto | openclaw.plugin.json | Declara o id do backend antes do carregamento do runtime |
| Registro em runtime | index.ts | Chama api.registerCliBackend(...) com padrões de comando |
api.registerCliBackend(...).
Plugin de backend mínimo
Criar metadados do pacote
package.json
./src/index.ts, adicione openclaw.runtimeExtensions apontando para o par JavaScript compilado. Consulte Pontos de entrada.Declarar propriedade do backend
openclaw.plugin.json
cliBackends é a lista de propriedade em runtime. Ela permite que o OpenClaw carregue automaticamente o Plugin quando a configuração ou a seleção de modelo mencionar acme-cli/....setup.cliBackends é a superfície de configuração orientada primeiro por descritor. Adicione-a quando descoberta de modelo, onboarding ou status devem reconhecer o backend sem carregar o runtime do Plugin. Use requiresRuntime: false somente quando esses descritores estáticos forem suficientes para a configuração.Formato da configuração
CliBackendConfig descreve como o OpenClaw deve iniciar e analisar a CLI:
| Campo | Uso |
|---|---|
command | Nome do binário ou caminho absoluto do comando |
args | argv base para execuções novas |
resumeArgs | argv alternativa para sessões retomadas; aceita {sessionId} |
output / resumeOutput | Parser: json, jsonl ou text |
input | Transporte do prompt: arg ou stdin |
modelArg | Flag usada antes do id do modelo |
modelAliases | Mapeia ids de modelo do OpenClaw para ids nativos da CLI |
sessionArg / sessionArgs | Como passar um id de sessão |
sessionMode | always, existing ou none |
sessionIdFields | Campos JSON que o OpenClaw lê da saída da CLI |
systemPromptArg / systemPromptFileArg | Transporte do prompt de sistema |
systemPromptWhen | first, always ou never |
imageArg / imageMode | Suporte a caminho de imagem |
serialize | Mantém execuções do mesmo backend ordenadas |
reliability.watchdog | Ajuste de timeout sem saída |
Hooks avançados de backend
CliBackendPlugin também pode definir:
| Hook | Uso |
|---|---|
normalizeConfig(config, context) | Reescreve configuração legada do usuário após a mesclagem |
resolveExecutionArgs(ctx) | Adiciona flags com escopo da solicitação, como esforço de raciocínio |
prepareExecution(ctx) | Cria pontes temporárias de autenticação ou configuração antes da inicialização |
transformSystemPrompt(ctx) | Aplica uma transformação final específica da CLI ao prompt de sistema |
textTransforms | Substituições bidirecionais de prompt/saída |
defaultAuthProfileId | Prefere um perfil de autenticação específico do OpenClaw |
authEpochMode | Decide como mudanças de autenticação invalidam sessões CLI armazenadas |
nativeToolMode | Declara se a CLI tem ferramentas nativas sempre ativas |
bundleMcp / bundleMcpMode | Opta por usar a ponte de ferramentas MCP de loopback do OpenClaw |
Ponte de ferramentas MCP
Backends CLI não recebem ferramentas do OpenClaw por padrão. Se a CLI puder consumir uma configuração MCP, opte explicitamente:| Modo | Uso |
|---|---|
claude-config-file | CLIs que aceitam um arquivo de configuração MCP |
codex-config-overrides | CLIs que aceitam substituições de configuração em argv |
gemini-system-settings | CLIs que leem configurações MCP do diretório de configurações do sistema |
nativeToolMode: "always-on" para que o OpenClaw possa falhar fechado quando um chamador exigir ausência de ferramentas nativas.
Configuração do usuário
Usuários podem substituir qualquer padrão de backend:command quando o binário está fora de PATH.
Verificação
Para plugins empacotados, adicione um teste focado no builder e no registro de configuração, depois execute a faixa de testes direcionada do Plugin:Checklist
package.json tem openclaw.extensions e entradas de runtime compiladas para pacotes publicadosopenclaw.plugin.json declara cliBackends e activation.onStartup intencionalsetup.cliBackends está presente quando configuração/descoberta de modelo deve ver o backend a frioapi.registerCliBackend(...) usa o mesmo id de backend que o manifestoSubstituições do usuário em
agents.defaults.cliBackends.<id> ainda vencemConfigurações de sessão, prompt de sistema, imagem e parser de saída correspondem ao contrato real da CLI
Testes direcionados e ao menos uma fumaça CLI ao vivo comprovam o caminho do backend
Relacionados
- Backends CLI - configuração do usuário e comportamento em runtime
- Criação de plugins - fundamentos de pacote e manifesto
- Visão geral do SDK de Plugin - referência da API de registro
- Manifesto do Plugin -
cliBackendse descritores de configuração - Harness de agente - runtimes completos de agente externo