Zum Hauptinhalt springen

Plugin SDK-Migration

OpenClaw ist von einer breiten Rückwärtskompatibilitätsschicht zu einer modernen Plugin-Architektur mit fokussierten, dokumentierten Imports übergegangen. Wenn dein Plugin vor der neuen Architektur erstellt wurde, hilft dir dieser Leitfaden bei der Migration.

Was sich ändert

Das alte Plugin-System stellte zwei weit offene Oberflächen bereit, über die Plugins alles importieren konnten, was sie von einem einzigen Einstiegspunkt aus benötigten:
  • openclaw/plugin-sdk/compat — ein einzelner Import, der Dutzende von Helfern re-exportierte. Er wurde eingeführt, damit ältere hook-basierte Plugins weiter funktionieren konnten, während die neue Plugin-Architektur aufgebaut wurde.
  • openclaw/extension-api — eine Brücke, die Plugins direkten Zugriff auf hostseitige Helfer wie den eingebetteten Agent-Runner gab.
Beide Oberflächen sind jetzt deprecated. Sie funktionieren zur Laufzeit weiterhin, aber neue Plugins dürfen sie nicht verwenden, und bestehende Plugins sollten migrieren, bevor das nächste Major-Release sie entfernt.
Die Rückwärtskompatibilitätsschicht wird in einem zukünftigen Major-Release entfernt. Plugins, die weiterhin von diesen Oberflächen importieren, werden dann nicht mehr funktionieren.

Warum sich das geändert hat

Der alte Ansatz verursachte Probleme:
  • Langsamer Start — der Import eines Helfers lud Dutzende nicht zusammenhängender Module
  • Zirkuläre Abhängigkeiten — breite Re-Exports machten es leicht, Importzyklen zu erzeugen
  • Unklare API-Oberfläche — es gab keine Möglichkeit zu erkennen, welche Exporte stabil und welche intern waren
Das moderne Plugin SDK behebt das: Jeder Importpfad (openclaw/plugin-sdk/\<subpath\>) ist ein kleines, in sich geschlossenes Modul mit klarem Zweck und dokumentiertem Vertrag. Legacy-Provider-Komfort-Seams für gebündelte Kanäle gibt es ebenfalls nicht mehr. Imports wie openclaw/plugin-sdk/slack, openclaw/plugin-sdk/discord, openclaw/plugin-sdk/signal, openclaw/plugin-sdk/whatsapp, kanalmarkierte Helfer-Seams und openclaw/plugin-sdk/telegram-core waren private Monorepo-Abkürzungen, keine stabilen Plugin-Verträge. Verwende stattdessen schmale generische SDK-Unterpfade. Innerhalb des gebündelten Plugin-Workspaces sollten Provider-eigene Helfer in der eigenen api.ts oder runtime-api.ts dieses Plugins bleiben. Aktuelle Beispiele für gebündelte Provider:
  • Anthropic hält Claude-spezifische Stream-Helfer in seinem eigenen api.ts- / contract-api.ts-Seam
  • OpenAI hält Provider-Builder, Helfer für Standardmodelle und Realtime-Provider-Builder in seinem eigenen api.ts
  • OpenRouter hält Provider-Builder sowie Onboarding-/Konfigurationshelfer in seinem eigenen api.ts

So migrierst du

1

Approval-native Handler auf Capability-Fakten migrieren

Kanal-Plugins mit Approval-Unterstützung stellen natives Approval-Verhalten jetzt über approvalCapability.nativeRuntime plus die gemeinsame Laufzeitkontext-Registry bereit.Wichtige Änderungen:
  • Ersetze approvalCapability.handler.loadRuntime(...) durch approvalCapability.nativeRuntime
  • Verschiebe Approval-spezifische Auth-/Zustelllogik aus der alten Verkabelung plugin.auth / plugin.approvals auf approvalCapability
  • ChannelPlugin.approvals wurde aus dem öffentlichen Vertrag für Kanal-Plugins entfernt; verschiebe Zustellungs-/Native-/Render-Felder auf approvalCapability
  • plugin.auth bleibt nur für Kanal-Login-/Logout-Flows bestehen; dortige Approval-Auth-Hooks werden vom Core nicht mehr gelesen
  • Registriere kanal-eigene Laufzeitobjekte wie Clients, Tokens oder Bolt-Apps über openclaw/plugin-sdk/channel-runtime-context
  • Sende aus nativen Approval-Handlern keine Plugin-eigenen Hinweise zum Umleiten; der Core besitzt jetzt Hinweise zu „anderswo geroutet“ auf Basis tatsächlicher Zustellungsergebnisse
  • Wenn du channelRuntime an createChannelManager(...) übergibst, stelle eine echte Oberfläche createPluginRuntime().channel bereit. Partielle Stubs werden abgelehnt.
Siehe /plugins/sdk-channel-plugins für das aktuelle Layout der Approval-Capability.
2

Fallback-Verhalten des Windows-Wrappers prüfen

Wenn dein Plugin openclaw/plugin-sdk/windows-spawn verwendet, schlagen nicht aufgelöste Windows- .cmd-/.bat-Wrapper jetzt kontrolliert fehl, sofern du nicht explizit allowShellFallback: true übergibst.
// Vorher
const program = applyWindowsSpawnProgramPolicy({ candidate });

// Nachher
const program = applyWindowsSpawnProgramPolicy({
  candidate,
  // Nur für vertrauenswürdige Kompatibilitätsaufrufer setzen, die
  // bewusst shellvermittelten Fallback akzeptieren.
  allowShellFallback: true,
});
Wenn dein Aufrufer nicht absichtlich auf Shell-Fallback angewiesen ist, setze allowShellFallback nicht und behandle stattdessen den ausgelösten Fehler.
3

Deprecated Imports finden

Durchsuche dein Plugin nach Imports von einer der beiden deprecated Oberflächen:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
4

Durch fokussierte Imports ersetzen

Jeder Export aus der alten Oberfläche wird auf einen bestimmten modernen Importpfad abgebildet:
// Vorher (deprecated Rückwärtskompatibilitätsschicht)
import {
  createChannelReplyPipeline,
  createPluginRuntimeStore,
  resolveControlCommandGate,
} from "openclaw/plugin-sdk/compat";

// Nachher (moderne fokussierte 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";
Für hostseitige Helfer verwende die injizierte Plugin-Laufzeit, statt direkt zu importieren:
// Vorher (deprecated extension-api-Brücke)
import { runEmbeddedPiAgent } from "openclaw/extension-api";
const result = await runEmbeddedPiAgent({ sessionId, prompt });

// Nachher (injizierte Laufzeit)
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
Dasselbe Muster gilt für andere Legacy-Brückenhelfer:
Alter ImportModernes Äquivalent
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
Helfer für den Sitzungsspeicherapi.runtime.agent.session.*
5

Build und Tests ausführen

pnpm build
pnpm test -- my-plugin/

Referenz für Importpfade

ImportpfadZweckWichtige Exporte
plugin-sdk/plugin-entryKanonischer Plugin-Entry-HelperdefinePluginEntry
plugin-sdk/coreAltes Umbrella-Re-Export für Definitionen/Builder von Kanal-EntrypointsdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaRoot-Konfigurationsschema-ExportOpenClawSchema
plugin-sdk/provider-entrySingle-Provider-Entry-HelperdefineSingleProviderPluginEntry
plugin-sdk/channel-coreFokussierte Definitionen und Builder für Kanal-EntrypointsdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupGemeinsame Helfer für den EinrichtungsassistentenAllowlist-Prompts, Setup-Status-Builder
plugin-sdk/setup-runtimeLaufzeithelfer für die EinrichtungImportsichere Setup-Patch-Adapter, Helfer für Lookup-Hinweise, promptResolvedAllowFrom, splitSetupEntries, delegierte Setup-Proxys
plugin-sdk/setup-adapter-runtimeHelfer für Setup-AdaptercreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHelfer für Setup-ToolingformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHelfer für mehrere AccountsHelfer für Account-Liste/Konfiguration/Aktions-Gates
plugin-sdk/account-idHelfer für Account-IDsDEFAULT_ACCOUNT_ID, Normalisierung von Account-IDs
plugin-sdk/account-resolutionHelfer für Account-LookupsHelfer für Account-Lookup + Standard-Fallback
plugin-sdk/account-helpersSchmale Account-HelferHelfer für Account-Liste/Account-Aktionen
plugin-sdk/channel-setupAdapter für den EinrichtungsassistentencreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, plus DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitive für DM-PairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelineVerkabelung für Antwortpräfix + TippanzeigecreateChannelReplyPipeline
plugin-sdk/channel-config-helpersFactorys für KonfigurationsadaptercreateHybridChannelConfigAdapter
plugin-sdk/channel-config-schemaBuilder für KonfigurationsschemataTypen für Kanal-Konfigurationsschemata
plugin-sdk/telegram-command-configHelfer für Telegram-BefehlskonfigurationNormalisierung von Befehlsnamen, Kürzen von Beschreibungen, Validierung von Duplikaten/Konflikten
plugin-sdk/channel-policyAuflösung von Gruppen-/DM-RichtlinienresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleHelfer für Account-Status und Draft-Stream-LifecyclecreateAccountStatusSink, Helfer zum Finalisieren von Draft-Previews
plugin-sdk/inbound-envelopeHelfer für Inbound-EnvelopesGemeinsame Helfer für Route- und Envelope-Builder
plugin-sdk/inbound-reply-dispatchHelfer für Inbound-AntwortenGemeinsame Helfer für Aufzeichnen und Dispatch
plugin-sdk/messaging-targetsParsing von Messaging-ZielenHelfer zum Parsen/Abgleichen von Zielen
plugin-sdk/outbound-mediaHelfer für Outbound-MedienGemeinsames Laden von Outbound-Medien
plugin-sdk/outbound-runtimeLaufzeithelfer für OutboundHelfer für Outbound-Identität/Sende-Delegation und Payload-Planung
plugin-sdk/thread-bindings-runtimeHelfer für Thread-BindingsHelfer für Thread-Binding-Lifecycle und Adapter
plugin-sdk/agent-media-payloadAlte Helfer für Medien-PayloadsBuilder für Agent-Medien-Payloads für alte Feldlayouts
plugin-sdk/channel-runtimeDeprecated Kompatibilitäts-ShimNur alte Kanal-Laufzeit-Utilities
plugin-sdk/channel-send-resultTypen für SendeergebnisseTypen für Antwortergebnisse
plugin-sdk/runtime-storePersistenter Plugin-SpeichercreatePluginRuntimeStore
plugin-sdk/runtimeBreite LaufzeithelferHelfer für Runtime/Logging/Backup/Plugin-Installation
plugin-sdk/runtime-envSchmale Helfer für die LaufzeitumgebungLogger/Laufzeitumgebung, Timeout-, Retry- und Backoff-Helfer
plugin-sdk/plugin-runtimeGemeinsame Helfer für die Plugin-LaufzeitHelfer für Plugin-Befehle/Hooks/HTTP/Interaktivität
plugin-sdk/hook-runtimeHelfer für Hook-PipelinesGemeinsame Helfer für Webhook-/interne Hook-Pipelines
plugin-sdk/lazy-runtimeHelfer für Lazy RuntimecreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeProzesshelferGemeinsame Exec-Helfer
plugin-sdk/cli-runtimeCLI-LaufzeithelferHelfer für Befehlsformatierung, Warten, Versionen
plugin-sdk/gateway-runtimeGateway-HelferGateway-Client und Helfer für Patches des Kanalstatus
plugin-sdk/config-runtimeKonfigurationshelferHelfer zum Laden/Schreiben von Konfiguration
plugin-sdk/telegram-command-configHelfer für Telegram-BefehleTelegram-Befehlsvalidierung mit stabilem Fallback, wenn die gebündelte Telegram-Vertragsoberfläche nicht verfügbar ist
plugin-sdk/approval-runtimeHelfer für Approval-PromptsPayloads für Exec-/Plugin-Approval, Helfer für Approval-Capability/Profile, Helfer für Routing/Laufzeit nativer Approvals
plugin-sdk/approval-auth-runtimeHelfer für Approval-AuthAuflösung von Approvern, Auth für Aktionen im selben Chat
plugin-sdk/approval-client-runtimeHelfer für Approval-ClientsHelfer für Profile/Filter nativer Exec-Approvals
plugin-sdk/approval-delivery-runtimeHelfer für Approval-ZustellungAdapter für native Approval-Capability/Zustellung
plugin-sdk/approval-gateway-runtimeHelfer für Approval-GatewayGemeinsamer Helfer zur Gateway-Auflösung für Approvals
plugin-sdk/approval-handler-adapter-runtimeHelfer für Approval-AdapterLeichtgewichtige Helfer zum Laden nativer Approval-Adapter für heiße Kanal-Entrypoints
plugin-sdk/approval-handler-runtimeHelfer für Approval-HandlerBreitere Laufzeithelfer für Approval-Handler; bevorzuge die schmaleren Adapter-/Gateway-Seams, wenn sie ausreichen
plugin-sdk/approval-native-runtimeHelfer für Approval-ZieleHelfer für Bindings nativer Approval-Ziele/Accounts
plugin-sdk/approval-reply-runtimeHelfer für Approval-AntwortenHelfer für Antwort-Payloads von Exec-/Plugin-Approvals
plugin-sdk/channel-runtime-contextHelfer für den Kanal-LaufzeitkontextGenerische Helfer für Register/Get/Watch des Kanal-Laufzeitkontexts
plugin-sdk/security-runtimeSicherheitshelferGemeinsame Helfer für Vertrauen, DM-Gating, externe Inhalte und Secret-Sammlung
plugin-sdk/ssrf-policyHelfer für SSRF-RichtlinienHelfer für Host-Allowlist und Richtlinien für private Netzwerke
plugin-sdk/ssrf-runtimeSSRF-LaufzeithelferHelfer für Pinned Dispatcher, Guarded Fetch und SSRF-Richtlinien
plugin-sdk/collection-runtimeHelfer für begrenzte CachespruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHelfer für Diagnose-GatingisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHelfer für FehlerformatierungformatUncaughtError, isApprovalNotFoundError, Helfer für Fehlergraphen
plugin-sdk/fetch-runtimeHelfer für Wrapped Fetch/ProxyresolveFetch, Proxy-Helfer
plugin-sdk/host-runtimeHelfer zur Host-NormalisierungnormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeRetry-HelferRetryConfig, retryAsync, Policy-Runner
plugin-sdk/allow-fromAllowlist-FormatierungformatAllowFromLowercase
plugin-sdk/allowlist-resolutionZuordnung von Allowlist-EingabenmapAllowlistResolutionInputs
plugin-sdk/command-authBefehls-Gating und Helfer für BefehlsoberflächenresolveControlCommandGate, Helfer für Sender-Autorisierung, Helfer für Befehlsregistrierung
plugin-sdk/command-statusRenderer für Befehlsstatus/-hilfebuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputParsing von Secret-EingabenHelfer für Secret-Eingaben
plugin-sdk/webhook-ingressHelfer für Webhook-RequestsUtilities für Webhook-Ziele
plugin-sdk/webhook-request-guardsHelfer für Guards von Webhook-BodysHelfer zum Lesen/Begrenzen von Request-Bodys
plugin-sdk/reply-runtimeGemeinsame Antwort-LaufzeitInbound-Dispatch, Heartbeat, Antwortplanung, Chunking
plugin-sdk/reply-dispatch-runtimeSchmale Helfer für Antwort-DispatchHelfer für Finalisierung + Provider-Dispatch
plugin-sdk/reply-historyHelfer für AntwortverlaufbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanung von AntwortreferenzencreateReplyReferencePlanner
plugin-sdk/reply-chunkingHelfer für Antwort-ChunkingHelfer für Text-/Markdown-Chunking
plugin-sdk/session-store-runtimeHelfer für SitzungsspeicherHelfer für Speicherpfade + updated-at
plugin-sdk/state-pathsHelfer für StatuspfadeHelfer für State- und OAuth-Verzeichnisse
plugin-sdk/routingHelfer für Routing/SitzungsschlüsselresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, Helfer zur Normalisierung von Sitzungsschlüsseln
plugin-sdk/status-helpersHelfer für KanalstatusBuilder für Kanal-/Account-Statuszusammenfassungen, Standards für Laufzeitzustand, Helfer für Issue-Metadaten
plugin-sdk/target-resolver-runtimeHelfer für ZielauflösungGemeinsame Helfer für Target-Resolver
plugin-sdk/string-normalization-runtimeHelfer für String-NormalisierungHelfer für Slug-/String-Normalisierung
plugin-sdk/request-urlHelfer für Request-URLsString-URLs aus request-ähnlichen Eingaben extrahieren
plugin-sdk/run-commandHelfer für zeitgesteuerte BefehleRunner für zeitgesteuerte Befehle mit normalisiertem stdout/stderr
plugin-sdk/param-readersParam-ReaderGemeinsame Param-Reader für Tool/CLI
plugin-sdk/tool-payloadExtraktion von Tool-PayloadsNormalisierte Payloads aus Tool-Ergebnisobjekten extrahieren
plugin-sdk/tool-sendExtraktion für Tool-SendenKanonische Felder für Sendeziele aus Tool-Argumenten extrahieren
plugin-sdk/temp-pathHelfer für temporäre PfadeGemeinsame Helfer für Pfade temporärer Downloads
plugin-sdk/logging-coreLogging-HelferHelfer für Subsystem-Logger und Redaction
plugin-sdk/markdown-table-runtimeHelfer für Markdown-TabellenHelfer für Modi von Markdown-Tabellen
plugin-sdk/reply-payloadTypen für NachrichtenantwortenTypen für Antwort-Payloads
plugin-sdk/provider-setupKuratierte Helfer für die Einrichtung lokaler/self-hosted ProviderHelfer für Discovery/Konfiguration self-hosted Provider
plugin-sdk/self-hosted-provider-setupFokussierte Helfer für die Einrichtung OpenAI-kompatibler self-hosted ProviderDieselben Helfer für Discovery/Konfiguration self-hosted Provider
plugin-sdk/provider-auth-runtimeHelfer für Runtime-Auth von ProvidernHelfer zur Auflösung von Runtime-API-Keys
plugin-sdk/provider-auth-api-keyHelfer für die Einrichtung von Provider-API-KeysHelfer für API-Key-Onboarding/Profile-Schreiben
plugin-sdk/provider-auth-resultHelfer für Auth-Ergebnisse von ProvidernStandard-Builder für OAuth-Auth-Ergebnisse
plugin-sdk/provider-auth-loginHelfer für interaktive Provider-LoginsGemeinsame Helfer für interaktive Logins
plugin-sdk/provider-env-varsHelfer für Provider-UmgebungsvariablenHelfer zum Lookup von Umgebungsvariablen für Provider-Auth
plugin-sdk/provider-model-sharedGemeinsame Helfer für Provider-Modelle/WiederholungProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, gemeinsame Builder für Replay-Policies, Helfer für Provider-Endpunkte und Helfer zur Normalisierung von Modell-IDs
plugin-sdk/provider-catalog-sharedGemeinsame Helfer für Provider-KatalogefindCatalogTemplate, buildSingleProviderApiKeyCatalog, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardPatches für Provider-OnboardingHelfer für Onboarding-Konfiguration
plugin-sdk/provider-httpHelfer für Provider-HTTPGenerische Helfer für Provider-HTTP/Endpunkt-Fähigkeiten
plugin-sdk/provider-web-fetchHelfer für Web-Fetch von ProvidernHelfer für Registrierung/Cache von Web-Fetch-Providern
plugin-sdk/provider-web-search-config-contractHelfer für Provider-Web-Search-KonfigurationSchmale Helfer für Web-Search-Konfiguration/Anmeldedaten für Provider, die keine Verkabelung zum Aktivieren von Plugins benötigen
plugin-sdk/provider-web-search-contractHelfer für den Vertrag von Provider-Web-SearchSchmale Helfer für den Vertrag von Web-Search-Konfiguration/Anmeldedaten wie createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig und bereichsbezogene Setter/Getter für Anmeldedaten
plugin-sdk/provider-web-searchHelfer für Provider-Web-SearchHelfer für Registrierung/Cache/Laufzeit von Web-Search-Providern
plugin-sdk/provider-toolsHelfer für Provider-Tool-/Schema-KompatibilitätProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, Gemini-Schema-Bereinigung + Diagnostik und xAI-Kompatibilitätshelfer wie resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHelfer für Provider-NutzungfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage und andere Helfer zur Provider-Nutzung
plugin-sdk/provider-streamHelfer für Provider-Stream-WrapperProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, Typen für Stream-Wrapper und gemeinsame Wrapper-Helfer für Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-transport-runtimeHelfer für Provider-TransportNative Helfer für Provider-Transport wie Guarded Fetch, Transformationen von Transportnachrichten und beschreibbare Event-Streams für Transporte
plugin-sdk/keyed-async-queueGeordnete asynchrone WarteschlangeKeyedAsyncQueue
plugin-sdk/media-runtimeGemeinsame MedienhelferHelfer für Abruf/Transformation/Speicherung von Medien plus Builder für Medien-Payloads
plugin-sdk/media-generation-runtimeGemeinsame Helfer für MediengenerierungGemeinsame Helfer für Failover, Kandidatenauswahl und Meldungen bei fehlenden Modellen für Bild-/Video-/Musikgenerierung
plugin-sdk/media-understandingHelfer für MedienverständnisProvider-Typen für Medienverständnis plus providerseitige Exporte von Bild-/Audio-Helfern
plugin-sdk/text-runtimeGemeinsame TexthelferEntfernen von für Assistenten sichtbarem Text, Helfer für Markdown-Rendering/Chunking/Tabellen, Helfer für Redaction, Helfer für Directive-Tags, Safe-Text-Utilities und zugehörige Text-/Logging-Helfer
plugin-sdk/text-chunkingHelfer für Text-ChunkingHelfer für Outbound-Text-Chunking
plugin-sdk/speechHelfer für SpracheTypen für Speech-Provider plus providerseitige Helfer für Directives, Registry und Validierung
plugin-sdk/speech-coreGemeinsamer Speech-CoreTypen für Speech-Provider, Registry, Directives, Normalisierung
plugin-sdk/realtime-transcriptionHelfer für Realtime-TranskriptionProvider-Typen und Registry-Helfer
plugin-sdk/realtime-voiceHelfer für Realtime-VoiceProvider-Typen und Registry-Helfer
plugin-sdk/image-generation-coreGemeinsamer Core für BildgenerierungHelfer für Typen, Failover, Auth und Registry bei Bildgenerierung
plugin-sdk/music-generationHelfer für MusikgenerierungTypen für Provider/Requests/Ergebnisse der Musikgenerierung
plugin-sdk/music-generation-coreGemeinsamer Core für MusikgenerierungTypen für Musikgenerierung, Helfer für Failover, Provider-Lookup und Parsen von Modell-Refs
plugin-sdk/video-generationHelfer für VideogenerierungTypen für Provider/Requests/Ergebnisse der Videogenerierung
plugin-sdk/video-generation-coreGemeinsamer Core für VideogenerierungTypen für Videogenerierung, Helfer für Failover, Provider-Lookup und Parsen von Modell-Refs
plugin-sdk/interactive-runtimeHelfer für interaktive AntwortenNormalisierung/Reduktion interaktiver Antwort-Payloads
plugin-sdk/channel-config-primitivesPrimitive für KanalkonfigurationSchmale Primitive für Kanal-Konfigurationsschemata
plugin-sdk/channel-config-writesHelfer für Schreibvorgänge in der KanalkonfigurationHelfer für die Autorisierung von Schreibvorgängen in der Kanalkonfiguration
plugin-sdk/channel-plugin-commonGemeinsames Kanal-PreludeExporte des gemeinsamen Kanal-Preludes
plugin-sdk/channel-statusHelfer für KanalstatusGemeinsame Helfer für Snapshots/Zusammenfassungen des Kanalstatus
plugin-sdk/allowlist-config-editHelfer für Allowlist-KonfigurationHelfer zum Bearbeiten/Lesen von Allowlist-Konfiguration
plugin-sdk/group-accessHelfer für GruppenzugriffGemeinsame Helfer für Entscheidungen zum Gruppenzugriff
plugin-sdk/direct-dmHelfer für direkte DMsGemeinsame Helfer für Auth/Guards bei direkten DMs
plugin-sdk/extension-sharedGemeinsame Extension-HelferPrimitive für passive Kanäle/Status und ambienten Proxy
plugin-sdk/webhook-targetsHelfer für Webhook-ZieleHelfer für Registry und Routeninstallation von Webhook-Zielen
plugin-sdk/webhook-pathHelfer für Webhook-PfadeHelfer zur Normalisierung von Webhook-Pfaden
plugin-sdk/web-mediaGemeinsame Helfer für Web-MedienHelfer zum Laden von Remote-/lokalen Medien
plugin-sdk/zodZod-Re-ExportRe-exportiertes zod für Plugin-SDK-Konsumenten
plugin-sdk/memory-coreGebündelte Helfer für Memory-CoreHelferoberfläche für Memory-Manager/Konfiguration/Dateien/CLI
plugin-sdk/memory-core-engine-runtimeLaufzeit-Fassade für Memory-EngineLaufzeit-Fassade für Memory-Index/Suche
plugin-sdk/memory-core-host-engine-foundationHost-Foundation-Engine für MemoryExporte der Host-Foundation-Engine für Memory
plugin-sdk/memory-core-host-engine-embeddingsHost-Embedding-Engine für MemoryVerträge für Memory-Embeddings, Registry-Zugriff, lokaler Provider und generische Batch-/Remote-Helfer; konkrete Remote-Provider leben in ihren besitzenden Plugins
plugin-sdk/memory-core-host-engine-qmdHost-QMD-Engine für MemoryExporte der Host-QMD-Engine für Memory
plugin-sdk/memory-core-host-engine-storageHost-Storage-Engine für MemoryExporte der Host-Storage-Engine für Memory
plugin-sdk/memory-core-host-multimodalHost-Helfer für multimodales MemoryHost-Helfer für multimodales Memory
plugin-sdk/memory-core-host-queryHost-Helfer für Memory-AbfragenHost-Helfer für Memory-Abfragen
plugin-sdk/memory-core-host-secretHost-Helfer für Memory-SecretsHost-Helfer für Memory-Secrets
plugin-sdk/memory-core-host-eventsHelfer für das Host-Ereignisjournal von MemoryHelfer für das Host-Ereignisjournal von Memory
plugin-sdk/memory-core-host-statusHost-Helfer für Memory-StatusHost-Helfer für Memory-Status
plugin-sdk/memory-core-host-runtime-cliHost-CLI-Laufzeit für MemoryHost-CLI-Laufzeithelfer für Memory
plugin-sdk/memory-core-host-runtime-coreHost-Core-Laufzeit für MemoryHost-Core-Laufzeithelfer für Memory
plugin-sdk/memory-core-host-runtime-filesHost-Datei-/Laufzeithelfer für MemoryHost-Datei-/Laufzeithelfer für Memory
plugin-sdk/memory-host-coreAlias für die Host-Core-Laufzeit von MemoryAnbieterneutraler Alias für Host-Core-Laufzeithelfer von Memory
plugin-sdk/memory-host-eventsAlias für das Host-Ereignisjournal von MemoryAnbieterneutraler Alias für Helfer des Host-Ereignisjournals von Memory
plugin-sdk/memory-host-filesAlias für Host-Datei-/Laufzeit von MemoryAnbieterneutraler Alias für Host-Datei-/Laufzeithelfer von Memory
plugin-sdk/memory-host-markdownHelfer für verwaltetes MarkdownGemeinsame Helfer für verwaltetes Markdown für Plugins im Umfeld von Memory
plugin-sdk/memory-host-searchSuch-Fassade für Active MemoryLazy Laufzeit-Fassade des Search-Managers für Active Memory
plugin-sdk/memory-host-statusAlias für Host-Status von MemoryAnbieterneutraler Alias für Host-Status-Helfer von Memory
plugin-sdk/memory-lancedbGebündelte Helfer für Memory-LanceDBHelferoberfläche für Memory-LanceDB
plugin-sdk/testingTest-UtilitiesTesthelfer und Mocks
Diese Tabelle ist absichtlich das häufige Migrations-Subset, nicht die vollständige SDK-Oberfläche. Die vollständige Liste mit über 200 Einstiegspunkten befindet sich in scripts/lib/plugin-sdk-entrypoints.json. Diese Liste enthält weiterhin einige Hilfs-Seams für gebündelte Plugins wie plugin-sdk/feishu, plugin-sdk/feishu-setup, plugin-sdk/zalo, plugin-sdk/zalo-setup und plugin-sdk/matrix*. Diese bleiben für die Wartung gebündelter Plugins und aus Kompatibilitätsgründen exportiert, werden aber absichtlich aus der häufigen Migrationstabelle ausgelassen und sind nicht das empfohlene Ziel für neuen Plugin-Code. Dieselbe Regel gilt für andere Familien gebündelter Hilfen wie:
  • Browser-Support-Helfer: 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*
  • gebündelte Hilfs-/Plugin-Oberflächen wie 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 und plugin-sdk/voice-call
plugin-sdk/github-copilot-token stellt derzeit die schmale Token-Helfer-Oberfläche DEFAULT_COPILOT_API_BASE_URL, deriveCopilotApiBaseUrlFromToken und resolveCopilotApiToken bereit. Verwende den schmalsten Import, der zur Aufgabe passt. Wenn du einen Export nicht finden kannst, prüfe den Quellcode unter src/plugin-sdk/ oder frage in Discord.

Zeitplan für die Entfernung

WannWas passiert
JetztDeprecated Oberflächen geben Laufzeitwarnungen aus
Nächstes Major-ReleaseDeprecated Oberflächen werden entfernt; Plugins, die sie weiterhin verwenden, schlagen fehl
Alle Core-Plugins wurden bereits migriert. Externe Plugins sollten vor dem nächsten Major-Release migrieren.

Die Warnungen vorübergehend unterdrücken

Setze diese Umgebungsvariablen, während du an der Migration arbeitest:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Dies ist ein temporärer Notausgang, keine dauerhafte Lösung.

Verwandt