Pular para o conteúdo principal

Migração do SDK de Plugin

O OpenClaw migrou de uma ampla camada de compatibilidade retroativa para uma arquitetura moderna de plugins com imports focados e documentados. Se o seu plugin foi criado antes da nova arquitetura, este guia ajuda na migração.

O que está mudando

O sistema antigo de plugins fornecia duas superfícies amplas e abertas que permitiam que plugins importassem qualquer coisa de que precisassem a partir de um único ponto de entrada:
  • openclaw/plugin-sdk/compat — um único import que reexportava dezenas de helpers. Ele foi introduzido para manter plugins mais antigos baseados em hooks funcionando enquanto a nova arquitetura de plugins estava sendo construída.
  • openclaw/extension-api — uma bridge que dava aos plugins acesso direto a helpers do lado do host, como o executor de agente embutido.
Ambas as superfícies agora estão obsoletas. Elas ainda funcionam em runtime, mas novos plugins não devem usá-las, e plugins existentes devem migrar antes que a próxima versão major as remova.
A camada de compatibilidade retroativa será removida em uma futura versão major. Plugins que ainda importarem dessas superfícies vão quebrar quando isso acontecer.

Por que isso mudou

A abordagem antiga causava problemas:
  • Inicialização lenta — importar um helper carregava dezenas de módulos não relacionados
  • Dependências circulares — reexportações amplas facilitavam a criação de ciclos de import
  • Superfície de API pouco clara — não havia como dizer quais exports eram estáveis e quais eram internos
O SDK de plugin moderno corrige isso: cada caminho de import (openclaw/plugin-sdk/\<subpath\>) é um módulo pequeno, autocontido, com um propósito claro e contrato documentado. As seams legadas de conveniência de provedor para canais incluídos também acabaram. Imports como openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, seams helper com marca de canal e openclaw/plugin-sdk/telegram-core eram atalhos privados do mono-repo, não contratos estáveis de plugin. Use subcaminhos genéricos e estreitos do SDK. Dentro do workspace de plugins incluídos, mantenha helpers pertencentes ao provedor no próprio api.ts ou runtime-api.ts desse plugin. Exemplos atuais de provedores incluídos:
  • Anthropic mantém helpers de stream específicos do Claude em sua própria seam api.ts / contract-api.ts
  • OpenAI mantém builders de provedor, helpers de modelo padrão e builders de provedor realtime em seu próprio api.ts
  • OpenRouter mantém o builder de provedor e helpers de onboarding/config em seu próprio api.ts

Como migrar

1

Migrar handlers nativos de aprovação para fatos de capacidade

Plugins de canal com suporte a aprovação agora expõem comportamento nativo de aprovação por meio de approvalCapability.nativeRuntime mais o registro compartilhado de contexto de runtime.Principais mudanças:
  • Substitua approvalCapability.handler.loadRuntime(...) por approvalCapability.nativeRuntime
  • Mova autenticação/entrega específicas de aprovação para fora do wiring legado plugin.auth / plugin.approvals e para approvalCapability
  • ChannelPlugin.approvals foi removido do contrato público de plugin de canal; mova os campos de entrega/nativo/render para approvalCapability
  • plugin.auth permanece apenas para fluxos de login/logout de canal; hooks de autenticação de aprovação ali não são mais lidos pelo core
  • Registre objetos de runtime pertencentes ao canal, como clientes, tokens ou apps Bolt, por meio de openclaw/plugin-sdk/channel-runtime-context
  • Não envie avisos de redirecionamento pertencentes ao plugin a partir de handlers nativos de aprovação; o core agora é responsável por avisos de encaminhamento para outro lugar a partir de resultados reais de entrega
  • Ao passar channelRuntime para createChannelManager(...), forneça uma superfície real de createPluginRuntime().channel. Stubs parciais são rejeitados.
Consulte /plugins/sdk-channel-plugins para o layout atual da capacidade de aprovação.
2

Auditar o comportamento de fallback do wrapper do Windows

Se o seu plugin usa openclaw/plugin-sdk/windows-spawn, wrappers .cmd/.bat não resolvidos no Windows agora falham de forma fechada, a menos que você passe explicitamente allowShellFallback: true.
// Antes
const program = applyWindowsSpawnProgramPolicy({ candidate });

// Depois
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Defina isso apenas para chamadores de compatibilidade confiáveis que
  // aceitam intencionalmente fallback mediado por shell.
  allowShellFallback: true,
});
Se o seu chamador não depender intencionalmente de fallback por shell, não defina allowShellFallback e trate o erro lançado.
3

Encontrar imports obsoletos

Pesquise no seu plugin imports vindos de qualquer uma das superfícies obsoletas:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Substituir por imports focados

Cada export da superfície antiga corresponde a um caminho de import moderno específico:
// Antes (camada obsoleta de compatibilidade retroativa)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// Depois (imports modernos e focados)
import { createChannelReplyPipeline } from "openclaw/plugin-sdk/channel-reply-pipeline";
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
import { resolveControlCommandGate } from "openclaw/plugin-sdk/command-auth";
Para helpers do lado do host, use o runtime de plugin injetado em vez de importar diretamente:
// Antes (bridge obsoleta extension-api)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// Depois (runtime injetado)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
O mesmo padrão se aplica a outros helpers legados da bridge:
Import antigoEquivalente moderno
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
helpers de armazenamento de sessãoapi.runtime.agent.session.*
5

Compilar e testar

pnpm build
pnpm test -- my-plugin/

Referência de caminhos de import

Caminho de importFinalidadePrincipais exports
plugin-sdk/plugin-entryHelper canônico de entrada de plugindefinePluginEntry
plugin-sdk/coreReexportação guarda-chuva legada para definições/builders de entrada de canaldefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExport do esquema raiz de configuraçãoOpenClawSchema
plugin-sdk/provider-entryHelper de entrada de provedor únicodefineSingleProviderPluginEntry
plugin-sdk/channel-coreDefinições e builders focados de entrada de canaldefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupHelpers compartilhados do assistente de configuraçãoPrompts de allowlist, builders de status de configuração
plugin-sdk/setup-runtimeHelpers de runtime em tempo de configuraçãoAdaptadores de patch de configuração seguros para import, helpers de nota de lookup, promptResolvedAllowFrom, splitSetupEntries, proxies de configuração delegada
plugin-sdk/setup-adapter-runtimeHelpers de adaptador de configuraçãocreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelpers de tooling de configuraçãoformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelpers de múltiplas contasHelpers de lista/configuração de conta/porta de ação
plugin-sdk/account-idHelpers de ID de contaDEFAULT_ACCOUNT_ID, normalização de ID de conta
plugin-sdk/account-resolutionHelpers de lookup de contaHelpers de lookup de conta + fallback padrão
plugin-sdk/account-helpersHelpers estreitos de contaHelpers de lista de conta/ação de conta
plugin-sdk/channel-setupAdaptadores do assistente de configuraçãocreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, mais DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitivas de pareamento de DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineWiring de prefixo de resposta + digitaçãocreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFábricas de adaptadores de configuraçãocreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaBuilders de esquema de configuraçãoTipos de esquema de configuração de canal
plugin-sdk/telegram-command-configHelpers de configuração de comando do TelegramNormalização de nome de comando, trimming de descrição, validação de duplicidade/conflito
plugin-sdk/channel-policyResolução de política de grupo/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleRastreamento de status de contacreateAccountStatusSink
plugin-sdk/inbound-envelopeHelpers de envelope de entradaHelpers compartilhados de rota + builder de envelope
plugin-sdk/inbound-reply-dispatchHelpers de resposta de entradaHelpers compartilhados de registrar e despachar
plugin-sdk/messaging-targetsParsing de destinos de mensagensHelpers de parsing/correspondência de destino
plugin-sdk/outbound-mediaHelpers de mídia de saídaCarregamento compartilhado de mídia de saída
plugin-sdk/outbound-runtimeHelpers de runtime de saídaHelpers de identidade de saída/delegado de envio
plugin-sdk/thread-bindings-runtimeHelpers de vínculo de threadCiclo de vida de vínculo de thread e helpers de adaptador
plugin-sdk/agent-media-payloadHelpers legados de payload de mídiaBuilder de payload de mídia de agente para layouts legados de campo
plugin-sdk/channel-runtimeShim obsoleto de compatibilidadeApenas utilitários legados de runtime de canal
plugin-sdk/channel-send-resultTipos de resultado de envioTipos de resultado de resposta
plugin-sdk/runtime-storeArmazenamento persistente de plugincreatePluginRuntimeStore
plugin-sdk/runtimeHelpers amplos de runtimeHelpers de runtime/logging/backup/instalação de plugin
plugin-sdk/runtime-envHelpers estreitos de env de runtimeLogger/env de runtime, helpers de timeout, retry e backoff
plugin-sdk/plugin-runtimeHelpers compartilhados de runtime de pluginHelpers de comandos/hooks/http/interativo de plugin
plugin-sdk/hook-runtimeHelpers de pipeline de hookHelpers compartilhados de pipeline de webhook/hook interno
plugin-sdk/lazy-runtimeHelpers de runtime lazycreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeHelpers de processoHelpers compartilhados de execução
plugin-sdk/cli-runtimeHelpers de runtime de CLIFormatação de comando, esperas, helpers de versão
plugin-sdk/gateway-runtimeHelpers de gatewayCliente de gateway e helpers de patch de status de canal
plugin-sdk/config-runtimeHelpers de configuraçãoHelpers de carregar/gravar configuração
plugin-sdk/telegram-command-configHelpers de comando do TelegramHelpers de validação de comandos do Telegram estáveis para fallback quando a superfície de contrato do Telegram incluído não está disponível
plugin-sdk/approval-runtimeHelpers de prompt de aprovaçãoPayload de aprovação exec/plugin, helpers de perfil/capacidade de aprovação, helpers nativos de routing/runtime de aprovação
plugin-sdk/approval-auth-runtimeHelpers de autenticação de aprovaçãoResolução de aprovador, autenticação de ação no mesmo chat
plugin-sdk/approval-client-runtimeHelpers de cliente de aprovaçãoHelpers de perfil/filtro de aprovação nativa exec
plugin-sdk/approval-delivery-runtimeHelpers de entrega de aprovaçãoAdaptadores de capacidade/entrega de aprovação nativa
plugin-sdk/approval-gateway-runtimeHelpers de gateway de aprovaçãoHelper compartilhado de resolução de gateway de aprovação
plugin-sdk/approval-handler-adapter-runtimeHelpers de adaptador de aprovaçãoHelpers leves de carregamento de adaptador nativo de aprovação para entrypoints quentes de canal
plugin-sdk/approval-handler-runtimeHelpers de handler de aprovaçãoHelpers mais amplos de runtime de handler de aprovação; prefira as seams mais estreitas de adaptador/gateway quando forem suficientes
plugin-sdk/approval-native-runtimeHelpers de alvo de aprovaçãoHelpers nativos de vínculo de alvo/conta de aprovação
plugin-sdk/approval-reply-runtimeHelpers de resposta de aprovaçãoHelpers de payload de resposta de aprovação exec/plugin
plugin-sdk/channel-runtime-contextHelpers de contexto de runtime de canalHelpers genéricos de registrar/obter/observar contexto de runtime de canal
plugin-sdk/security-runtimeHelpers de segurançaHelpers compartilhados de confiança, controle de DM, conteúdo externo e coleta de segredo
plugin-sdk/ssrf-policyHelpers de política SSRFHelpers de allowlist de host e política de rede privada
plugin-sdk/ssrf-runtimeHelpers de runtime SSRFHelpers de dispatcher fixado, fetch protegido, política SSRF
plugin-sdk/collection-runtimeHelpers de cache limitadopruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelpers de porta de diagnósticoisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelpers de formatação de erroformatUncaughtError, isApprovalNotFoundError, helpers de grafo de erro
plugin-sdk/fetch-runtimeHelpers de fetch/proxy encapsuladosresolveFetch, helpers de proxy
plugin-sdk/host-runtimeHelpers de normalização de hostnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHelpers de retryRetryConfig, retryAsync, executores de política
plugin-sdk/allow-fromFormatação de allowlistformatAllowFromLowercase
plugin-sdk/allowlist-resolutionMapeamento de entrada de allowlistmapAllowlistResolutionInputs
plugin-sdk/command-authPorta de comando e helpers de superfície de comandoresolveControlCommandGate, helpers de autorização do remetente, helpers de registro de comandos
plugin-sdk/command-statusRenderizadores de status/ajuda de comandobuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputParsing de entrada secretaHelpers de entrada secreta
plugin-sdk/webhook-ingressHelpers de requisição de webhookUtilitários de destino de webhook
plugin-sdk/webhook-request-guardsHelpers de proteção de corpo de webhookHelpers de leitura/limite de corpo de requisição
plugin-sdk/reply-runtimeRuntime compartilhado de respostaDespacho de entrada, heartbeat, planejador de resposta, fragmentação
plugin-sdk/reply-dispatch-runtimeHelpers estreitos de despacho de respostaFinalizar + helpers de despacho de provedor
plugin-sdk/reply-historyHelpers de histórico de respostabuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanejamento de referência de respostacreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelpers de chunk de respostaHelpers de fragmentação de texto/markdown
plugin-sdk/session-store-runtimeHelpers de armazenamento de sessãoHelpers de caminho de armazenamento + updated-at
plugin-sdk/state-pathsHelpers de caminhos de estadoHelpers de diretório de estado e OAuth
plugin-sdk/routingHelpers de routing/chave de sessãoresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, helpers de normalização de chave de sessão
plugin-sdk/status-helpersHelpers de status de canalBuilders de resumo de status de canal/conta, padrões de estado de runtime, helpers de metadados de issue
plugin-sdk/target-resolver-runtimeHelpers de resolvedor de destinoHelpers compartilhados de resolvedor de destino
plugin-sdk/string-normalization-runtimeHelpers de normalização de stringHelpers de normalização de slug/string
plugin-sdk/request-urlHelpers de URL de requisiçãoExtrair URLs string de entradas semelhantes a request
plugin-sdk/run-commandHelpers de comando cronometradoExecutor de comando cronometrado com stdout/stderr normalizados
plugin-sdk/param-readersLeitores de parâmetroLeitores comuns de parâmetros de ferramenta/CLI
plugin-sdk/tool-payloadExtração de payload de ferramentaExtrair payloads normalizados de objetos de resultado de ferramenta
plugin-sdk/tool-sendExtração de envio de ferramentaExtrair campos canônicos de destino de envio dos args da ferramenta
plugin-sdk/temp-pathHelpers de caminho temporárioHelpers compartilhados de caminho temporário para download
plugin-sdk/logging-coreHelpers de loggingLogger de subsistema e helpers de redação
plugin-sdk/markdown-table-runtimeHelpers de tabela markdownHelpers de modo de tabela markdown
plugin-sdk/reply-payloadTipos de resposta de mensagemTipos de payload de resposta
plugin-sdk/provider-setupHelpers curados de configuração de provedor local/self-hostedHelpers de descoberta/configuração de provedor self-hosted
plugin-sdk/self-hosted-provider-setupHelpers focados de configuração de provedor self-hosted compatível com OpenAIOs mesmos helpers de descoberta/configuração de provedor self-hosted
plugin-sdk/provider-auth-runtimeHelpers de autenticação de runtime de provedorHelpers de resolução de chave de API em runtime
plugin-sdk/provider-auth-api-keyHelpers de configuração de chave de API do provedorHelpers de onboarding/gravação de perfil de chave de API
plugin-sdk/provider-auth-resultHelpers de resultado de autenticação de provedorBuilder padrão de resultado de autenticação OAuth
plugin-sdk/provider-auth-loginHelpers de login interativo de provedorHelpers compartilhados de login interativo
plugin-sdk/provider-env-varsHelpers de variáveis de env de provedorHelpers de lookup de variáveis de env de autenticação do provedor
plugin-sdk/provider-model-sharedHelpers compartilhados de modelo/replay de provedorProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, builders compartilhados de política de replay, helpers de endpoint de provedor e helpers de normalização de ID de modelo
plugin-sdk/provider-catalog-sharedHelpers compartilhados de catálogo de provedorfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardPatches de onboarding de provedorHelpers de configuração de onboarding
plugin-sdk/provider-httpHelpers HTTP de provedorHelpers genéricos de HTTP/capacidade de endpoint de provedor
plugin-sdk/provider-web-fetchHelpers de web-fetch de provedorHelpers de registro/cache de provedor web-fetch
plugin-sdk/provider-web-search-config-contractHelpers de configuração de web search de provedorHelpers estreitos de configuração/credencial de web search para provedores que não precisam de wiring de habilitação de plugin
plugin-sdk/provider-web-search-contractHelpers de contrato de web search de provedorHelpers estreitos de contrato de configuração/credencial de web search, como createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig e setters/getters de credenciais com escopo
plugin-sdk/provider-web-searchHelpers de web search de provedorHelpers de registro/cache/runtime de provedor web-search
plugin-sdk/provider-toolsHelpers de compat de ferramenta/esquema de provedorProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, limpeza + diagnósticos de esquema Gemini e helpers de compat xAI como resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelpers de uso de provedorfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage e outros helpers de uso de provedor
plugin-sdk/provider-streamHelpers de wrapper de stream de provedorProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, tipos de wrapper de stream e helpers compartilhados de wrapper Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueFila assíncrona ordenadaKeyedAsyncQueue
plugin-sdk/media-runtimeHelpers compartilhados de mídiaHelpers de fetch/transform/store de mídia mais builders de payload de mídia
plugin-sdk/media-generation-runtimeHelpers compartilhados de geração de mídiaHelpers compartilhados de failover, seleção de candidatos e mensagens de modelo ausente para geração de imagem/vídeo/música
plugin-sdk/media-understandingHelpers de media-understandingTipos de provedor de compreensão de mídia mais exports de helper voltados ao provedor para imagem/áudio
plugin-sdk/text-runtimeHelpers compartilhados de textoRemoção de texto visível ao assistente, helpers de renderização/fragmentação/tabela markdown, helpers de redação, helpers de tag de diretiva, utilitários de texto seguro e helpers relacionados de texto/logging
plugin-sdk/text-chunkingHelpers de fragmentação de textoHelper de fragmentação de texto de saída
plugin-sdk/speechHelpers de speechTipos de provedor de speech mais exports de helper voltados ao provedor para diretiva, registro e validação
plugin-sdk/speech-coreCore compartilhado de speechTipos de provedor de speech, registro, diretivas, normalização
plugin-sdk/realtime-transcriptionHelpers de transcrição em tempo realTipos de provedor e helpers de registro
plugin-sdk/realtime-voiceHelpers de voz em tempo realTipos de provedor e helpers de registro
plugin-sdk/image-generation-coreCore compartilhado de geração de imagemTipos, failover, autenticação e helpers de registro de geração de imagem
plugin-sdk/music-generationHelpers de geração de músicaTipos de provedor/solicitação/resultado de geração de música
plugin-sdk/music-generation-coreCore compartilhado de geração de músicaTipos, helpers de failover, lookup de provedor e parsing de referência de modelo para geração de música
plugin-sdk/video-generationHelpers de geração de vídeoTipos de provedor/solicitação/resultado de geração de vídeo
plugin-sdk/video-generation-coreCore compartilhado de geração de vídeoTipos, helpers de failover, lookup de provedor e parsing de referência de modelo para geração de vídeo
plugin-sdk/interactive-runtimeHelpers de resposta interativaNormalização/redução de payload de resposta interativa
plugin-sdk/channel-config-primitivesPrimitivas de configuração de canalPrimitivas estreitas de esquema de configuração de canal
plugin-sdk/channel-config-writesHelpers de gravação de configuração de canalHelpers de autorização de gravação de configuração de canal
plugin-sdk/channel-plugin-commonPrelúdio compartilhado de canalExports compartilhados do prelúdio de plugin de canal
plugin-sdk/channel-statusHelpers de status de canalHelpers compartilhados de snapshot/resumo de status de canal
plugin-sdk/allowlist-config-editHelpers de configuração de allowlistHelpers de editar/ler configuração de allowlist
plugin-sdk/group-accessHelpers de acesso de grupoHelpers compartilhados de decisão de acesso de grupo
plugin-sdk/direct-dmHelpers de DM diretoHelpers compartilhados de autenticação/proteção de DM direto
plugin-sdk/extension-sharedHelpers compartilhados de extensãoPrimitivas helper de canal/status passivo e proxy ambiente
plugin-sdk/webhook-targetsHelpers de destino de webhookRegistro de destino de webhook e helpers de instalação de rota
plugin-sdk/webhook-pathHelpers de caminho de webhookHelpers de normalização de caminho de webhook
plugin-sdk/web-mediaHelpers compartilhados de mídia webHelpers de carregamento de mídia remota/local
plugin-sdk/zodReexportação de Zodzod reexportado para consumidores do SDK de plugin
plugin-sdk/memory-coreHelpers incluídos de memory-coreSuperfície helper de gerenciador/configuração/arquivo/CLI de memória
plugin-sdk/memory-core-engine-runtimeFachada de runtime do mecanismo de memóriaFachada de runtime de índice/pesquisa de memória
plugin-sdk/memory-core-host-engine-foundationMecanismo foundation do host de memóriaExports do mecanismo foundation do host de memória
plugin-sdk/memory-core-host-engine-embeddingsMecanismo de embeddings do host de memóriaExports do mecanismo de embeddings do host de memória
plugin-sdk/memory-core-host-engine-qmdMecanismo QMD do host de memóriaExports do mecanismo QMD do host de memória
plugin-sdk/memory-core-host-engine-storageMecanismo de armazenamento do host de memóriaExports do mecanismo de armazenamento do host de memória
plugin-sdk/memory-core-host-multimodalHelpers multimodais do host de memóriaHelpers multimodais do host de memória
plugin-sdk/memory-core-host-queryHelpers de consulta do host de memóriaHelpers de consulta do host de memória
plugin-sdk/memory-core-host-secretHelpers de segredo do host de memóriaHelpers de segredo do host de memória
plugin-sdk/memory-core-host-eventsHelpers de journal de eventos do host de memóriaHelpers de journal de eventos do host de memória
plugin-sdk/memory-core-host-statusHelpers de status do host de memóriaHelpers de status do host de memória
plugin-sdk/memory-core-host-runtime-cliRuntime CLI do host de memóriaHelpers de runtime CLI do host de memória
plugin-sdk/memory-core-host-runtime-coreRuntime core do host de memóriaHelpers de runtime core do host de memória
plugin-sdk/memory-core-host-runtime-filesHelpers de arquivo/runtime do host de memóriaHelpers de arquivo/runtime do host de memória
plugin-sdk/memory-host-coreAlias de runtime core do host de memóriaAlias neutro em relação ao fornecedor para helpers de runtime core do host de memória
plugin-sdk/memory-host-eventsAlias de journal de eventos do host de memóriaAlias neutro em relação ao fornecedor para helpers de journal de eventos do host de memória
plugin-sdk/memory-host-filesAlias de arquivo/runtime do host de memóriaAlias neutro em relação ao fornecedor para helpers de arquivo/runtime do host de memória
plugin-sdk/memory-host-markdownHelpers de markdown gerenciadoHelpers compartilhados de markdown gerenciado para plugins adjacentes à memória
plugin-sdk/memory-host-searchFachada de pesquisa de memória ativaFachada lazy de runtime do gerenciador de pesquisa de memória ativa
plugin-sdk/memory-host-statusAlias de status do host de memóriaAlias neutro em relação ao fornecedor para helpers de status do host de memória
plugin-sdk/memory-lancedbHelpers incluídos de memory-lancedbSuperfície helper de memory-lancedb
plugin-sdk/testingUtilitários de testeHelpers e mocks de teste
Esta tabela é intencionalmente o subconjunto comum de migração, não a superfície completa do SDK. A lista completa de mais de 200 entrypoints está em scripts/lib/plugin-sdk-entrypoints.json. Essa lista ainda inclui algumas seams helper de plugins incluídos, como plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup e plugin-sdk/matrix*. Elas continuam exportadas para manutenção e compatibilidade de plugins incluídos, mas são intencionalmente omitidas da tabela comum de migração e não são o destino recomendado para novo código de plugin. A mesma regra se aplica a outras famílias de helper incluídas, como:
  • helpers de suporte a navegador: plugin-sdk/browser-cdp, plugin-sdk/browser-config-runtime, plugin-sdk/browser-config-support, plugin-sdk/browser-control-auth, plugin-sdk/browser-node-runtime, plugin-sdk/browser-profiles, plugin-sdk/browser-security-runtime, plugin-sdk/browser-setup-tools, plugin-sdk/browser-support
  • Matrix: plugin-sdk/matrix*
  • LINE: plugin-sdk/line*
  • IRC: plugin-sdk/irc*
  • superfícies incluídas de helper/plugin como plugin-sdk/googlechat, plugin-sdk/zalouser, plugin-sdk/bluebubbles*, plugin-sdk/mattermost*, plugin-sdk/msteams, plugin-sdk/nextcloud-talk, plugin-sdk/nostr, plugin-sdk/tlon, plugin-sdk/twitch, plugin-sdk/github-copilot-login, plugin-sdk/github-copilot-token, plugin-sdk/diagnostics-otel, plugin-sdk/diffs, plugin-sdk/llm-task, plugin-sdk/thread-ownership e plugin-sdk/voice-call
plugin-sdk/github-copilot-token atualmente expõe a superfície estreita de helper de token DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken e resolveCopilotApiToken. Use o import mais estreito que corresponda à tarefa. Se você não encontrar um export, verifique a fonte em src/plugin-sdk/ ou pergunte no Discord.

Linha do tempo de remoção

QuandoO que acontece
AgoraSuperfícies obsoletas emitem avisos em runtime
Próxima versão majorSuperfícies obsoletas serão removidas; plugins que ainda as usam falharão
Todos os plugins core já foram migrados. Plugins externos devem migrar antes da próxima versão major.

Suprimindo os avisos temporariamente

Defina estas variáveis de ambiente enquanto trabalha na migração:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Isto é uma rota de escape temporária, não uma solução permanente.

Relacionado