Vai al contenuto principale

Migrazione al Plugin SDK

OpenClaw è passato da un ampio livello di retrocompatibilità a una moderna architettura dei plugin con import focalizzati e documentati. Se il tuo plugin è stato creato prima della nuova architettura, questa guida ti aiuta a effettuare la migrazione.

Cosa sta cambiando

Il vecchio sistema dei plugin forniva due superfici molto ampie che permettevano ai plugin di importare tutto ciò di cui avevano bisogno da un unico punto di ingresso:
  • openclaw/plugin-sdk/compat — un singolo import che riesportava decine di helper. È stato introdotto per mantenere funzionanti i vecchi plugin basati su hook mentre veniva sviluppata la nuova architettura dei plugin.
  • openclaw/extension-api — un bridge che forniva ai plugin accesso diretto agli helper lato host, come l’embedded agent runner.
Entrambe le superfici sono ora deprecate. Continuano a funzionare in fase di runtime, ma i nuovi plugin non devono usarle e i plugin esistenti dovrebbero migrare prima che la prossima major release le rimuova.
Il livello di retrocompatibilità verrà rimosso in una futura major release. I plugin che importano ancora da queste superfici smetteranno di funzionare quando ciò accadrà.

Perché è cambiato

Il vecchio approccio causava problemi:
  • Avvio lento — importare un helper caricava decine di moduli non correlati
  • Dipendenze circolari — le riesportazioni ampie rendevano facile creare cicli di import
  • Superficie API poco chiara — non c’era modo di capire quali export fossero stabili e quali interni
Il moderno Plugin SDK risolve questo problema: ogni percorso di import (openclaw/plugin-sdk/\<subpath\>) è un modulo piccolo e autonomo con uno scopo chiaro e un contratto documentato. Anche i legacy provider convenience seams per i canali bundled non esistono più. Import come openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, i channel-branded helper seams e openclaw/plugin-sdk/telegram-core erano scorciatoie private del mono-repo, non contratti stabili per i plugin. Usa invece subpath generici e mirati del SDK. All’interno del workspace dei plugin bundled, mantieni gli helper del provider nel file api.ts o runtime-api.ts di quel plugin. Esempi attuali di provider bundled:
  • Anthropic mantiene gli helper di stream specifici per Claude nel proprio seam api.ts / contract-api.ts
  • OpenAI mantiene i builder del provider, gli helper per il modello predefinito e i builder del provider realtime nel proprio api.ts
  • OpenRouter mantiene il builder del provider e gli helper di onboarding/config nel proprio api.ts

Come effettuare la migrazione

1

Migra gli handler approval-native ai capability facts

I plugin di canale con capacità di approvazione ora espongono il comportamento di approvazione nativo tramite approvalCapability.nativeRuntime insieme al registro condiviso del contesto runtime.Modifiche principali:
  • Sostituisci approvalCapability.handler.loadRuntime(...) con approvalCapability.nativeRuntime
  • Sposta auth/delivery specifici per l’approvazione dal legacy wiring plugin.auth / plugin.approvals a approvalCapability
  • ChannelPlugin.approvals è stato rimosso dal contratto pubblico del channel-plugin; sposta i campi delivery/native/render su approvalCapability
  • plugin.auth rimane solo per i flussi di login/logout del canale; gli hook di auth per l’approvazione presenti lì non vengono più letti dal core
  • Registra gli oggetti runtime posseduti dal canale, come client, token o app Bolt, tramite openclaw/plugin-sdk/channel-runtime-context
  • Non inviare avvisi di reindirizzamento posseduti dal plugin dagli handler di approvazione nativi; il core ora gestisce gli avvisi instradati altrove a partire dai risultati di delivery reali
  • Quando passi channelRuntime a createChannelManager(...), fornisci una vera superficie createPluginRuntime().channel. Gli stub parziali vengono rifiutati.
Vedi /plugins/sdk-channel-plugins per il layout corrente della capability di approvazione.
2

Verifica il comportamento di fallback del wrapper Windows

Se il tuo plugin usa openclaw/plugin-sdk/windows-spawn, i wrapper Windows .cmd/.bat non risolti ora falliscono in modo chiuso a meno che tu non passi esplicitamente allowShellFallback: true.
// Before
const program = applyWindowsSpawnProgramPolicy({ candidate });

// After
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Only set this for trusted compatibility callers that intentionally
  // accept shell-mediated fallback.
  allowShellFallback: true,
});
Se il tuo chiamante non dipende intenzionalmente dal fallback della shell, non impostare allowShellFallback e gestisci invece l’errore generato.
3

Trova gli import deprecati

Cerca nel tuo plugin gli import da una delle due superfici deprecate:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Sostituisci con import focalizzati

Ogni export della vecchia superficie corrisponde a uno specifico percorso di import moderno:
// Before (deprecated backwards-compatibility layer)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// After (modern focused imports)
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";
Per gli helper lato host, usa invece il runtime del plugin iniettato invece di importare direttamente:
// Before (deprecated extension-api bridge)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// After (injected runtime)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Lo stesso schema si applica agli altri helper legacy del bridge:
Vecchio importEquivalente 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
helper del session storeapi.runtime.agent.session.*
5

Compila ed esegui i test

pnpm build
pnpm test -- my-plugin/

Riferimento ai percorsi di import

Percorso di importScopoExport principali
plugin-sdk/plugin-entryHelper canonico per l’entry del plugindefinePluginEntry
plugin-sdk/coreRiesportazione legacy ombrello per definizioni/builder di entry dei canalidefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExport dello schema di configurazione rootOpenClawSchema
plugin-sdk/provider-entryHelper per entry con provider singolodefineSingleProviderPluginEntry
plugin-sdk/channel-coreDefinizioni e builder focalizzati per le entry dei canalidefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupHelper condivisi per la procedura guidata di setupPrompt di allowlist, builder dello stato di setup
plugin-sdk/setup-runtimeHelper runtime per il setupAdapter di patch setup import-safe, helper per note di lookup, promptResolvedAllowFrom, splitSetupEntries, proxy di setup delegati
plugin-sdk/setup-adapter-runtimeHelper per adapter di setupcreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelper per gli strumenti di setupformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelper multi-accountHelper per elenco/configurazione/gate delle azioni degli account
plugin-sdk/account-idHelper per account-idDEFAULT_ACCOUNT_ID, normalizzazione di account-id
plugin-sdk/account-resolutionHelper per la ricerca degli accountHelper per la ricerca degli account + fallback predefinito
plugin-sdk/account-helpersHelper mirati per accountHelper per elenco account/azioni sugli account
plugin-sdk/channel-setupAdapter per la procedura guidata di setupcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, più DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitive di pairing DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineWiring per prefisso della risposta + digitazionecreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFactory per adapter di configurazionecreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaBuilder dello schema di configurazioneTipi dello schema di configurazione del canale
plugin-sdk/telegram-command-configHelper per la configurazione dei comandi TelegramNormalizzazione del nome del comando, trimming della descrizione, validazione di duplicati/conflitti
plugin-sdk/channel-policyRisoluzione delle policy per gruppi/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleTracciamento dello stato dell’accountcreateAccountStatusSink
plugin-sdk/inbound-envelopeHelper per inbound envelopeHelper condivisi per route + builder di envelope
plugin-sdk/inbound-reply-dispatchHelper per le risposte in ingressoHelper condivisi per registrazione e dispatch
plugin-sdk/messaging-targetsParsing dei target di messaggisticaHelper per parsing/matching dei target
plugin-sdk/outbound-mediaHelper per media in uscitaCaricamento condiviso dei media in uscita
plugin-sdk/outbound-runtimeHelper runtime per l’uscitaHelper per identità in uscita/delegati di invio
plugin-sdk/thread-bindings-runtimeHelper per thread-bindingHelper per ciclo di vita dei thread-binding e adapter
plugin-sdk/agent-media-payloadHelper legacy per payload mediaBuilder del payload media dell’agente per layout legacy dei campi
plugin-sdk/channel-runtimeShim di compatibilità deprecatoSolo utility legacy per il runtime del canale
plugin-sdk/channel-send-resultTipi del risultato di invioTipi del risultato di risposta
plugin-sdk/runtime-storeStorage persistente del plugincreatePluginRuntimeStore
plugin-sdk/runtimeHelper runtime ampiHelper per runtime/logging/backup/installazione plugin
plugin-sdk/runtime-envHelper mirati per runtime envLogger/runtime env, helper per timeout, retry e backoff
plugin-sdk/plugin-runtimeHelper runtime condivisi del pluginHelper per comandi/hook/http/interattivi del plugin
plugin-sdk/hook-runtimeHelper per la pipeline degli hookHelper condivisi per pipeline di webhook/hook interni
plugin-sdk/lazy-runtimeHelper per runtime lazycreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeHelper di processoHelper condivisi per exec
plugin-sdk/cli-runtimeHelper runtime per CLIFormattazione dei comandi, attese, helper per versione
plugin-sdk/gateway-runtimeHelper per GatewayClient Gateway e helper per patch dello stato dei canali
plugin-sdk/config-runtimeHelper di configurazioneHelper per caricamento/scrittura della configurazione
plugin-sdk/telegram-command-configHelper per comandi TelegramHelper di validazione dei comandi Telegram stabili con fallback quando la superficie contrattuale del Telegram bundled non è disponibile
plugin-sdk/approval-runtimeHelper per prompt di approvazionePayload di approvazione exec/plugin, helper per capability/profilo di approvazione, helper runtime/routing di approvazione nativa
plugin-sdk/approval-auth-runtimeHelper di auth per l’approvazioneRisoluzione degli approvatori, auth delle azioni nella stessa chat
plugin-sdk/approval-client-runtimeHelper client per l’approvazioneHelper per profili/filtri di approvazione exec nativa
plugin-sdk/approval-delivery-runtimeHelper di delivery per l’approvazioneAdapter per capability/delivery di approvazione nativa
plugin-sdk/approval-gateway-runtimeHelper Gateway per l’approvazioneHelper condiviso per la risoluzione del Gateway di approvazione
plugin-sdk/approval-handler-adapter-runtimeHelper per adapter di approvazioneHelper leggeri per il caricamento di adapter di approvazione nativa per entrypoint hot dei canali
plugin-sdk/approval-handler-runtimeHelper per handler di approvazioneHelper runtime più ampi per handler di approvazione; preferisci i seam adapter/gateway più mirati quando sono sufficienti
plugin-sdk/approval-native-runtimeHelper per target di approvazioneHelper per binding tra target/account di approvazione nativa
plugin-sdk/approval-reply-runtimeHelper per risposte di approvazioneHelper per payload di risposta di approvazione exec/plugin
plugin-sdk/channel-runtime-contextHelper per il contesto runtime del canaleHelper generici per register/get/watch del contesto runtime del canale
plugin-sdk/security-runtimeHelper di sicurezzaHelper condivisi per trust, gating DM, contenuti esterni e raccolta di secret
plugin-sdk/ssrf-policyHelper per policy SSRFHelper per allowlist degli host e policy di rete privata
plugin-sdk/ssrf-runtimeHelper runtime SSRFHelper per pinned-dispatcher, fetch protetto e policy SSRF
plugin-sdk/collection-runtimeHelper per cache limitatapruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelper per il gating diagnosticoisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelper per la formattazione degli erroriformatUncaughtError, isApprovalNotFoundError, helper del grafo degli errori
plugin-sdk/fetch-runtimeHelper per fetch/proxy wrapperizzatiresolveFetch, helper per proxy
plugin-sdk/host-runtimeHelper per la normalizzazione dell’hostnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHelper per retryRetryConfig, retryAsync, esecutori di policy
plugin-sdk/allow-fromFormattazione dell’allowlistformatAllowFromLowercase
plugin-sdk/allowlist-resolutionMappatura degli input dell’allowlistmapAllowlistResolutionInputs
plugin-sdk/command-authGating dei comandi e helper per la superficie dei comandiresolveControlCommandGate, helper per l’autorizzazione del mittente, helper per il registro dei comandi
plugin-sdk/command-statusRenderer di stato/help dei comandibuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputParsing degli input secretHelper per input secret
plugin-sdk/webhook-ingressHelper per richieste WebhookUtility per target Webhook
plugin-sdk/webhook-request-guardsHelper di guardia per i body WebhookHelper per lettura/limite del body della richiesta
plugin-sdk/reply-runtimeRuntime condiviso per le risposteDispatch in ingresso, Heartbeat, pianificatore delle risposte, chunking
plugin-sdk/reply-dispatch-runtimeHelper mirati per il dispatch delle risposteHelper per finalize + dispatch del provider
plugin-sdk/reply-historyHelper per reply-historybuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePianificazione dei riferimenti di rispostacreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelper per chunk di rispostaHelper per chunking di testo/markdown
plugin-sdk/session-store-runtimeHelper per session storeHelper per percorso dello store + updated-at
plugin-sdk/state-pathsHelper per i percorsi di statoHelper per directory di stato e OAuth
plugin-sdk/routingHelper per instradamento/session-keyresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, helper per la normalizzazione della session-key
plugin-sdk/status-helpersHelper di stato del canaleBuilder di riepilogo dello stato di canale/account, valori predefiniti dello stato runtime, helper per metadati dei problemi
plugin-sdk/target-resolver-runtimeHelper per il risolutore dei targetHelper condivisi per il risolutore dei target
plugin-sdk/string-normalization-runtimeHelper per la normalizzazione delle stringheHelper per la normalizzazione di slug/stringhe
plugin-sdk/request-urlHelper per URL di richiestaEstrae URL stringa da input simili a request
plugin-sdk/run-commandHelper per comandi temporizzatiEsecutore di comandi temporizzati con stdout/stderr normalizzati
plugin-sdk/param-readersLettori di parametriLettori comuni di parametri per tool/CLI
plugin-sdk/tool-payloadEstrazione del payload dei toolEstrae payload normalizzati da oggetti risultato dei tool
plugin-sdk/tool-sendEstrazione di invio dei toolEstrae campi target di invio canonici dagli argomenti del tool
plugin-sdk/temp-pathHelper per percorsi temporaneiHelper condivisi per percorsi temporanei di download
plugin-sdk/logging-coreHelper di loggingLogger di sottosistema e helper di redazione
plugin-sdk/markdown-table-runtimeHelper per tabelle MarkdownHelper per la modalità tabella Markdown
plugin-sdk/reply-payloadTipi di risposta del messaggioTipi del payload di risposta
plugin-sdk/provider-setupHelper curati per setup di provider locali/self-hostedHelper per discovery/configurazione di provider self-hosted
plugin-sdk/self-hosted-provider-setupHelper focalizzati per setup di provider self-hosted compatibili con OpenAIGli stessi helper per discovery/configurazione di provider self-hosted
plugin-sdk/provider-auth-runtimeHelper di auth runtime del providerHelper runtime per la risoluzione delle API key
plugin-sdk/provider-auth-api-keyHelper di setup delle API key del providerHelper per onboarding/scrittura profilo delle API key
plugin-sdk/provider-auth-resultHelper per auth-result del providerBuilder standard del risultato di auth OAuth
plugin-sdk/provider-auth-loginHelper di login interattivo del providerHelper condivisi per login interattivo
plugin-sdk/provider-env-varsHelper per env var del providerHelper per lookup delle env var di auth del provider
plugin-sdk/provider-model-sharedHelper condivisi per modello/replay del providerProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, builder condivisi di replay-policy, helper per endpoint del provider e helper per la normalizzazione di model-id
plugin-sdk/provider-catalog-sharedHelper condivisi per il catalogo dei providerfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardPatch di onboarding del providerHelper di configurazione per l’onboarding
plugin-sdk/provider-httpHelper HTTP del providerHelper generici per HTTP/capacità endpoint del provider
plugin-sdk/provider-web-fetchHelper web-fetch del providerHelper per registrazione/cache del provider web-fetch
plugin-sdk/provider-web-search-config-contractHelper di configurazione web-search del providerHelper mirati per configurazione/credenziali web-search per provider che non richiedono wiring di abilitazione del plugin
plugin-sdk/provider-web-search-contractHelper contrattuali web-search del providerHelper contrattuali mirati per configurazione/credenziali web-search come createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig e setter/getter di credenziali con scope
plugin-sdk/provider-web-searchHelper web-search del providerHelper per registrazione/cache/runtime del provider web-search
plugin-sdk/provider-toolsHelper di compatibilità tool/schema del providerProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, cleanup + diagnostica dello schema Gemini e helper di compatibilità xAI come resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelper di utilizzo del providerfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage e altri helper di utilizzo del provider
plugin-sdk/provider-streamHelper wrapper di stream del providerProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, tipi dei wrapper di stream e helper wrapper condivisi per Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-transport-runtimeHelper di trasporto del providerHelper di trasporto nativi del provider come fetch protetto, trasformazioni dei messaggi di trasporto e stream di eventi di trasporto scrivibili
plugin-sdk/keyed-async-queueCoda async ordinataKeyedAsyncQueue
plugin-sdk/media-runtimeHelper media condivisiHelper per fetch/trasformazione/store dei media più builder del payload media
plugin-sdk/media-generation-runtimeHelper condivisi per la generazione di mediaHelper condivisi per failover, selezione dei candidati e messaggi di modello mancante per la generazione di immagini/video/musica
plugin-sdk/media-understandingHelper per media-understandingTipi del provider per media understanding più export di helper lato provider per immagini/audio
plugin-sdk/text-runtimeHelper di testo condivisiRimozione del testo visibile all’assistente, helper per rendering/chunking/tabelle Markdown, helper di redazione, helper per directive-tag, utility di testo sicuro e relativi helper per testo/logging
plugin-sdk/text-chunkingHelper per chunking del testoHelper per chunking del testo in uscita
plugin-sdk/speechHelper SpeechTipi del provider Speech più export di helper lato provider per directive, registro e validazione
plugin-sdk/speech-coreCore Speech condivisoTipi del provider Speech, registro, directive, normalizzazione
plugin-sdk/realtime-transcriptionHelper per trascrizione realtimeTipi del provider e helper del registro
plugin-sdk/realtime-voiceHelper per voce realtimeTipi del provider e helper del registro
plugin-sdk/image-generation-coreCore condiviso per la generazione di immaginiTipi, failover, auth e helper del registro per la generazione di immagini
plugin-sdk/music-generationHelper per generazione musicaleTipi di provider/richiesta/risultato per la generazione musicale
plugin-sdk/music-generation-coreCore condiviso per la generazione musicaleTipi per la generazione musicale, helper di failover, ricerca provider e parsing di model-ref
plugin-sdk/video-generationHelper per generazione videoTipi di provider/richiesta/risultato per la generazione video
plugin-sdk/video-generation-coreCore condiviso per la generazione videoTipi per la generazione video, helper di failover, ricerca provider e parsing di model-ref
plugin-sdk/interactive-runtimeHelper per risposte interattiveNormalizzazione/riduzione del payload delle risposte interattive
plugin-sdk/channel-config-primitivesPrimitive di configurazione del canalePrimitive mirate dello schema di configurazione del canale
plugin-sdk/channel-config-writesHelper per scrittura della configurazione del canaleHelper di autorizzazione per la scrittura della configurazione del canale
plugin-sdk/channel-plugin-commonPrelude condiviso del canaleExport condivisi del prelude del channel plugin
plugin-sdk/channel-statusHelper di stato del canaleHelper condivisi per snapshot/riepilogo dello stato del canale
plugin-sdk/allowlist-config-editHelper di configurazione dell’allowlistHelper per modifica/lettura della configurazione dell’allowlist
plugin-sdk/group-accessHelper per accesso ai gruppiHelper condivisi per le decisioni di accesso ai gruppi
plugin-sdk/direct-dmHelper per direct-DMHelper condivisi di auth/guard per direct-DM
plugin-sdk/extension-sharedHelper condivisi dell’estensionePrimitive helper per canale/stato passivi e proxy ambient
plugin-sdk/webhook-targetsHelper per target WebhookRegistro dei target Webhook e helper per installazione delle route
plugin-sdk/webhook-pathHelper per percorsi WebhookHelper per normalizzazione dei percorsi Webhook
plugin-sdk/web-mediaHelper media web condivisiHelper per caricamento di media remoti/locali
plugin-sdk/zodRiesportazione di zodzod riesportato per i consumer del Plugin SDK
plugin-sdk/memory-coreHelper bundled memory-coreSuperficie helper per memory manager/config/file/CLI
plugin-sdk/memory-core-engine-runtimeFacciata runtime del motore di memoriaFacciata runtime per indice/ricerca della memoria
plugin-sdk/memory-core-host-engine-foundationMotore foundation host della memoriaExport del motore foundation host della memoria
plugin-sdk/memory-core-host-engine-embeddingsMotore embeddings host della memoriaContratti degli embedding di memoria, accesso al registro, provider locale e helper generici batch/remoti; i provider remoti concreti si trovano nei plugin che li possiedono
plugin-sdk/memory-core-host-engine-qmdMotore QMD host della memoriaExport del motore QMD host della memoria
plugin-sdk/memory-core-host-engine-storageMotore storage host della memoriaExport del motore storage host della memoria
plugin-sdk/memory-core-host-multimodalHelper multimodali host della memoriaHelper multimodali host della memoria
plugin-sdk/memory-core-host-queryHelper query host della memoriaHelper query host della memoria
plugin-sdk/memory-core-host-secretHelper secret host della memoriaHelper secret host della memoria
plugin-sdk/memory-core-host-eventsHelper per event journal host della memoriaHelper per event journal host della memoria
plugin-sdk/memory-core-host-statusHelper di stato host della memoriaHelper di stato host della memoria
plugin-sdk/memory-core-host-runtime-cliRuntime CLI host della memoriaHelper runtime CLI host della memoria
plugin-sdk/memory-core-host-runtime-coreRuntime core host della memoriaHelper runtime core host della memoria
plugin-sdk/memory-core-host-runtime-filesHelper file/runtime host della memoriaHelper file/runtime host della memoria
plugin-sdk/memory-host-coreAlias runtime core host della memoriaAlias neutrale rispetto al vendor per gli helper runtime core host della memoria
plugin-sdk/memory-host-eventsAlias event journal host della memoriaAlias neutrale rispetto al vendor per gli helper event journal host della memoria
plugin-sdk/memory-host-filesAlias file/runtime host della memoriaAlias neutrale rispetto al vendor per gli helper file/runtime host della memoria
plugin-sdk/memory-host-markdownHelper per markdown gestitoHelper condivisi per managed-markdown per plugin adiacenti alla memoria
plugin-sdk/memory-host-searchFacciata di ricerca Active MemoryFacciata runtime lazy del search-manager di Active Memory
plugin-sdk/memory-host-statusAlias stato host della memoriaAlias neutrale rispetto al vendor per gli helper di stato host della memoria
plugin-sdk/memory-lancedbHelper bundled memory-lancedbSuperficie helper memory-lancedb
plugin-sdk/testingUtility di testHelper di test e mock
Questa tabella è intenzionalmente il sottoinsieme comune per la migrazione, non l’intera superficie del SDK. L’elenco completo di oltre 200 entrypoint si trova in scripts/lib/plugin-sdk-entrypoints.json. Quell’elenco include ancora alcuni helper seam dei plugin bundled come plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup e plugin-sdk/matrix*. Questi continuano a essere esportati per la manutenzione e la compatibilità dei plugin bundled, ma sono intenzionalmente omessi dalla tabella comune di migrazione e non sono il target consigliato per il nuovo codice dei plugin. La stessa regola si applica ad altre famiglie di helper bundled come:
  • helper di supporto browser: 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*
  • superfici di helper/plugin bundled come 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 espone attualmente la superficie mirata degli helper per token DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken e resolveCopilotApiToken. Usa l’import più mirato che corrisponde al lavoro da svolgere. Se non riesci a trovare un export, controlla il sorgente in src/plugin-sdk/ o chiedi su Discord.

Tempistiche di rimozione

QuandoCosa succede
OraLe superfici deprecate emettono avvisi a runtime
Prossima major releaseLe superfici deprecate verranno rimosse; i plugin che le usano ancora smetteranno di funzionare
Tutti i plugin core sono già stati migrati. I plugin esterni dovrebbero effettuare la migrazione prima della prossima major release.

Soppressione temporanea degli avvisi

Imposta queste variabili d’ambiente mentre lavori alla migrazione:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Questa è una via di fuga temporanea, non una soluzione permanente.

Correlati