Passer au contenu principal

Migration du Plugin SDK

OpenClaw est passé d’une large couche de rétrocompatibilité à une architecture de plugin moderne avec des imports ciblés et documentés. Si votre plugin a été créé avant la nouvelle architecture, ce guide vous aidera à migrer.

Ce qui change

L’ancien système de plugins fournissait deux surfaces très ouvertes qui permettaient aux plugins d’importer tout ce dont ils avaient besoin depuis un seul point d’entrée :
  • openclaw/plugin-sdk/compat — un import unique qui réexportait des dizaines de helpers. Il a été introduit pour maintenir le fonctionnement des anciens plugins basés sur des hooks pendant que la nouvelle architecture de plugin était en cours de construction.
  • openclaw/extension-api — un pont qui donnait aux plugins un accès direct à des helpers côté hôte comme l’exécuteur d’agent embarqué.
Ces deux surfaces sont maintenant obsolètes. Elles fonctionnent toujours à l’exécution, mais les nouveaux plugins ne doivent pas les utiliser, et les plugins existants doivent migrer avant que la prochaine version majeure ne les supprime.
La couche de rétrocompatibilité sera supprimée dans une future version majeure. Les plugins qui importent encore depuis ces surfaces ne fonctionneront plus lorsque cela arrivera.

Pourquoi cela a changé

L’ancienne approche causait des problèmes :
  • Démarrage lent — importer un helper chargeait des dizaines de modules sans rapport
  • Dépendances circulaires — les réexportations larges facilitaient la création de cycles d’import
  • Surface d’API floue — il n’y avait aucun moyen de distinguer quels exports étaient stables et lesquels étaient internes
Le Plugin SDK moderne corrige cela : chaque chemin d’import (openclaw/plugin-sdk/\<subpath\>) est un petit module autonome avec une finalité claire et un contrat documenté. Les interfaces de commodité provider héritées pour les canaux intégrés ont également disparu. Les imports tels que openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, les interfaces helpers de marque de canal, ainsi que openclaw/plugin-sdk/telegram-core étaient des raccourcis privés du mono-repo, pas des contrats de plugin stables. Utilisez plutôt des sous-chemins SDK génériques et étroits. À l’intérieur de l’ espace de travail du plugin intégré, conservez les helpers détenus par le provider dans l’ api.ts ou runtime-api.ts de ce plugin. Exemples actuels de providers intégrés :
  • Anthropic conserve les helpers de flux spécifiques à Claude dans sa propre interface api.ts / contract-api.ts
  • OpenAI conserve les builders de provider, les helpers de modèle par défaut et les builders de provider temps réel dans son propre api.ts
  • OpenRouter conserve le builder de provider ainsi que les helpers d’onboarding/configuration dans son propre api.ts

Comment migrer

1

Migrer les gestionnaires approval-native vers les faits de capacité

Les plugins de canal capables d’approbation exposent désormais le comportement d’approbation natif via approvalCapability.nativeRuntime ainsi que le registre partagé de contexte d’exécution.Changements clés :
  • Remplacez approvalCapability.handler.loadRuntime(...) par approvalCapability.nativeRuntime
  • Déplacez l’authentification/la livraison spécifiques aux approbations hors du câblage hérité plugin.auth / plugin.approvals vers approvalCapability
  • ChannelPlugin.approvals a été supprimé du contrat public du plugin de canal ; déplacez les champs delivery/native/render vers approvalCapability
  • plugin.auth reste réservé aux flux de connexion/déconnexion du canal ; les hooks d’authentification d’approbation qui s’y trouvent ne sont plus lus par le cœur
  • Enregistrez les objets d’exécution détenus par le canal tels que clients, jetons ou applications Bolt via openclaw/plugin-sdk/channel-runtime-context
  • N’envoyez pas d’avis de reroutage détenus par le plugin depuis des gestionnaires d’approbation natifs ; le cœur gère désormais les avis « routé ailleurs » à partir des résultats de livraison réels
  • Lors du passage de channelRuntime à createChannelManager(...), fournissez une vraie surface createPluginRuntime().channel. Les stubs partiels sont rejetés.
Voir /plugins/sdk-channel-plugins pour la disposition actuelle de la capacité d’approbation.
2

Auditer le comportement de repli du wrapper Windows

Si votre plugin utilise openclaw/plugin-sdk/windows-spawn, les wrappers Windows .cmd/.bat non résolus échouent désormais de manière fermée sauf si vous passez explicitement allowShellFallback: true.
// Avant
const program = applyWindowsSpawnProgramPolicy({ candidate });

// Après
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Définissez ceci uniquement pour les appelants de compatibilité de confiance qui
  // acceptent intentionnellement le repli via le shell.
  allowShellFallback: true,
});
Si votre appelant ne repose pas intentionnellement sur un repli shell, ne définissez pas allowShellFallback et gérez plutôt l’erreur levée.
3

Trouver les imports obsolètes

Recherchez dans votre plugin les imports depuis l’une ou l’autre des surfaces obsolètes :
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Remplacer par des imports ciblés

Chaque export de l’ancienne surface correspond à un chemin d’import moderne spécifique :
// Avant (couche de rétrocompatibilité obsolète)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// Après (imports modernes ciblés)
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";
Pour les helpers côté hôte, utilisez le runtime de plugin injecté au lieu d’importer directement :
// Avant (pont extension-api obsolète)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// Après (runtime injecté)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Le même modèle s’applique aux autres helpers de pont hérités :
Ancien importÉquivalent moderne
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 magasin de sessionapi.runtime.agent.session.*
5

Compiler et tester

pnpm build
pnpm test -- my-plugin/

Référence des chemins d’import

Chemin d’importFinalitéExports clés
plugin-sdk/plugin-entryHelper canonique de point d’entrée de plugindefinePluginEntry
plugin-sdk/coreRéexportation parapluie héritée pour les définitions/builders d’entrée de canaldefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExport du schéma de configuration racineOpenClawSchema
plugin-sdk/provider-entryHelper de point d’entrée de provider uniquedefineSingleProviderPluginEntry
plugin-sdk/channel-coreDéfinitions et builders ciblés de point d’entrée de canaldefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupHelpers partagés pour l’assistant de configurationPrompts de liste d’autorisation, builders d’état de configuration
plugin-sdk/setup-runtimeHelpers d’exécution au moment de la configurationAdaptateurs de patch de configuration sûrs à importer, helpers de notes de recherche, promptResolvedAllowFrom, splitSetupEntries, proxys de configuration déléguée
plugin-sdk/setup-adapter-runtimeHelpers d’adaptateur de configurationcreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelpers d’outillage de configurationformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelpers multi-comptesHelpers de liste/configuration/contrôle d’action de compte
plugin-sdk/account-idHelpers d’ID de compteDEFAULT_ACCOUNT_ID, normalisation d’ID de compte
plugin-sdk/account-resolutionHelpers de recherche de compteHelpers de recherche de compte + repli par défaut
plugin-sdk/account-helpersHelpers de compte étroitsHelpers de liste de compte/action de compte
plugin-sdk/channel-setupAdaptateurs d’assistant de configurationcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, ainsi que DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitives de pairage DMcreateChannelPairingController
plugin-sdk/channel-reply-pipelineCâblage de préfixe de réponse + frappecreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFabriques d’adaptateurs de configurationcreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaBuilders de schéma de configurationTypes de schéma de configuration de canal
plugin-sdk/telegram-command-configHelpers de configuration de commande TelegramNormalisation de nom de commande, réduction de description, validation des doublons/conflits
plugin-sdk/channel-policyRésolution de politique groupe/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleSuivi d’état de comptecreateAccountStatusSink
plugin-sdk/inbound-envelopeHelpers d’enveloppe entranteHelpers partagés de route + construction d’enveloppe
plugin-sdk/inbound-reply-dispatchHelpers de réponse entranteHelpers partagés d’enregistrement et de distribution
plugin-sdk/messaging-targetsAnalyse des cibles de messagerieHelpers d’analyse/correspondance de cible
plugin-sdk/outbound-mediaHelpers de média sortantChargement partagé de média sortant
plugin-sdk/outbound-runtimeHelpers d’exécution sortanteHelpers de délégation d’identité/d’envoi sortants
plugin-sdk/thread-bindings-runtimeHelpers de liaison de threadHelpers de cycle de vie de liaison de thread et d’adaptateur
plugin-sdk/agent-media-payloadHelpers hérités de charge utile médiaBuilder de charge utile média d’agent pour des dispositions de champs héritées
plugin-sdk/channel-runtimeShim de compatibilité obsolèteUtilitaires d’exécution de canal hérités uniquement
plugin-sdk/channel-send-resultTypes de résultat d’envoiTypes de résultat de réponse
plugin-sdk/runtime-storeStockage persistant de plugincreatePluginRuntimeStore
plugin-sdk/runtimeHelpers d’exécution étendusHelpers d’exécution/journalisation/sauvegarde/installation de plugin
plugin-sdk/runtime-envHelpers d’environnement d’exécution étroitsHelpers de logger/environnement d’exécution, délai, retry et backoff
plugin-sdk/plugin-runtimeHelpers partagés d’exécution de pluginHelpers de commandes/hooks/http/interactifs de plugin
plugin-sdk/hook-runtimeHelpers de pipeline de hookHelpers partagés de pipeline de hooks webhook/internes
plugin-sdk/lazy-runtimeHelpers d’exécution différéecreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeHelpers de processusHelpers partagés d’exécution de commande
plugin-sdk/cli-runtimeHelpers d’exécution CLIFormatage de commandes, attentes, helpers de version
plugin-sdk/gateway-runtimeHelpers de passerelleClient de passerelle et helpers de patch d’état de canal
plugin-sdk/config-runtimeHelpers de configurationHelpers de chargement/écriture de configuration
plugin-sdk/telegram-command-configHelpers de commande TelegramHelpers de validation de commande Telegram stables en repli lorsque la surface de contrat Telegram intégrée n’est pas disponible
plugin-sdk/approval-runtimeHelpers de prompt d’approbationCharge utile d’approbation exec/plugin, helpers de capacité/profil d’approbation, helpers natifs de routage/runtime d’approbation
plugin-sdk/approval-auth-runtimeHelpers d’authentification d’approbationRésolution d’approbateur, authentification d’action dans le même chat
plugin-sdk/approval-client-runtimeHelpers client d’approbationHelpers natifs de profil/filtre d’approbation exec
plugin-sdk/approval-delivery-runtimeHelpers de livraison d’approbationAdaptateurs natifs de capacité/livraison d’approbation
plugin-sdk/approval-gateway-runtimeHelpers de passerelle d’approbationHelper partagé de résolution de passerelle d’approbation
plugin-sdk/approval-handler-adapter-runtimeHelpers d’adaptateur d’approbationHelpers légers de chargement d’adaptateur d’approbation natif pour points d’entrée de canal à chaud
plugin-sdk/approval-handler-runtimeHelpers de gestionnaire d’approbationHelpers d’exécution plus larges pour gestionnaire d’approbation ; préférez les interfaces plus étroites d’adaptateur/passerelle lorsqu’elles suffisent
plugin-sdk/approval-native-runtimeHelpers de cible d’approbationHelpers natifs de liaison cible/compte d’approbation
plugin-sdk/approval-reply-runtimeHelpers de réponse d’approbationHelpers de charge utile de réponse d’approbation exec/plugin
plugin-sdk/channel-runtime-contextHelpers de contexte d’exécution de canalHelpers génériques d’enregistrement/obtention/surveillance de contexte d’exécution de canal
plugin-sdk/security-runtimeHelpers de sécuritéHelpers partagés de confiance, contrôle DM, contenu externe et collecte de secrets
plugin-sdk/ssrf-policyHelpers de politique SSRFHelpers de liste d’autorisation d’hôte et de politique de réseau privé
plugin-sdk/ssrf-runtimeHelpers d’exécution SSRFHelpers de pinned-dispatcher, fetch protégé et politique SSRF
plugin-sdk/collection-runtimeHelpers de cache bornépruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelpers de contrôle diagnosticisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelpers de formatage d’erreurformatUncaughtError, isApprovalNotFoundError, helpers de graphe d’erreur
plugin-sdk/fetch-runtimeHelpers fetch/proxy encapsulésresolveFetch, helpers de proxy
plugin-sdk/host-runtimeHelpers de normalisation d’hôtenormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHelpers de retryRetryConfig, retryAsync, exécuteurs de politique
plugin-sdk/allow-fromFormatage de liste d’autorisationformatAllowFromLowercase
plugin-sdk/allowlist-resolutionMappage d’entrée de liste d’autorisationmapAllowlistResolutionInputs
plugin-sdk/command-authContrôle de commande et helpers de surface de commanderesolveControlCommandGate, helpers d’autorisation d’expéditeur, helpers de registre de commandes
plugin-sdk/command-statusRendu d’état/d’aide des commandesbuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputAnalyse d’entrée de secretHelpers d’entrée de secret
plugin-sdk/webhook-ingressHelpers de requête webhookUtilitaires de cible webhook
plugin-sdk/webhook-request-guardsHelpers de protection du corps webhookHelpers de lecture/limite de corps de requête
plugin-sdk/reply-runtimeRuntime de réponse partagéDistribution entrante, heartbeat, planificateur de réponse, découpage
plugin-sdk/reply-dispatch-runtimeHelpers étroits de distribution de réponseHelpers de finalisation + distribution provider
plugin-sdk/reply-historyHelpers d’historique de réponsebuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanification de référence de réponsecreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelpers de découpage de réponseHelpers de découpage texte/markdown
plugin-sdk/session-store-runtimeHelpers de magasin de sessionHelpers de chemin de magasin + updated-at
plugin-sdk/state-pathsHelpers de chemins d’étatHelpers de répertoires d’état et OAuth
plugin-sdk/routingHelpers de routage/clé de sessionresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, helpers de normalisation de clé de session
plugin-sdk/status-helpersHelpers d’état de canalBuilders de résumé d’état de canal/compte, valeurs par défaut d’état runtime, helpers de métadonnées de problème
plugin-sdk/target-resolver-runtimeHelpers de résolution de cibleHelpers partagés de résolution de cible
plugin-sdk/string-normalization-runtimeHelpers de normalisation de chaîneHelpers de normalisation slug/chaîne
plugin-sdk/request-urlHelpers d’URL de requêteExtraction d’URL chaîne depuis des entrées de type requête
plugin-sdk/run-commandHelpers de commande temporiséeExécuteur de commande temporisée avec stdout/stderr normalisés
plugin-sdk/param-readersLecteurs de paramètresLecteurs communs de paramètres d’outil/CLI
plugin-sdk/tool-payloadExtraction de charge utile d’outilExtraction de charges utiles normalisées depuis des objets de résultat d’outil
plugin-sdk/tool-sendExtraction d’envoi d’outilExtraction des champs de cible d’envoi canoniques depuis les arguments d’outil
plugin-sdk/temp-pathHelpers de chemins temporairesHelpers partagés de chemin de téléchargement temporaire
plugin-sdk/logging-coreHelpers de journalisationLogger de sous-système et helpers de masquage
plugin-sdk/markdown-table-runtimeHelpers de tableau MarkdownHelpers de mode tableau Markdown
plugin-sdk/reply-payloadTypes de réponse de messageTypes de charge utile de réponse
plugin-sdk/provider-setupHelpers de configuration sélectionnés pour providers locaux/autohébergésHelpers de découverte/configuration de provider autohébergé
plugin-sdk/self-hosted-provider-setupHelpers ciblés de configuration de provider autohébergé compatible OpenAILes mêmes helpers de découverte/configuration de provider autohébergé
plugin-sdk/provider-auth-runtimeHelpers d’authentification runtime de providerHelpers de résolution runtime de clé API
plugin-sdk/provider-auth-api-keyHelpers de configuration de clé API providerHelpers d’onboarding/écriture de profil de clé API
plugin-sdk/provider-auth-resultHelpers de résultat d’authentification providerBuilder standard de résultat d’authentification OAuth
plugin-sdk/provider-auth-loginHelpers de connexion interactive providerHelpers partagés de connexion interactive
plugin-sdk/provider-env-varsHelpers de variables d’environnement providerHelpers de recherche de variables d’environnement d’authentification provider
plugin-sdk/provider-model-sharedHelpers partagés de modèle/relecture providerProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, builders partagés de politique de relecture, helpers de point d’accès provider et helpers de normalisation d’ID de modèle
plugin-sdk/provider-catalog-sharedHelpers partagés de catalogue providerfindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardPatches d’onboarding providerHelpers de configuration d’onboarding
plugin-sdk/provider-httpHelpers HTTP providerHelpers génériques HTTP/capacités de point d’accès provider
plugin-sdk/provider-web-fetchHelpers web-fetch providerHelpers d’enregistrement/cache de provider web-fetch
plugin-sdk/provider-web-search-config-contractHelpers de configuration de recherche web providerHelpers étroits de configuration/identifiants de recherche web pour les providers qui n’ont pas besoin de câblage d’activation de plugin
plugin-sdk/provider-web-search-contractHelpers de contrat de recherche web providerHelpers étroits de contrat de configuration/identifiants de recherche web tels que createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig, et setters/getters d’identifiants à portée limitée
plugin-sdk/provider-web-searchHelpers de recherche web providerHelpers d’enregistrement/cache/runtime de provider de recherche web
plugin-sdk/provider-toolsHelpers de compatibilité provider outil/schémaProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, nettoyage de schéma Gemini + diagnostics, et helpers de compatibilité xAI tels que resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelpers d’usage providerfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage, et autres helpers d’usage provider
plugin-sdk/provider-streamHelpers d’encapsulation de flux providerProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, types d’encapsulation de flux, et helpers partagés d’encapsulation Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/keyed-async-queueFile async ordonnéeKeyedAsyncQueue
plugin-sdk/media-runtimeHelpers média partagésHelpers de récupération/transformation/stockage de média ainsi que builders de charge utile média
plugin-sdk/media-generation-runtimeHelpers partagés de génération médiaHelpers partagés de basculement, sélection de candidat, et messages de modèle manquant pour la génération d’image/vidéo/musique
plugin-sdk/media-understandingHelpers de compréhension médiaTypes de provider de compréhension média ainsi que exports de helpers image/audio côté provider
plugin-sdk/text-runtimeHelpers texte partagésSuppression de texte visible par l’assistant, helpers de rendu/découpage/tableau markdown, helpers de masquage, helpers de balises de directive, utilitaires de texte sûr, et helpers associés de texte/journalisation
plugin-sdk/text-chunkingHelpers de découpage de texteHelper de découpage de texte sortant
plugin-sdk/speechHelpers de paroleTypes de provider speech ainsi que helpers côté provider de directive, registre et validation
plugin-sdk/speech-coreCœur speech partagéTypes de provider speech, registre, directives, normalisation
plugin-sdk/realtime-transcriptionHelpers de transcription temps réelHelpers de types provider et de registre
plugin-sdk/realtime-voiceHelpers de voix temps réelHelpers de types provider et de registre
plugin-sdk/image-generation-coreCœur partagé de génération d’imageHelpers de types, basculement, authentification et registre pour génération d’image
plugin-sdk/music-generationHelpers de génération musicaleTypes de provider/requête/résultat pour génération musicale
plugin-sdk/music-generation-coreCœur partagé de génération musicaleTypes de génération musicale, helpers de basculement, recherche de provider et analyse de référence de modèle
plugin-sdk/video-generationHelpers de génération vidéoTypes de provider/requête/résultat pour génération vidéo
plugin-sdk/video-generation-coreCœur partagé de génération vidéoTypes de génération vidéo, helpers de basculement, recherche de provider et analyse de référence de modèle
plugin-sdk/interactive-runtimeHelpers de réponse interactiveNormalisation/réduction de charge utile de réponse interactive
plugin-sdk/channel-config-primitivesPrimitives de configuration de canalPrimitives étroites de schéma de configuration de canal
plugin-sdk/channel-config-writesHelpers d’écriture de configuration de canalHelpers d’autorisation d’écriture de configuration de canal
plugin-sdk/channel-plugin-commonPrélude de canal partagéExports partagés de prélude de plugin de canal
plugin-sdk/channel-statusHelpers d’état de canalHelpers partagés d’instantané/résumé d’état de canal
plugin-sdk/allowlist-config-editHelpers de configuration de liste d’autorisationHelpers de lecture/édition de configuration de liste d’autorisation
plugin-sdk/group-accessHelpers d’accès de groupeHelpers partagés de décision d’accès de groupe
plugin-sdk/direct-dmHelpers de DM directHelpers partagés d’authentification/protection de DM direct
plugin-sdk/extension-sharedHelpers d’extension partagésPrimitives helpers de canal passif/état et proxy ambiant
plugin-sdk/webhook-targetsHelpers de cibles webhookRegistre de cibles webhook et helpers d’installation de route
plugin-sdk/webhook-pathHelpers de chemin webhookHelpers de normalisation de chemin webhook
plugin-sdk/web-mediaHelpers média web partagésHelpers de chargement de média distant/local
plugin-sdk/zodRéexportation Zodzod réexporté pour les consommateurs du Plugin SDK
plugin-sdk/memory-coreHelpers memory-core intégrésSurface helper de gestionnaire/configuration/fichier/CLI mémoire
plugin-sdk/memory-core-engine-runtimeFaçade runtime du moteur mémoireFaçade runtime d’indexation/recherche mémoire
plugin-sdk/memory-core-host-engine-foundationMoteur foundation hôte mémoireExports du moteur foundation hôte mémoire
plugin-sdk/memory-core-host-engine-embeddingsMoteur d’embeddings hôte mémoireExports du moteur d’embeddings hôte mémoire
plugin-sdk/memory-core-host-engine-qmdMoteur QMD hôte mémoireExports du moteur QMD hôte mémoire
plugin-sdk/memory-core-host-engine-storageMoteur de stockage hôte mémoireExports du moteur de stockage hôte mémoire
plugin-sdk/memory-core-host-multimodalHelpers multimodaux hôte mémoireHelpers multimodaux hôte mémoire
plugin-sdk/memory-core-host-queryHelpers de requête hôte mémoireHelpers de requête hôte mémoire
plugin-sdk/memory-core-host-secretHelpers de secret hôte mémoireHelpers de secret hôte mémoire
plugin-sdk/memory-core-host-eventsHelpers de journal d’événements hôte mémoireHelpers de journal d’événements hôte mémoire
plugin-sdk/memory-core-host-statusHelpers d’état hôte mémoireHelpers d’état hôte mémoire
plugin-sdk/memory-core-host-runtime-cliRuntime CLI hôte mémoireHelpers runtime CLI hôte mémoire
plugin-sdk/memory-core-host-runtime-coreRuntime cœur hôte mémoireHelpers runtime cœur hôte mémoire
plugin-sdk/memory-core-host-runtime-filesHelpers fichier/runtime hôte mémoireHelpers fichier/runtime hôte mémoire
plugin-sdk/memory-host-coreAlias runtime cœur hôte mémoireAlias neutre vis-à-vis du fournisseur pour les helpers runtime cœur hôte mémoire
plugin-sdk/memory-host-eventsAlias journal d’événements hôte mémoireAlias neutre vis-à-vis du fournisseur pour les helpers de journal d’événements hôte mémoire
plugin-sdk/memory-host-filesAlias fichier/runtime hôte mémoireAlias neutre vis-à-vis du fournisseur pour les helpers fichier/runtime hôte mémoire
plugin-sdk/memory-host-markdownHelpers markdown géréHelpers partagés de markdown géré pour les plugins adjacents à la mémoire
plugin-sdk/memory-host-searchFaçade de recherche de mémoire activeFaçade runtime différée du gestionnaire de recherche de mémoire active
plugin-sdk/memory-host-statusAlias d’état hôte mémoireAlias neutre vis-à-vis du fournisseur pour les helpers d’état hôte mémoire
plugin-sdk/memory-lancedbHelpers memory-lancedb intégrésSurface helper memory-lancedb
plugin-sdk/testingUtilitaires de testHelpers et mocks de test
Ce tableau est volontairement le sous-ensemble courant de migration, et non la surface complète du SDK. La liste complète des plus de 200 points d’entrée se trouve dans scripts/lib/plugin-sdk-entrypoints.json. Cette liste inclut encore certaines interfaces helpers de plugins intégrés telles que plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup et plugin-sdk/matrix*. Elles restent exportées pour la maintenance et la compatibilité des plugins intégrés, mais elles sont intentionnellement omises du tableau de migration courant et ne sont pas la cible recommandée pour du nouveau code de plugin. La même règle s’applique aux autres familles de helpers intégrés telles que :
  • helpers de prise en charge du navigateur : 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*
  • surfaces de helper/plugin intégrées comme 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 et plugin-sdk/voice-call
plugin-sdk/github-copilot-token expose actuellement la surface étroite de helper de jeton DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken et resolveCopilotApiToken. Utilisez l’import le plus étroit correspondant au besoin. Si vous ne trouvez pas un export, consultez la source dans src/plugin-sdk/ ou demandez sur Discord.

Calendrier de suppression

QuandCe qui se passe
MaintenantLes surfaces obsolètes émettent des avertissements à l’exécution
Prochaine version majeureLes surfaces obsolètes seront supprimées ; les plugins qui les utilisent encore échoueront
Tous les plugins du cœur ont déjà été migrés. Les plugins externes doivent migrer avant la prochaine version majeure.

Supprimer temporairement les avertissements

Définissez ces variables d’environnement pendant que vous travaillez à la migration :
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Il s’agit d’une échappatoire temporaire, pas d’une solution permanente.

Liens associés