Plugins
Plugin-compatibiliteit
OpenClaw houdt oudere plugincontracten verbonden via benoemde compatibiliteitsadapters voordat ze worden verwijderd. Dit beschermt bestaande gebundelde en externe plugins terwijl de SDK-, manifest-, setup-, config- en agentruntimecontracten evolueren.
Compatibiliteitsregister
Plugincompatibiliteitscontracten worden bijgehouden in het kernregister op
src/plugins/compat/registry.ts.
Elk record heeft:
- een stabiele compatibiliteitscode
- status:
active,deprecated,removal-pendingofremoved - eigenaar: SDK, config, setup, kanaal, provider, pluginuitvoering, agentruntime, of core
- introductie- en afschaffingsdatums waar van toepassing
- vervangingsrichtlijnen
- docs, diagnostiek en tests die het oude en nieuwe gedrag dekken
Het register is de bron voor maintainerplanning en toekomstige controles van de plugin inspector. Als plugin-facing gedrag verandert, voeg dan het compatibiliteitsrecord toe of werk het bij in dezelfde wijziging die de adapter toevoegt.
Compatibiliteit voor doctor-reparatie en migratie wordt apart bijgehouden op
src/commands/doctor/shared/deprecation-compat.ts. Die records dekken oude configvormen, install-ledger-indelingen en reparatieshims die mogelijk beschikbaar moeten blijven nadat het runtimecompatibiliteitspad is verwijderd.
Releasesweeps moeten beide registers controleren. Verwijder een doctormigratie niet alleen omdat het bijbehorende runtime- of configcompatibiliteitsrecord is verlopen; verifieer eerst dat er geen ondersteund upgradepad is dat de reparatie nog nodig heeft. Valideer ook elke vervangingsannotatie opnieuw tijdens releaseplanning, omdat plugineigendom en configfootprint kunnen veranderen wanneer providers en kanalen uit core worden verplaatst.
Plugin inspector-pakket
De plugin inspector hoort buiten de core OpenClaw-repo te staan als een apart pakket/repository, ondersteund door de versiebeheercompatibiliteits- en manifestcontracten.
De CLI op dag één moet zijn:
openclaw-plugin-inspector ./my-plugin
Deze moet uitvoeren:
- manifest-/schemavalidatie
- de contractcompatibiliteitsversie die wordt gecontroleerd
- controles op install-/bronmetadata
- importcontroles voor koude paden
- afschaffings- en compatibiliteitswaarschuwingen
Gebruik --json voor stabiele machineleesbare output in CI-annotaties. OpenClaw core moet contracten en fixtures beschikbaar maken die de inspector kan gebruiken, maar mag de inspector-binary niet publiceren vanuit het hoofdpackage openclaw.
Acceptatielane voor maintainers
Gebruik Blacksmith Testbox voor de acceptatielane van het installeerbare pakket wanneer je de externe inspector valideert tegen OpenClaw-pluginpakketten. Voer dit uit vanuit een schone OpenClaw-checkout nadat het pakket is gebouwd:
blacksmith testbox warmup ci-check-testbox.yml --ref main --idle-timeout 90
blacksmith testbox run --id <tbx_id> "pnpm install && pnpm build && npm exec --yes @openclaw/[email protected] -- ./extensions/telegram --json"
blacksmith testbox run --id <tbx_id> "npm exec --yes @openclaw/[email protected] -- ./extensions/discord --json"
blacksmith testbox run --id <tbx_id> "npm exec --yes @openclaw/[email protected] -- <clawhub-plugin-dir> --json"
blacksmith testbox stop <tbx_id>
Houd deze lane opt-in voor maintainers, omdat deze een extern npm-pakket installeert en pluginpakketten kan inspecteren die buiten de repo zijn gekloond. De lokale repoguards dekken de SDK-exportmap, metadata van het compatibiliteitsregister, afbouw van verouderde SDK-imports en importgrenzen van gebundelde extensies; Testbox-inspectorbewijs dekt het pakket zoals externe pluginauteurs het gebruiken.
Afschaffingsbeleid
OpenClaw mag een gedocumenteerd plugincontract niet verwijderen in dezelfde release die de vervanging introduceert.
De migratievolgorde is:
- Voeg het nieuwe contract toe.
- Houd het oude gedrag verbonden via een benoemde compatibiliteitsadapter.
- Geef diagnostiek of waarschuwingen wanneer pluginauteurs actie kunnen ondernemen.
- Documenteer de vervanging en tijdlijn.
- Test zowel oude als nieuwe paden.
- Wacht gedurende het aangekondigde migratievenster.
- Verwijder alleen met expliciete goedkeuring voor een breaking release.
Verouderde records moeten een begindatum voor waarschuwingen, vervanging, docslink en definitieve verwijderingsdatum bevatten, niet meer dan drie maanden nadat de waarschuwingen starten. Voeg geen verouderd compatibiliteitspad toe met een open verwijderingsvenster, tenzij maintainers expliciet besluiten dat het permanente compatibiliteit is en het in plaats daarvan als active markeren.
Huidige compatibiliteitsgebieden
Huidige compatibiliteitsrecords omvatten:
- oude brede SDK-imports zoals
openclaw/plugin-sdk/compat - oude hook-only pluginvormen en
before_agent_start - oude
activate(api)pluginentrypoints terwijl plugins migreren naarregister(api) - oude SDK-aliassen zoals
openclaw/extension-api,openclaw/plugin-sdk/channel-runtime,openclaw/plugin-sdk/command-authstatusbuilders,openclaw/plugin-sdk/test-utils(vervangen door gerichteopenclaw/plugin-sdk/*testsubpaden), en de typealiassenClawdbotConfig/OpenClawSchemaType - allowlist- en inschakelgedrag voor gebundelde plugins
- oude provider-/kanaal-env-var-manifestmetadata
- oude providerpluginhooks en typealiassen terwijl providers overgaan naar expliciete catalogus-, auth-, thinking-, replay- en transporthooks
- oude runtimealiassen zoals
api.runtime.taskFlow,api.runtime.subagent.getSession,api.runtime.stt, en verouderdeapi.runtime.config.loadConfig()/api.runtime.config.writeConfigFile(...) - oude splitregistratie voor memory-plugins terwijl memory-plugins overgaan naar
registerMemoryCapability - oude kanaal-SDK-helpers voor native berichtschema’s, mention gating, inbound envelope-opmaak en nesten van goedkeuringscapabilities
- oude kanaalroutekey- en comparable-target-helperaliassen terwijl plugins
overgaan naar
openclaw/plugin-sdk/channel-route - activeringshints die worden vervangen door eigendom van manifestbijdragen
setup-apiruntimefallback terwijl setupdescriptors overgaan naar koudesetup.requiresRuntime: falsemetadata- provider-
discovery-hooks terwijl providercatalogushooks overgaan naarcatalog.run(...) - kanaalmetadata
showConfigured/showInSetupterwijl kanaalpakketten overgaan naaropenclaw.channel.exposure - oude runtime-policy-configkeys terwijl doctor operators migreert naar
agentRuntime - fallback voor gegenereerde configmetadata van gebundelde kanalen terwijl registry-first
channelConfigsmetadata landt - gepersisteerde env-flags voor uitschakeling van het pluginregister en installatiemigratie terwijl
reparatiestromen operators migreren naar
openclaw plugins registry --refreshenopenclaw doctor --fix - oude plugin-owned web search-, web fetch- en x_search-configpaden terwijl
doctor ze migreert naar
plugins.entries.<plugin>.config - oude door
plugins.installsgeschreven config en load-path-aliassen voor gebundelde plugins terwijl installatiemetadata wordt verplaatst naar het state-managed pluginledger
Nieuwe plugincode moet de voorkeur geven aan de vervanging die in het register en in de specifieke migratiegids staat. Bestaande plugins kunnen een compatibiliteitspad blijven gebruiken totdat de docs, diagnostiek en release notes een verwijderingsvenster aankondigen.
Release notes
Release notes moeten aankomende pluginafschaffingen bevatten met streefdatums en links naar migratiedocs. Die waarschuwing moet plaatsvinden voordat een compatibiliteitspad naar removal-pending of removed gaat.