OpenClaw mantém contratos de plugins mais antigos conectados por meio de adaptadores de compatibilidade nomeados antes de removê-los. Isso protege plugins agrupados e externos existentes enquanto os contratos do SDK, manifesto, configuração, config e runtime do agente evoluem.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.
Registro de compatibilidade
Os contratos de compatibilidade de plugins são rastreados no registro central emsrc/plugins/compat/registry.ts.
Cada registro tem:
- um código de compatibilidade estável
- status:
active,deprecated,removal-pendingouremoved - proprietário: SDK, config, configuração, canal, provedor, execução de plugin, runtime do agente ou core
- datas de introdução e depreciação quando aplicável
- orientação de substituição
- docs, diagnósticos e testes que cobrem o comportamento antigo e novo
src/commands/doctor/shared/deprecation-compat.ts. Esses registros cobrem
formatos antigos de config, layouts de registro de instalação e shims de reparo
que talvez precisem permanecer disponíveis depois que o caminho de
compatibilidade de runtime for removido.
Varreduras de release devem verificar ambos os registros. Não exclua uma
migração do Doctor apenas porque o registro correspondente de compatibilidade de
runtime ou config expirou; primeiro verifique se não há nenhum caminho de
atualização com suporte que ainda precise do reparo. Revalide também cada
anotação de substituição durante o planejamento da release, porque a propriedade
de plugins e a superfície de config podem mudar à medida que provedores e canais
saem do core.
Pacote do inspetor de plugins
O inspetor de plugins deve ficar fora do repositório principal do OpenClaw como um pacote/repositório separado, apoiado pelos contratos versionados de compatibilidade e manifesto. A CLI do primeiro dia deve ser:- validação de manifesto/esquema
- a versão de compatibilidade de contrato que está sendo verificada
- verificações de metadados de instalação/origem
- verificações de importação de caminho frio
- avisos de depreciação e compatibilidade
--json para saída estável legível por máquina em anotações de CI. O core do
OpenClaw deve expor contratos e fixtures que o inspetor possa consumir, mas não
deve publicar o binário do inspetor a partir do pacote principal openclaw.
Linha de aceitação para mantenedores
Use Blacksmith Testbox para a linha de aceitação do pacote instalável ao validar o inspetor externo contra pacotes de plugins do OpenClaw. Execute a partir de um checkout limpo do OpenClaw depois que o pacote for compilado:Política de depreciação
O OpenClaw não deve remover um contrato de plugin documentado na mesma release que introduz sua substituição. A sequência de migração é:- Adicione o novo contrato.
- Mantenha o comportamento antigo conectado por meio de um adaptador de compatibilidade nomeado.
- Emita diagnósticos ou avisos quando autores de plugins puderem agir.
- Documente a substituição e o cronograma.
- Teste os caminhos antigo e novo.
- Aguarde durante a janela de migração anunciada.
- Remova somente com aprovação explícita de release com breaking change.
active.
Áreas de compatibilidade atuais
Os registros de compatibilidade atuais incluem:- importações amplas legadas do SDK, como
openclaw/plugin-sdk/compat - formatos legados de plugin somente com hooks e
before_agent_start - pontos de entrada legados de plugin
activate(api)enquanto plugins migram pararegister(api) - aliases legados do SDK, como
openclaw/extension-api,openclaw/plugin-sdk/channel-runtime, construtores de statusopenclaw/plugin-sdk/command-auth,openclaw/plugin-sdk/test-utils(substituídos por subcaminhos de teste focados deopenclaw/plugin-sdk/*) e os aliases de tipoClawdbotConfig/OpenClawSchemaType - comportamento de allowlist e ativação de plugins agrupados
- metadados legados de manifesto de variáveis de ambiente de provedor/canal
- hooks legados de plugins de provedor e aliases de tipo enquanto provedores migram para hooks explícitos de catálogo, autenticação, raciocínio, reprodução e transporte
- aliases legados de runtime, como
api.runtime.taskFlow,api.runtime.subagent.getSession,api.runtime.stte os obsoletosapi.runtime.config.loadConfig()/api.runtime.config.writeConfigFile(...) - registro dividido legado de plugin de memória enquanto plugins de memória migram
para
registerMemoryCapability - helpers legados do SDK de canal para esquemas de mensagens nativas, bloqueio por menções, formatação de envelope de entrada e aninhamento de capacidade de aprovação
- aliases legados de chave de rota de canal e helper de destino comparável enquanto
plugins migram para
openclaw/plugin-sdk/channel-route - dicas de ativação que estão sendo substituídas por propriedade de contribuições de manifesto
- fallback de runtime de
setup-apienquanto descritores de configuração migram para metadados friossetup.requiresRuntime: false - hooks
discoveryde provedor enquanto hooks de catálogo de provedor migram paracatalog.run(...) - metadados de canal
showConfigured/showInSetupenquanto pacotes de canal migram paraopenclaw.channel.exposure - chaves legadas de config de política de runtime enquanto o Doctor migra operadores
para
agentRuntime - fallback gerado de metadados de config de canal agrupado enquanto metadados
channelConfigscom registro primeiro são lançados - flags de ambiente persistidas de desativação do registro de plugins e migração de
instalação enquanto fluxos de reparo migram operadores para
openclaw plugins registry --refresheopenclaw doctor --fix - caminhos legados de config de pesquisa web, busca web e x_search pertencentes a
plugins enquanto o Doctor os migra para
plugins.entries.<plugin>.config - config autorada legada de
plugins.installse aliases de caminho de carregamento de plugins agrupados enquanto metadados de instalação migram para o registro de plugins gerenciado por estado
Notas de release
As notas de release devem incluir depreciações futuras de plugins com datas-alvo e links para docs de migração. Esse aviso precisa acontecer antes que um caminho de compatibilidade passe pararemoval-pending ou removed.