Naar hoofdinhoud gaan

Documentation Index

Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

OpenClaw is overgestapt van een brede achterwaartse-compatibiliteitslaag naar een moderne plugin architectuur met gerichte, gedocumenteerde imports. Als je plugin is gebouwd vóór de nieuwe architectuur, helpt deze gids je met migreren.

Wat verandert er

Het oude pluginsysteem bood twee volledig open oppervlakken waarmee plugins alles wat ze nodig hadden konden importeren vanaf één entrypoint:
  • openclaw/plugin-sdk/compat — een enkele import die tientallen helpers opnieuw exporteerde. Deze werd geïntroduceerd om oudere hook-gebaseerde plugins werkend te houden terwijl de nieuwe pluginarchitectuur werd gebouwd.
  • openclaw/plugin-sdk/infra-runtime — een brede runtime-helperbarrel die systeemgebeurtenissen, Heartbeat-status, afleveringswachtrijen, fetch-/proxyhelpers, bestandshelpers, goedkeuringstypen en niet-gerelateerde hulpprogramma’s mengde.
  • openclaw/plugin-sdk/config-runtime — een brede config-compatibiliteitsbarrel die tijdens de migratieperiode nog verouderde directe laad-/schrijfhelpers bevat.
  • openclaw/extension-api — een bridge die plugins directe toegang gaf tot host-side helpers zoals de ingebedde agent-runner.
  • api.registerEmbeddedExtensionFactory(...) — een verwijderde alleen-voor-Pi gebundelde extension-hook die embedded-runner-gebeurtenissen zoals tool_result kon observeren.
De brede importoppervlakken zijn nu verouderd. Ze werken nog steeds tijdens runtime, maar nieuwe plugins mogen ze niet gebruiken, en bestaande plugins moeten migreren voordat de volgende major release ze verwijdert. De alleen-voor-Pi API voor embedded extension factory registratie is verwijderd; gebruik in plaats daarvan tool-result-middleware. OpenClaw verwijdert of herinterpreteert geen gedocumenteerd plugingedrag in dezelfde wijziging die een vervanging introduceert. Breaking contract changes moeten eerst via een compatibiliteitsadapter, diagnostiek, docs en een deprecatievenster lopen. Dat geldt voor SDK-imports, manifestvelden, setup-API’s, hooks en runtime registratiegedrag.
De achterwaartse-compatibiliteitslaag wordt in een toekomstige major release verwijderd. Plugins die nog steeds uit deze oppervlakken importeren, breken wanneer dat gebeurt. Alleen-voor-Pi embedded extension factory-registraties laden nu al niet meer.

Waarom dit is veranderd

De oude aanpak veroorzaakte problemen:
  • Trage startup — het importeren van één helper laadde tientallen niet-gerelateerde modules
  • Circulaire afhankelijkheden — brede re-exports maakten het gemakkelijk om importcycli te creëren
  • Onduidelijk API-oppervlak — geen manier om te zien welke exports stabiel waren versus intern
De moderne plugin-SDK lost dit op: elk importpad (openclaw/plugin-sdk/\<subpath\>) is een kleine, zelfstandige module met een duidelijk doel en een gedocumenteerd contract. Legacy provider-convenience seams voor gebundelde kanalen zijn ook verdwenen. Kanaal-branded helper seams waren private mono-repo-shortcuts, geen stabiele plugincontracten. Gebruik in plaats daarvan smalle generieke SDK-subpaden. Houd binnen de gebundelde pluginworkspace provider-owned helpers in de eigen api.ts of runtime-api.ts van die plugin. Huidige voorbeelden van gebundelde providers:
  • Anthropic bewaart Claude-specifieke streamhelpers in zijn eigen api.ts / contract-api.ts seam
  • OpenAI bewaart provider-builders, default-model helpers en realtime provider builders in zijn eigen api.ts
  • OpenRouter bewaart provider builder en onboarding-/confighelpers in zijn eigen api.ts

Compatibiliteitsbeleid

Voor externe plugins volgt compatibiliteitswerk deze volgorde:
  1. voeg het nieuwe contract toe
  2. houd het oude gedrag aangesloten via een compatibiliteitsadapter
  3. geef een diagnostische melding of waarschuwing die het oude pad en de vervanging noemt
  4. dek beide paden af in tests
  5. documenteer de deprecatie en het migratiepad
  6. verwijder pas na het aangekondigde migratievenster, meestal in een major release
Maintainers kunnen de huidige migratiewachtrij auditen met pnpm plugins:boundary-report. Gebruik pnpm plugins:boundary-report:summary voor compacte aantallen, --owner <id> voor één plugin of compatibiliteitseigenaar, en pnpm plugins:boundary-report:ci wanneer een CI-gate moet falen op verlopen compatibiliteitsrecords, cross-owner gereserveerde SDK-imports of ongebruikte gereserveerde SDK subpaden. Het rapport groepeert verouderde compatibiliteitsrecords op verwijderdatum, telt lokale code-/docs-verwijzingen, toont cross-owner gereserveerde SDK-imports en vat de private memory-host SDK-bridge samen zodat compatibiliteitsopschoning expliciet blijft in plaats van te vertrouwen op ad-hoc zoekopdrachten. Gereserveerde SDK-subpaden moeten bijgehouden eigenaarsgebruik hebben; ongebruikte gereserveerde helper-exports moeten uit de publieke SDK worden verwijderd. Als een manifestveld nog steeds wordt geaccepteerd, kunnen pluginauteurs het blijven gebruiken totdat de docs en diagnostiek iets anders aangeven. Nieuwe code moet de gedocumenteerde vervanging verkiezen, maar bestaande plugins mogen niet breken tijdens gewone minor releases.

Migreren

1

Migreer runtime-config laad-/schrijfhelpers

Gebundelde plugins moeten stoppen met het rechtstreeks aanroepen van api.runtime.config.loadConfig() en api.runtime.config.writeConfigFile(...). Geef de voorkeur aan config die al is doorgegeven aan het actieve call path. Langlevende handlers die de huidige processnapshot nodig hebben, kunnen api.runtime.config.current() gebruiken. Langlevende agent-tools moeten de ctx.getRuntimeConfig() van de toolcontext gebruiken binnen execute, zodat een tool die vóór een configschrijfactie is aangemaakt nog steeds de vernieuwde runtimeconfig ziet.Configschrijfacties moeten via de transactionele helpers lopen en een after-write-beleid kiezen:
await api.runtime.config.mutateConfigFile({
  afterWrite: { mode: "auto" },
  mutate(draft) {
    draft.plugins ??= {};
  },
});
Gebruik afterWrite: { mode: "restart", reason: "..." } wanneer de aanroeper weet dat de wijziging een schone gateway-restart vereist, en afterWrite: { mode: "none", reason: "..." } alleen wanneer de aanroeper eigenaar is van de follow-up en bewust de reload-planner wil onderdrukken. Mutatieresultaten bevatten een getypte followUp-samenvatting voor tests en logging; de Gateway blijft verantwoordelijk voor het toepassen of plannen van de restart. loadConfig en writeConfigFile blijven als verouderde compatibiliteitshelpers voor externe plugins tijdens het migratievenster bestaan en waarschuwen één keer met de compatibiliteitscode runtime-config-load-write. Gebundelde plugins en repo runtimecode worden beschermd door scanner-guardrails in pnpm check:deprecated-internal-config-api en pnpm check:no-runtime-action-load-config: nieuw productie-plugingebruik faalt direct, directe configschrijfacties falen, gatewayservermethoden moeten de request-runtime-snapshot gebruiken, runtime channel send/action/client helpers moeten config ontvangen vanaf hun grens, en langlevende runtimemodules hebben nul toegestane omgevingsaanroepen naar loadConfig().Nieuwe plugincode moet ook vermijden de brede compatibiliteitsbarrel openclaw/plugin-sdk/config-runtime te importeren. Gebruik het smalle SDK-subpad dat bij de taak past:
BehoefteImport
Configtypen zoals OpenClawConfigopenclaw/plugin-sdk/config-types
Reeds geladen configasserties en plugin-entry config lookupopenclaw/plugin-sdk/plugin-config-runtime
Huidige runtime-snapshot-lezingenopenclaw/plugin-sdk/runtime-config-snapshot
Configschrijfactiesopenclaw/plugin-sdk/config-mutation
Sessieopslaghelpersopenclaw/plugin-sdk/session-store-runtime
Markdown-tabelconfigopenclaw/plugin-sdk/markdown-table-runtime
Runtimehelpers voor groepsbeleidopenclaw/plugin-sdk/runtime-group-policy
Resolutie van geheime invoeropenclaw/plugin-sdk/secret-input-runtime
Model-/sessie-overridesopenclaw/plugin-sdk/model-session-runtime
Gebundelde plugins en hun tests worden door scanners bewaakt tegen de brede barrel, zodat imports en mocks lokaal blijven voor het gedrag dat ze nodig hebben. De brede barrel bestaat nog steeds voor externe compatibiliteit, maar nieuwe code mag er niet afhankelijk van zijn.
2

Migreer Pi tool-result extensions naar middleware

Gebundelde plugins moeten alleen-voor-Pi api.registerEmbeddedExtensionFactory(...) tool-result handlers vervangen door runtime-neutrale middleware.
// Pi and Codex runtime dynamic tools
api.registerAgentToolResultMiddleware(async (event) => {
  return compactToolResult(event);
}, {
  runtimes: ["pi", "codex"],
});
Werk tegelijk het pluginmanifest bij:
{
  "contracts": {
    "agentToolResultMiddleware": ["pi", "codex"]
  }
}
Externe plugins kunnen geen tool-result middleware registreren omdat die tooluitvoer met hoog vertrouwen kan herschrijven voordat het model die ziet.
3

Migreer approval-native handlers naar capability facts

Approval-capable channel plugins stellen native approval-gedrag nu beschikbaar via approvalCapability.nativeRuntime plus het gedeelde runtime-contextregister.Belangrijkste wijzigingen:
  • Vervang approvalCapability.handler.loadRuntime(...) door approvalCapability.nativeRuntime
  • Verplaats approval-specifieke auth/delivery van legacy plugin.auth / plugin.approvals-wiring naar approvalCapability
  • ChannelPlugin.approvals is verwijderd uit het publieke channel-plugin contract; verplaats delivery/native/render-velden naar approvalCapability
  • plugin.auth blijft alleen voor kanaal-login-/logoutflows; approval-auth hooks daar worden niet langer door core gelezen
  • Registreer kanaal-owned runtimeobjecten zoals clients, tokens of Bolt apps via openclaw/plugin-sdk/channel-runtime-context
  • Verstuur geen plugin-owned reroute notices vanuit native approval handlers; core is nu eigenaar van routed-elsewhere notices uit daadwerkelijke deliveryresultaten
  • Wanneer je channelRuntime doorgeeft aan createChannelManager(...), geef dan een echte createPluginRuntime().channel-surface op. Gedeeltelijke stubs worden afgewezen.
Zie /plugins/sdk-channel-plugins voor de huidige approval capability layout.
4

Audit Windows-wrapper fallbackgedrag

Als je plugin openclaw/plugin-sdk/windows-spawn gebruikt, falen onopgeloste Windows .cmd/.bat-wrappers nu gesloten, tenzij je expliciet allowShellFallback: true doorgeeft.
// 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,
});
Als je aanroeper niet bewust op shell fallback vertrouwt, stel allowShellFallback dan niet in en handel in plaats daarvan de geworpen fout af.
5

Vind verouderde imports

Doorzoek je plugin naar imports uit een van beide verouderde oppervlakken:
grep -r "plugin-sdk/compat" my-plugin/
grep -r "plugin-sdk/infra-runtime" my-plugin/
grep -r "plugin-sdk/config-runtime" my-plugin/
grep -r "openclaw/extension-api" my-plugin/
6

Vervang door gerichte imports

Elke export uit het oude oppervlak correspondeert met een specifiek modern importpad:
// 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";
Gebruik voor host-side helpers de geïnjecteerde pluginruntime in plaats van rechtstreeks te importeren:
// 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 });
Hetzelfde patroon geldt voor andere verouderde bridge-helpers:
Oude importModern equivalent
resolveAgentDirapi.runtime.agent.resolveAgentDir
resolveAgentWorkspaceDirapi.runtime.agent.resolveAgentWorkspaceDir
resolveAgentIdentityapi.runtime.agent.resolveAgentIdentity
resolveThinkingDefaultapi.runtime.agent.resolveThinkingDefault
resolveAgentTimeoutMsapi.runtime.agent.resolveAgentTimeoutMs
ensureAgentWorkspaceapi.runtime.agent.ensureAgentWorkspace
sessieopslaghelpersapi.runtime.agent.session.*
7

Replace broad infra-runtime imports

openclaw/plugin-sdk/infra-runtime bestaat nog steeds voor externe compatibiliteit, maar nieuwe code moet het gerichte helper-oppervlak importeren dat die daadwerkelijk nodig heeft:
BehoefteImport
Helpers voor de wachtrij voor systeemgebeurtenissenopenclaw/plugin-sdk/system-event-runtime
Helpers voor Heartbeat-gebeurtenissen en zichtbaarheidopenclaw/plugin-sdk/heartbeat-runtime
Leegmaken van wachtrij voor openstaande afleveringopenclaw/plugin-sdk/delivery-queue-runtime
Telemetrie voor kanaalactiviteitopenclaw/plugin-sdk/channel-activity-runtime
In-memory deduplicatiecachesopenclaw/plugin-sdk/dedupe-runtime
Veilige helpers voor lokale bestands-/mediapadenopenclaw/plugin-sdk/file-access-runtime
Dispatcher-bewuste fetchopenclaw/plugin-sdk/runtime-fetch
Helpers voor proxy en bewaakte fetchopenclaw/plugin-sdk/fetch-runtime
Beleidstypen voor SSRF-dispatcheropenclaw/plugin-sdk/ssrf-dispatcher
Typen voor goedkeuringsaanvragen/-oplossingenopenclaw/plugin-sdk/approval-runtime
Helpers voor goedkeuringsantwoordpayloads en opdrachtenopenclaw/plugin-sdk/approval-reply-runtime
Helpers voor foutopmaakopenclaw/plugin-sdk/error-runtime
Wachttijden voor transportgereedheidopenclaw/plugin-sdk/transport-ready-runtime
Helpers voor veilige tokensopenclaw/plugin-sdk/secure-random-runtime
Begrensde gelijktijdigheid van asynchrone takenopenclaw/plugin-sdk/concurrency-runtime
Numerieke conversieopenclaw/plugin-sdk/number-runtime
Proceslokale asynchrone lockopenclaw/plugin-sdk/async-lock-runtime
Bestandslocksopenclaw/plugin-sdk/file-lock
Gebundelde plugins worden door scanners bewaakt tegen infra-runtime, zodat repocode niet kan terugvallen op de brede barrel.
8

Migrate channel route helpers

Nieuwe kanaalroutecode moet openclaw/plugin-sdk/channel-route gebruiken. De oudere route-key- en comparable-target-namen blijven tijdens het migratievenster beschikbaar als compatibiliteitsaliassen, maar nieuwe plugins moeten de routenamen gebruiken die het gedrag rechtstreeks beschrijven:
Oude helperModerne helper
channelRouteIdentityKey(...)channelRouteDedupeKey(...)
channelRouteKey(...)channelRouteCompactKey(...)
ComparableChannelTargetChannelRouteParsedTarget
resolveComparableTargetForChannel(...)resolveRouteTargetForChannel(...)
resolveComparableTargetForLoadedChannel(...)resolveRouteTargetForLoadedChannel(...)
comparableChannelTargetsMatch(...)channelRouteTargetsMatchExact(...)
comparableChannelTargetsShareRoute(...)channelRouteTargetsShareConversation(...)
De moderne routehelpers normaliseren { channel, to, accountId, threadId } consistent voor native goedkeuringen, onderdrukking van antwoorden, inkomende deduplicatie, Cron-aflevering en sessieroutering. Als je plugin eigen doelgrammatica beheert, gebruik dan resolveChannelRouteTargetWithParser(...) om die parser aan te passen aan hetzelfde routedoelcontract.
9

Build and test

pnpm build
pnpm test -- my-plugin/

Referentie voor importpaden

ImportpadDoelBelangrijkste exports
plugin-sdk/plugin-entryCanonieke Plugin-entryhulpfunctiedefinePluginEntry
plugin-sdk/coreVerouderde overkoepelende her-export voor kanaal-entrydefinities/-bouwersdefineChannelPluginEntry, createChatChannelPlugin
plugin-sdk/config-schemaExport van root-configuratieschemaOpenClawSchema
plugin-sdk/provider-entryEntryhulpfunctie voor één providerdefineSingleProviderPluginEntry
plugin-sdk/channel-coreGerichte kanaal-entrydefinities en -bouwersdefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase
plugin-sdk/setupGedeelde hulpfuncties voor de installatiewizardPrompts voor toegestane lijsten, bouwers voor installatiestatus
plugin-sdk/setup-runtimeRuntime-hulpfuncties tijdens installatieImportveilige adapters voor installatiepatches, hulpfuncties voor opzoeknotities, promptResolvedAllowFrom, splitSetupEntries, gedelegeerde installatieproxy’s
plugin-sdk/setup-adapter-runtimeHulpfuncties voor installatieadapterscreateEnvPatchedAccountSetupAdapter
plugin-sdk/setup-toolsHulpfuncties voor installatiehulpmiddelenformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/account-coreHulpfuncties voor meerdere accountsHulpfuncties voor accountlijst/configuratie/actiepoort
plugin-sdk/account-idHulpfuncties voor account-id’sDEFAULT_ACCOUNT_ID, normalisatie van account-id’s
plugin-sdk/account-resolutionHulpfuncties voor accountopzoekingHulpfuncties voor accountopzoeking en standaardterugval
plugin-sdk/account-helpersSmalle accounthulpfunctiesHulpfuncties voor accountlijst/accountactie
plugin-sdk/channel-setupAdapters voor installatiewizardcreateOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, plus DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-pairingPrimitieven voor DM-koppelingcreateChannelPairingController
plugin-sdk/channel-reply-pipelineBedrading voor antwoordprefix, typen en bronleveringcreateChannelReplyPipeline, resolveChannelSourceReplyDeliveryMode
plugin-sdk/channel-config-helpersFabrieken voor configuratieadapters en hulpfuncties voor DM-toegangcreateHybridChannelConfigAdapter, resolveChannelDmAccess, resolveChannelDmAllowFrom, resolveChannelDmPolicy, normalizeChannelDmPolicy, normalizeLegacyDmAliases
plugin-sdk/channel-config-schemaBouwers voor configuratieschema’sGedeelde primitieven voor kanaalconfiguratieschema’s en alleen de generieke bouwer
plugin-sdk/bundled-channel-config-schemaGebundelde configuratieschema’sAlleen door OpenClaw onderhouden gebundelde Plugins; nieuwe Plugins moeten Plugin-lokale schema’s definiëren
plugin-sdk/channel-config-schema-legacyVerouderde gebundelde configuratieschema’sAlleen compatibiliteitsalias; gebruik plugin-sdk/bundled-channel-config-schema voor onderhouden gebundelde Plugins
plugin-sdk/telegram-command-configHulpfuncties voor Telegram-opdrachtconfiguratieNormalisatie van opdrachtnamen, inkorten van beschrijvingen, validatie van duplicaten/conflicten
plugin-sdk/channel-policyBeleidsresolutie voor groep/DMresolveChannelGroupRequireMention
plugin-sdk/channel-lifecycleHulpfuncties voor accountstatus en levenscyclus van conceptstreamcreateAccountStatusSink, hulpfuncties voor afronding van conceptvoorvertoning
plugin-sdk/inbound-envelopeHulpfuncties voor inkomende enveloppenGedeelde hulpfuncties voor route- en envelopbouwer
plugin-sdk/inbound-reply-dispatchHulpfuncties voor inkomende antwoordenGedeelde hulpfuncties voor registreren en dispatchen
plugin-sdk/messaging-targetsParseren van berichtdoelenHulpfuncties voor doelparsering/-matching
plugin-sdk/outbound-mediaHulpfuncties voor uitgaande mediaGedeeld laden van uitgaande media
plugin-sdk/outbound-send-depsHulpfuncties voor afhankelijkheden van uitgaand verzendenLichtgewicht resolveOutboundSendDep-opzoeking zonder de volledige uitgaande runtime te importeren
plugin-sdk/outbound-runtimeUitgaande runtime-hulpfunctiesHulpfuncties voor uitgaande levering, identiteits-/verzenddelegatie, sessie, opmaak en payloadplanning
plugin-sdk/thread-bindings-runtimeHulpfuncties voor threadbindingLevenscyclus- en adapterhulpfuncties voor threadbinding
plugin-sdk/agent-media-payloadVerouderde hulpfuncties voor mediapayloadsBouwer voor agent-mediapayloads voor verouderde veldindelingen
plugin-sdk/channel-runtimeVerouderde compatibiliteitsshimAlleen verouderde kanaalruntimehulpmiddelen
plugin-sdk/channel-send-resultTypen voor verzendresultatenTypen voor antwoordresultaten
plugin-sdk/runtime-storePersistente Plugin-opslagcreatePluginRuntimeStore
plugin-sdk/runtimeBrede runtime-hulpfunctiesHulpfuncties voor runtime/logging/back-up/Plugin-installatie
plugin-sdk/runtime-envSmalle hulpfuncties voor runtime-omgevingHulpfuncties voor logger/runtime-omgeving, time-out, opnieuw proberen en back-off
plugin-sdk/plugin-runtimeGedeelde Plugin-runtimehulpfunctiesHulpfuncties voor Plugin-opdrachten/hooks/http/interactief
plugin-sdk/hook-runtimeHulpfuncties voor hook-pijplijnGedeelde hulpfuncties voor Webhook/interne hook-pijplijn
plugin-sdk/lazy-runtimeLazy runtime-hulpfunctiescreateLazyRuntimeModule, createLazyRuntimeMethod, createLazyRuntimeMethodBinder, createLazyRuntimeNamedExport, createLazyRuntimeSurface
plugin-sdk/process-runtimeProceshulpfunctiesGedeelde uitvoerhulpfuncties
plugin-sdk/cli-runtimeCLI-runtimehulpfunctiesOpdrachtopmaak, wachttijden, versiehulpfuncties
plugin-sdk/gateway-runtimeGateway-hulpfunctiesGateway-client, starthulpfunctie voor event-loop-gereedheid en hulpfuncties voor kanaalstatuspatches
plugin-sdk/config-runtimeVerouderde compatibiliteitsshim voor configuratieGeef de voorkeur aan config-types, plugin-config-runtime, runtime-config-snapshot en config-mutation
plugin-sdk/telegram-command-configHulpfuncties voor Telegram-opdrachtenTerugvalstabiele hulpfuncties voor validatie van Telegram-opdrachten wanneer het gebundelde Telegram-contractoppervlak niet beschikbaar is
plugin-sdk/approval-runtimeHulpfuncties voor goedkeuringspromptPayload voor exec-/Plugin-goedkeuring, hulpfuncties voor goedkeuringsmogelijkheid/-profiel, routering/runtime voor native goedkeuring en opmaak van gestructureerd weergavepad voor goedkeuring
plugin-sdk/approval-auth-runtimeHulpfuncties voor goedkeuringsauthenticatieOplossing van goedkeurder, actie-authenticatie in dezelfde chat
plugin-sdk/approval-client-runtimeHulpfuncties voor goedkeuringsclientNative hulpfuncties voor exec-goedkeuringsprofiel/-filter
plugin-sdk/approval-delivery-runtimeHulpfuncties voor goedkeuringsleveringNative adapters voor goedkeuringsmogelijkheid/-levering
plugin-sdk/approval-gateway-runtimeHulpfuncties voor goedkeurings-GatewayGedeelde hulpfunctie voor Gateway-resolutie van goedkeuringen
plugin-sdk/approval-handler-adapter-runtimeHulpfuncties voor goedkeuringsadaptersLichtgewicht hulpfuncties voor het laden van native goedkeuringsadapters voor hete kanaal-entrypoints
plugin-sdk/approval-handler-runtimeHulpfuncties voor goedkeuringshandlersBredere runtime-hulpfuncties voor goedkeuringshandlers; geef de voorkeur aan de smallere adapter-/Gateway-naden wanneer die voldoende zijn
plugin-sdk/approval-native-runtimeHulpfuncties voor goedkeuringsdoelenNative hulpfuncties voor goedkeuringsdoel-/accountbinding
plugin-sdk/approval-reply-runtimeHulpfuncties voor goedkeuringsantwoordenHulpfuncties voor payloads van exec-/Plugin-goedkeuringsantwoorden
plugin-sdk/channel-runtime-contextHulpfuncties voor kanaalruntimecontextGenerieke hulpfuncties voor registreren/ophalen/bewaken van kanaalruntimecontext
plugin-sdk/security-runtimeBeveiligingshulpfunctiesGedeelde hulpfuncties voor vertrouwen, DM-poort, externe inhoud en geheimverzameling
plugin-sdk/ssrf-policyHulpfuncties voor SSRF-beleidHulpfuncties voor host-toegestane lijst en privénetwerkbeleid
plugin-sdk/ssrf-runtimeSSRF-runtimehulpfunctiesVastgezette dispatcher, bewaakte fetch, hulpfuncties voor SSRF-beleid
plugin-sdk/system-event-runtimeHulpfuncties voor systeemgebeurtenissenenqueueSystemEvent, peekSystemEventEntries
plugin-sdk/heartbeat-runtimeHeartbeat-hulpfunctiesHulpfuncties voor Heartbeat-gebeurtenis en zichtbaarheid
plugin-sdk/delivery-queue-runtimeHulpfuncties voor leveringswachtrijdrainPendingDeliveries
plugin-sdk/channel-activity-runtimeHulpfuncties voor kanaalactiviteitrecordChannelActivity
plugin-sdk/dedupe-runtimeHulpfuncties voor deduplicatieIn-memory deduplicatiecaches
plugin-sdk/file-access-runtimeHulpfuncties voor bestandstoegangVeilige hulpfuncties voor lokale bestands-/mediapaden
plugin-sdk/transport-ready-runtimeHulpfuncties voor transportgereedheidwaitForTransportReady
plugin-sdk/collection-runtimeHulpfuncties voor begrensde cachepruneMapToMaxSize
plugin-sdk/diagnostic-runtimeHulpfuncties voor diagnostische gatingisDiagnosticFlagEnabled, isDiagnosticsEnabled
plugin-sdk/error-runtimeHulpfuncties voor foutopmaakformatUncaughtError, isApprovalNotFoundError, hulpfuncties voor foutgrafen
plugin-sdk/fetch-runtimeHulpfuncties voor omwikkelde fetch/proxyresolveFetch, proxyhulpfuncties, hulpfuncties voor EnvHttpProxyAgent-opties
plugin-sdk/host-runtimeHulpfuncties voor hostnormalisatienormalizeHostname, normalizeScpRemoteHost
plugin-sdk/retry-runtimeHulpfuncties voor opnieuw proberenRetryConfig, retryAsync, beleidsrunners
plugin-sdk/allow-fromOpmaak van toegestane lijstformatAllowFromLowercase
plugin-sdk/allowlist-resolutionInvoermapping voor toegestane lijstmapAllowlistResolutionInputs
plugin-sdk/command-authHulpfuncties voor opdrachtgating en opdrachtoppervlakresolveControlCommandGate, hulpfuncties voor afzenderautorisatie, hulpfuncties voor opdrachtregister inclusief opmaak van dynamisch argumentmenu
plugin-sdk/command-statusRenderers voor opdrachtstatus/helpbuildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage
plugin-sdk/secret-inputParseren van geheime invoerHulpfuncties voor geheime invoer
plugin-sdk/webhook-ingressHulpfuncties voor Webhook-verzoekenHulpmiddelen voor Webhook-doelen
plugin-sdk/webhook-request-guardsHulpfuncties voor Webhook-bodyguardHulpfuncties voor lezen/beperken van requestbody
plugin-sdk/reply-runtimeGedeelde antwoordruntimeInkomende dispatch, Heartbeat, antwoordplanner, opdelen in chunks
plugin-sdk/reply-dispatch-runtimeSmalle hulpfuncties voor antwoorddispatchAfronden, providerdispatch en hulpfuncties voor gesprekslabels
plugin-sdk/reply-historyHulpfuncties voor antwoordgeschiedenisbuildHistoryContext, buildPendingHistoryContextFromMap, recordPendingHistoryEntry, clearHistoryEntriesIfEnabled
plugin-sdk/reply-referencePlanning van antwoordverwijzingencreateReplyReferencePlanner
plugin-sdk/reply-chunkingHulpfuncties voor antwoordchunksHulpfuncties voor opdelen van tekst/markdown in chunks
plugin-sdk/session-store-runtimeHulpfuncties voor sessiestoreStorepad en bijgewerkt-op-hulpfuncties
plugin-sdk/state-pathsHulpfuncties voor statuspadenStatus- en OAuth-map-hulpfuncties
plugin-sdk/routingHulpfuncties voor routing/sessiesleutelresolveAgentRoute, buildAgentSessionKey, resolveDefaultAgentBoundAccountId, hulpfuncties voor normalisatie van sessiesleutels
plugin-sdk/status-helpersHulpfuncties voor kanaalstatusBouwers voor kanaal-/accountstatussamenvattingen, standaardwaarden voor runtime-status, hulpfuncties voor probleemmetadata
plugin-sdk/target-resolver-runtimeHulpfuncties voor doelresolverGedeelde hulpfuncties voor doelresolver
plugin-sdk/string-normalization-runtimeHulpfuncties voor tekenreeksnormalisatieHulpfuncties voor slug-/tekenreeksnormalisatie
plugin-sdk/request-urlHulpfuncties voor request-URLHaal tekenreeks-URL’s uit request-achtige invoer
plugin-sdk/run-commandHulpfuncties voor getimede opdrachtenGetimede opdrachtrunner met genormaliseerde stdout/stderr
plugin-sdk/param-readersParamlezersAlgemene paramlezers voor tools/CLI
plugin-sdk/tool-payloadExtractie van toolpayloadsExtraheer genormaliseerde payloads uit toolresultaatobjecten
plugin-sdk/tool-sendExtractie van toolverzendingExtraheer canonieke doelvelden voor verzenden uit toolargumenten
plugin-sdk/temp-pathHulpfuncties voor tijdelijke padenGedeelde hulpfuncties voor tijdelijke downloadpaden
plugin-sdk/logging-coreLogging-hulpfunctiesHulpfuncties voor subsystemloggers en redactie
plugin-sdk/markdown-table-runtimeHulpfuncties voor Markdown-tabellenHulpfuncties voor Markdown-tabelmodi
plugin-sdk/reply-payloadTypen voor berichtantwoordenTypen voor antwoordpayloads
plugin-sdk/provider-setupSamengestelde hulpfuncties voor lokale/zelfgehoste providerconfiguratieHulpfuncties voor detectie/configuratie van zelfgehoste providers
plugin-sdk/self-hosted-provider-setupGerichte hulpfuncties voor OpenAI-compatibele zelfgehoste providerconfiguratieDezelfde hulpfuncties voor detectie/configuratie van zelfgehoste providers
plugin-sdk/provider-auth-runtimeHulpfuncties voor provider-runtimeauthenticatieHulpfuncties voor runtime-resolutie van API-sleutels
plugin-sdk/provider-auth-api-keyHulpfuncties voor provider-API-sleutelconfiguratieHulpfuncties voor onboarding/API-sleutelprofielschrijven
plugin-sdk/provider-auth-resultHulpfuncties voor provider-authenticatieresultatenStandaardbouwer voor OAuth-authenticatieresultaten
plugin-sdk/provider-auth-loginHulpfuncties voor interactieve providerloginGedeelde hulpfuncties voor interactieve login
plugin-sdk/provider-selection-runtimeHulpfuncties voor providerselectieGeconfigureerde-of-automatische providerselectie en samenvoegen van ruwe providerconfiguratie
plugin-sdk/provider-env-varsHulpfuncties voor provideromgevingsvariabelenHulpfuncties voor opzoeken van provider-authenticatieomgevingsvariabelen
plugin-sdk/provider-model-sharedGedeelde hulpfuncties voor providermodel/replayProviderReplayFamily, buildProviderReplayFamilyHooks, normalizeModelCompat, gedeelde replay-beleidsbouwers, provider-endpointhulpfuncties en hulpfuncties voor model-id-normalisatie
plugin-sdk/provider-catalog-sharedGedeelde hulpfuncties voor providercatalogusfindCatalogTemplate, buildSingleProviderApiKeyCatalog, buildManifestModelProviderConfig, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-onboardPatches voor provideronboardingHulpfuncties voor onboardingconfiguratie
plugin-sdk/provider-httpProvider-HTTP-hulpfunctiesGenerieke hulpfuncties voor provider-HTTP/endpointmogelijkheden, inclusief hulpfuncties voor audio-transcriptieformulieren met multipart
plugin-sdk/provider-web-fetchProvider-web-fetch-hulpfunctiesHulpfuncties voor registratie/cache van web-fetch-providers
plugin-sdk/provider-web-search-config-contractHulpfuncties voor provider-web-search-configuratieGerichte hulpfuncties voor web-search-configuratie/referenties voor providers die geen Plugin-enable-bedrading nodig hebben
plugin-sdk/provider-web-search-contractHulpfuncties voor provider-web-search-contractenGerichte hulpfuncties voor web-search-configuratie/referentiecontracten, zoals createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig en scoped referentie-setters/getters
plugin-sdk/provider-web-searchProvider-web-search-hulpfunctiesHulpfuncties voor registratie/cache/runtime van web-search-providers
plugin-sdk/provider-toolsHulpfuncties voor provider-tool/schema-compatibiliteitProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, Gemini-schemaopschoning + diagnostiek en xAI-compatibiliteitshulpfuncties zoals resolveXaiModelCompatPatch / applyXaiModelCompat
plugin-sdk/provider-usageHulpfuncties voor providergebruikfetchClaudeUsage, fetchGeminiUsage, fetchGithubCopilotUsage en andere hulpfuncties voor providergebruik
plugin-sdk/provider-streamHulpfuncties voor providerstream-wrappersProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, typen voor stream-wrappers en gedeelde wrapperhulpfuncties voor Anthropic/Bedrock/DeepSeek V4/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot
plugin-sdk/provider-transport-runtimeHulpfuncties voor providertransportNative hulpfuncties voor providertransport, zoals bewaakte fetch, transformaties van transportberichten en schrijfbare transporteventstreams
plugin-sdk/keyed-async-queueGeordende asynchrone wachtrijKeyedAsyncQueue
plugin-sdk/media-runtimeGedeelde mediahulpfunctiesHulpfuncties voor media ophalen/transformeren/opslaan, ffprobe-ondersteunde probing van videoafmetingen en bouwers voor mediapayloads
plugin-sdk/media-generation-runtimeGedeelde hulpfuncties voor mediageneratieGedeelde failover-hulpfuncties, kandidaatselectie en berichten over ontbrekende modellen voor beeld-/video-/muziekgeneratie
plugin-sdk/media-understandingHulpfuncties voor mediabegripProvidertypen voor mediabegrip plus providergerichte exports voor beeld-/audiohulpfuncties
plugin-sdk/text-runtimeGedeelde teksthulpfunctiesVerwijderen van voor assistenten zichtbare tekst, hulpfuncties voor Markdown-rendering/chunking/tabellen, redactiehulpfuncties, hulpfuncties voor directivetags, veilige-teksthulpprogramma’s en gerelateerde tekst-/logginghulpfuncties
plugin-sdk/text-chunkingHulpfuncties voor tekstchunkingHulpfunctie voor uitgaande tekstchunking
plugin-sdk/speechSpraakhulpfunctiesSpraakprovidertypen plus providergerichte hulpfuncties voor directives, register en validatie, en OpenAI-compatibele TTS-bouwer
plugin-sdk/speech-coreGedeelde spraakkernSpraakprovidertypen, register, directives, normalisatie
plugin-sdk/realtime-transcriptionHulpfuncties voor realtime transcriptieProvidertypen, registerhulpfuncties en gedeelde WebSocket-sessiehulpfunctie
plugin-sdk/realtime-voiceHulpfuncties voor realtime spraakProvidertypen, hulpfuncties voor register/resolutie en brugsessiehulpfuncties
plugin-sdk/image-generationHulpfuncties voor beeldgeneratieProvidertypen voor beeldgeneratie plus hulpfuncties voor beeldassets/data-URL’s en de OpenAI-compatibele beeldproviderbouwer
plugin-sdk/image-generation-coreGedeelde kern voor beeldgeneratieTypen voor beeldgeneratie, failover, authenticatie en registerhulpfuncties
plugin-sdk/music-generationHulpfuncties voor muziekgeneratieProvider-/aanvraag-/resultaattypen voor muziekgeneratie
plugin-sdk/music-generation-coreGedeelde kern voor muziekgeneratieTypen voor muziekgeneratie, failover-hulpfuncties, providerlookup en model-ref-parsing
plugin-sdk/video-generationHulpfuncties voor videogeneratieProvider-/aanvraag-/resultaattypen voor videogeneratie
plugin-sdk/video-generation-coreGedeelde kern voor videogeneratieTypen voor videogeneratie, failover-hulpfuncties, providerlookup en model-ref-parsing
plugin-sdk/interactive-runtimeHulpfuncties voor interactieve antwoordenNormalisatie/reductie van interactieve antwoordpayloads
plugin-sdk/channel-config-primitivesPrimitieven voor kanaalconfiguratieGerichte primitieven voor kanaalconfiguratieschema’s
plugin-sdk/channel-config-writesHulpfuncties voor schrijven van kanaalconfiguratieAutorisatiehulpfuncties voor schrijven van kanaalconfiguratie
plugin-sdk/channel-plugin-commonGedeelde kanaalpreludeGedeelde exports voor kanaal-Plugin-prelude
plugin-sdk/channel-statusHulpfuncties voor kanaalstatusGedeelde hulpfuncties voor kanaalstatussnapshots/-samenvattingen
plugin-sdk/allowlist-config-editHulpfuncties voor allowlist-configuratieHulpfuncties voor bewerken/lezen van allowlist-configuratie
plugin-sdk/group-accessHulpfuncties voor groepstoegangGedeelde beslissingshulpfuncties voor groepstoegang
plugin-sdk/direct-dmHulpfuncties voor directe DMGedeelde hulpfuncties voor directe-DM-authenticatie/-guards
plugin-sdk/extension-sharedGedeelde extensiehulpfunctiesPrimitieven voor passief kanaal/status en ambient proxy-hulpfuncties
plugin-sdk/webhook-targetsHulpfuncties voor Webhook-doelenWebhook-doelregister en hulpfuncties voor route-installatie
plugin-sdk/webhook-pathHulpfuncties voor Webhook-padenHulpfuncties voor normalisatie van Webhook-paden
plugin-sdk/web-mediaGedeelde webmediahulpfunctiesHulpfuncties voor laden van externe/lokale media
plugin-sdk/zodZod-herexportGeherexporteerde zod voor Plugin-SDK-consumenten
plugin-sdk/memory-coreGebundelde memory-core-hulpfunctiesHulpoppervlak voor geheugenmanager/configuratie/bestand/CLI
plugin-sdk/memory-core-engine-runtimeRuntimefacade voor geheugenengineRuntimefacade voor geheugenindex/-zoekfunctie
plugin-sdk/memory-core-host-engine-foundationFoundation-engine voor geheugenhostExports van foundation-engine voor geheugenhost
plugin-sdk/memory-core-host-engine-embeddingsEmbeddingengine voor geheugenhostGeheugenembeddingcontracten, registertoegang, lokale provider en generieke batch-/remote-hulpfuncties; concrete remote providers staan in hun eigen Plugins
plugin-sdk/memory-core-host-engine-qmdQMD-engine voor geheugenhostExports van QMD-engine voor geheugenhost
plugin-sdk/memory-core-host-engine-storageOpslagengine voor geheugenhostExports van opslagengine voor geheugenhost
plugin-sdk/memory-core-host-multimodalMultimodale hulpfuncties voor geheugenhostMultimodale hulpfuncties voor geheugenhost
plugin-sdk/memory-core-host-queryQueryhulpfuncties voor geheugenhostQueryhulpfuncties voor geheugenhost
plugin-sdk/memory-core-host-secretGeheimhulpfuncties voor geheugenhostGeheimhulpfuncties voor geheugenhost
plugin-sdk/memory-core-host-eventsHulpfuncties voor eventjournaal van geheugenhostHulpfuncties voor eventjournaal van geheugenhost
plugin-sdk/memory-core-host-statusStatushulpfuncties voor geheugenhostStatushulpfuncties voor geheugenhost
plugin-sdk/memory-core-host-runtime-cliCLI-runtime voor geheugenhostCLI-runtimehulpfuncties voor geheugenhost
plugin-sdk/memory-core-host-runtime-coreKernruntime voor geheugenhostKernruntimehulpfuncties voor geheugenhost
plugin-sdk/memory-core-host-runtime-filesBestands-/runtimehulpfuncties voor geheugenhostBestands-/runtimehulpfuncties voor geheugenhost
plugin-sdk/memory-host-coreAlias voor kernruntime van geheugenhostLeverancieronafhankelijke alias voor kernruntimehulpfuncties van geheugenhost
plugin-sdk/memory-host-eventsAlias voor eventjournaal van geheugenhostLeverancieronafhankelijke alias voor hulpfuncties voor eventjournaal van geheugenhost
plugin-sdk/memory-host-filesAlias voor bestands-/runtime van geheugenhostLeverancieronafhankelijke alias voor bestands-/runtimehulpfuncties van geheugenhost
plugin-sdk/memory-host-markdownHulpfuncties voor beheerde MarkdownGedeelde hulpfuncties voor beheerde Markdown voor geheugenverwante Plugins
plugin-sdk/memory-host-searchZoekfacade voor Active MemoryLuie runtimefacade voor Active Memory-zoekmanager
plugin-sdk/memory-host-statusAlias voor geheugenhoststatusLeverancieronafhankelijke alias voor statushulpfuncties van geheugenhost
plugin-sdk/testingTesthulpprogramma’sVerouderd breed compatibiliteitsbarrel; geef de voorkeur aan gerichte testsubpaden zoals plugin-sdk/plugin-test-runtime, plugin-sdk/channel-test-helpers, plugin-sdk/channel-target-testing, plugin-sdk/test-env en plugin-sdk/test-fixtures
Deze tabel is bewust de gemeenschappelijke migratiesubset, niet het volledige SDK-oppervlak. De volledige lijst met meer dan 200 entrypoints staat in scripts/lib/plugin-sdk-entrypoints.json. Gereserveerde hulpkoppelingen voor gebundelde plugins zijn uit de export-map van de openbare SDK verwijderd, behalve expliciet gedocumenteerde compatibiliteitsfacades zoals de verouderde plugin-sdk/discord-shim die is behouden voor het gepubliceerde @openclaw/discord@2026.3.13-pakket. Eigenaar-specifieke helpers staan binnen het eigenaars-pluginpakket; gedeeld hostgedrag moet via generieke SDK-contracten lopen, zoals plugin-sdk/gateway-runtime, plugin-sdk/security-runtime en plugin-sdk/plugin-config-runtime. Gebruik de smalste import die bij de taak past. Als je geen export kunt vinden, controleer dan de bron in src/plugin-sdk/ of vraag maintainers welk generiek contract er eigenaar van zou moeten zijn.

Actieve deprecations

Smallere deprecations die gelden voor de plugin-SDK, het providercontract, het runtime-oppervlak en het manifest. Elk ervan werkt vandaag nog, maar wordt in een toekomstige major release verwijderd. De vermelding onder elk item koppelt de oude API aan de canonieke vervanging.
Oud (openclaw/plugin-sdk/command-auth): buildCommandsMessage, buildCommandsMessagePaginated, buildHelpMessage.Nieuw (openclaw/plugin-sdk/command-status): dezelfde signatures, dezelfde exports — alleen geïmporteerd vanuit het smallere subpad. command-auth exporteert ze opnieuw als compat-stubs.
// Before
import { buildHelpMessage } from "openclaw/plugin-sdk/command-auth";

// After
import { buildHelpMessage } from "openclaw/plugin-sdk/command-status";
Oud: resolveInboundMentionRequirement({ facts, policy }) en shouldDropInboundForMention(...) uit openclaw/plugin-sdk/channel-inbound of openclaw/plugin-sdk/channel-mention-gating.Nieuw: resolveInboundMentionDecision({ facts, policy }) — retourneert één beslissingsobject in plaats van twee gesplitste calls.Downstream kanaalplugins (Slack, Discord, Matrix, MS Teams) zijn al overgestapt.
openclaw/plugin-sdk/channel-runtime is een compatibiliteitsshim voor oudere kanaalplugins. Importeer dit niet vanuit nieuwe code; gebruik openclaw/plugin-sdk/channel-runtime-context om runtime-objecten te registreren.channelActions*-helpers in openclaw/plugin-sdk/channel-actions zijn deprecated naast ruwe “actions”-kanaalexports. Stel capabilities in plaats daarvan beschikbaar via het semantische presentation-oppervlak — kanaalplugins declareren wat ze renderen (kaarten, knoppen, keuzelijsten) in plaats van welke ruwe action-namen ze accepteren.
Oud: tool()-factory uit openclaw/plugin-sdk/provider-web-search.Nieuw: implementeer createTool(...) direct op de providerplugin. OpenClaw heeft de SDK-helper niet langer nodig om de tool-wrapper te registreren.
Oud: formatInboundEnvelope(...) (en ChannelMessageForAgent.channelEnvelope) om een platte plaintext prompt-envelope te bouwen uit inkomende kanaalberichten.Nieuw: BodyForAgent plus gestructureerde user-contextblokken. Kanaalplugins voegen routingmetadata (thread, topic, reply-to, reactions) toe als getypte velden in plaats van ze in een promptstring samen te voegen. De formatAgentEnvelope(...)-helper wordt nog steeds ondersteund voor gesynthetiseerde assistant-facing envelopes, maar inkomende plaintext envelopes worden uitgefaseerd.Betrokken gebieden: inbound_claim, message_received en elke aangepaste kanaalplugin die channelEnvelope-tekst naverwerkte.
Vier discovery-typealiases zijn nu dunne wrappers rond de catalog-era-typen:
Oude aliasNieuw type
ProviderDiscoveryOrderProviderCatalogOrder
ProviderDiscoveryContextProviderCatalogContext
ProviderDiscoveryResultProviderCatalogResult
ProviderPluginDiscoveryProviderPluginCatalog
Plus de legacy statische ProviderCapabilities-container — providerplugins moeten expliciete providerhooks gebruiken, zoals buildReplayPolicy, normalizeToolSchemas en wrapStreamFn, in plaats van een statisch object.
Oud (drie afzonderlijke hooks op ProviderThinkingPolicy): isBinaryThinking(ctx), supportsXHighThinking(ctx) en resolveDefaultThinkingLevel(ctx).Nieuw: één resolveThinkingProfile(ctx) die een ProviderThinkingProfile retourneert met de canonieke id, optionele label en gerangschikte level-lijst. OpenClaw downgradet automatisch verouderde opgeslagen waarden op basis van profielrang.Implementeer één hook in plaats van drie. De legacy hooks blijven tijdens de deprecationperiode werken, maar worden niet samengesteld met het profielresultaat.
Oud: resolveExternalOAuthProfiles(...) implementeren zonder de provider in het pluginmanifest te declareren.Nieuw: declareer contracts.externalAuthProviders in het pluginmanifest en implementeer resolveExternalAuthProfiles(...). Het oude “auth fallback”-pad geeft tijdens runtime een waarschuwing en wordt verwijderd.
{
  "contracts": {
    "externalAuthProviders": ["anthropic", "openai"]
  }
}
Oud manifestveld: providerAuthEnvVars: { anthropic: ["ANTHROPIC_API_KEY"] }.Nieuw: spiegel dezelfde env-var lookup naar setup.providers[].envVars in het manifest. Dit consolideert setup/status-env-metadata op één plek en voorkomt dat de plugin-runtime moet opstarten alleen om env-var lookups te beantwoorden.providerAuthEnvVars blijft ondersteund via een compatibiliteitsadapter totdat de deprecationperiode sluit.
Oud: drie afzonderlijke calls — api.registerMemoryPromptSection(...), api.registerMemoryFlushPlan(...), api.registerMemoryRuntime(...).Nieuw: één call op de memory-state-API — registerMemoryCapability(pluginId, { promptBuilder, flushPlanResolver, runtime }).Dezelfde slots, één registratiecall. Additieve memory-helpers (registerMemoryPromptSupplement, registerMemoryCorpusSupplement, registerMemoryEmbeddingProvider) worden niet beïnvloed.
Twee legacy typealiases worden nog steeds geëxporteerd uit src/plugins/runtime/types.ts:
OudNieuw
SubagentReadSessionParamsSubagentGetSessionMessagesParams
SubagentReadSessionResultSubagentGetSessionMessagesResult
De runtimemethode readSession is deprecated ten gunste van getSessionMessages. Dezelfde signature; de oude methode roept de nieuwe aan.
Oud: runtime.tasks.flow (enkelvoud) retourneerde een live task-flow-accessor.Nieuw: runtime.tasks.managedFlows behoudt de beheerde TaskFlow-mutatie runtime voor plugins die child tasks vanuit een flow aanmaken, bijwerken, annuleren of uitvoeren. Gebruik runtime.tasks.flows wanneer de plugin alleen DTO-gebaseerde reads nodig heeft.
// Before
const flow = api.runtime.tasks.flow.fromToolContext(ctx);
// After
const flow = api.runtime.tasks.managedFlows.fromToolContext(ctx);
Behandeld in “Migreren → Pi tool-result extensions migreren naar middleware” hierboven. Hier opgenomen voor de volledigheid: het verwijderde, Pi-only api.registerEmbeddedExtensionFactory(...)-pad is vervangen door api.registerAgentToolResultMiddleware(...) met een expliciete runtimelijst in contracts.agentToolResultMiddleware.
OpenClawSchemaType, opnieuw geëxporteerd vanuit openclaw/plugin-sdk, is nu een eenregelige alias voor OpenClawConfig. Geef de voorkeur aan de canonieke naam.
// Before
import type { OpenClawSchemaType } from "openclaw/plugin-sdk";
// After
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-schema";
Deprecations op extensieniveau (binnen gebundelde kanaal/providerplugins onder extensions/) worden bijgehouden binnen hun eigen api.ts- en runtime-api.ts- barrels. Ze beïnvloeden geen third-party plugincontracten en staan hier niet vermeld. Als je de lokale barrel van een gebundelde plugin direct consumeert, lees dan de deprecation-opmerkingen in die barrel voordat je upgradet.

Verwijderingstijdlijn

WanneerWat er gebeurt
NuDeprecated oppervlakken geven runtimewaarschuwingen
Volgende major releaseDeprecated oppervlakken worden verwijderd; plugins die ze nog gebruiken falen
Alle core plugins zijn al gemigreerd. Externe plugins moeten vóór de volgende major release migreren.

De waarschuwingen tijdelijk onderdrukken

Stel deze omgevingsvariabelen in terwijl je aan de migratie werkt:
OPENCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 openclaw gateway run
OPENCLAW_SUPPRESS_EXTENSION_API_WARNING=1 openclaw gateway run
Dit is een tijdelijke escape hatch, geen permanente oplossing.

Gerelateerd