Plugin maintainer reference

Plugin рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛

рдпрд╣ OpenClaw Plugin рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЧрд╣рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдВрджрд░реНрдн рд╣реИред рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЗрдВрджреНрд░рд┐рдд рдкреЗрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖рдорддрд╛ рдореЙрдбрд▓

рдХреНрд╖рдорддрд╛рдПрдВ OpenClaw рдХреЗ рднреАрддрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ native plugin рдореЙрдбрд▓ рд╣реИрдВред рд╣рд░ native OpenClaw Plugin рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХреНрд╖рдорддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП register рдХрд░рддрд╛ рд╣реИ:

рдХреНрд╖рдорддрд╛ Registration рд╡рд┐рдзрд┐ рдЙрджрд╛рд╣рд░рдг Plugin
рдЯреЗрдХреНрд╕реНрдЯ inference api.registerProvider(...) openai, anthropic
CLI inference backend api.registerCliBackend(...) openai, anthropic
Embeddings api.registerEmbeddingProvider(...) Provider-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ vector Plugin
Speech api.registerSpeechProvider(...) elevenlabs, microsoft
Realtime transcription api.registerRealtimeTranscriptionProvider(...) openai
Realtime voice api.registerRealtimeVoiceProvider(...) openai
Media understanding api.registerMediaUnderstandingProvider(...) openai, google
Transcripts source api.registerTranscriptSourceProvider(...) discord
Image generation api.registerImageGenerationProvider(...) openai, google, fal, minimax
Music generation api.registerMusicGenerationProvider(...) google, minimax
Video generation api.registerVideoGenerationProvider(...) qwen
Web fetch api.registerWebFetchProvider(...) firecrawl
Web search api.registerWebSearchProvider(...) google
Channel / messaging api.registerChannel(...) msteams, matrix
Gateway discovery api.registerGatewayDiscoveryService(...) bonjour

рдмрд╛рд╣рд░реА compatibility рджреГрд╖реНрдЯрд┐рдХреЛрдг

Capability рдореЙрдбрд▓ core рдореЗрдВ landed рд╣реИ рдФрд░ рдЖрдЬ bundled/native Plugin рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди external Plugin compatibility рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА "рдпрд╣ export рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП frozen рд╣реИ" рд╕реЗ рдЕрдзрд┐рдХ рдХрдбрд╝реА рдХрд╕реМрдЯреА рдЪрд╛рд╣рд┐рдПред

Plugin рд╕реНрдерд┐рддрд┐ рдорд╛рд░реНрдЧрджрд░реНрд╢рди
рдореМрдЬреВрджрд╛ external Plugin hook-based integrations рдХреЛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣рдиреЗ рджреЗрдВ; рдпрд╣реА compatibility baseline рд╣реИред
рдирдП bundled/native Plugin vendor-specific reach-ins рдпрд╛ рдирдП hook-only designs рдХреЗ рдмрдЬрд╛рдп explicit capability registration рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
Capability registration рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓реЗ external Plugin рдЕрдиреБрдорддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди capability-specific helper surfaces рдХреЛ evolving рдорд╛рдиреЗрдВ рдЬрдм рддрдХ docs рдЙрдиреНрд╣реЗрдВ stable рди рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред

Capability registration рдЗрдЪреНрдЫрд┐рдд рджрд┐рд╢рд╛ рд╣реИред рд╕рдВрдХреНрд░рдордг рдХреЗ рджреМрд░рд╛рди external Plugin рдХреЗ рд▓рд┐рдП Legacy hooks рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд no-breakage path рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред Exported helper subpaths рд╕рднреА рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ тАФ incidental helper exports рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдВрдХреАрд░реНрдг documented contracts рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

Plugin shapes

OpenClaw рд╣рд░ loaded Plugin рдХреЛ рдЙрд╕рдХреЗ actual registration behavior рдХреЗ рдЖрдзрд╛рд░ рдкрд░ shape рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ (рд╕рд┐рд░реНрдл static metadata рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВ):

plain-capability

рдареАрдХ рдПрдХ capability type register рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП mistral рдЬреИрд╕рд╛ provider-only Plugin)ред

hybrid-capability

рдХрдИ capability types register рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП openai text inference, speech, media understanding, рдФрд░ image generation рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ)ред

hook-only

рдХреЗрд╡рд▓ hooks (typed рдпрд╛ custom) register рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ capabilities, tools, commands, рдпрд╛ services рдирд╣реАрдВред

non-capability

tools, commands, services, рдпрд╛ routes register рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ capabilities рдирд╣реАрдВред

рдХрд┐рд╕реА Plugin рдХреА shape рдФрд░ capability breakdown рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП openclaw plugins inspect <id> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП CLI рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВред

Legacy hooks

before_agent_start hook hook-only Plugin рдХреЗ рд▓рд┐рдП compatibility path рдХреЗ рд░реВрдк рдореЗрдВ supported рд░рд╣рддрд╛ рд╣реИред Legacy real-world Plugin рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред

рджрд┐рд╢рд╛:

  • рдЗрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣рдиреЗ рджреЗрдВ
  • рдЗрд╕реЗ legacy рдХреЗ рд░реВрдк рдореЗрдВ document рдХрд░реЗрдВ
  • model/provider override work рдХреЗ рд▓рд┐рдП before_model_resolve рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ
  • prompt mutation work рдХреЗ рд▓рд┐рдП before_prompt_build рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ
  • рдХреЗрд╡рд▓ рддрдм рд╣рдЯрд╛рдПрдВ рдЬрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдШрдЯ рдЬрд╛рдП рдФрд░ fixture coverage migration safety рд╕рд╛рдмрд┐рдд рдХрд░реЗ

Compatibility signals

рдЬрдм рдЖрдк openclaw doctor рдпрд╛ openclaw plugins inspect <id> рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ label рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

Signal рдЕрд░реНрде
config valid Config рдареАрдХ рд╕реЗ parse рд╣реЛрддрд╛ рд╣реИ рдФрд░ Plugin resolve рд╣реЛрддреЗ рд╣реИрдВ
compatibility advisory Plugin supported-but-older pattern рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ hook-only)
legacy warning Plugin before_agent_start рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ deprecated рд╣реИ
hard error Config invalid рд╣реИ рдпрд╛ Plugin load рд╣реЛрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛

рди рддреЛ hook-only рдФрд░ рди рд╣реА before_agent_start рдЖрдЬ рдЖрдкрдХреЗ Plugin рдХреЛ рддреЛрдбрд╝реЗрдЧрд╛: hook-only advisory рд╣реИ, рдФрд░ before_agent_start рдХреЗрд╡рд▓ warning trigger рдХрд░рддрд╛ рд╣реИред рдпреЗ signals openclaw status --all рдФрд░ openclaw plugins doctor рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред

Architecture рдЕрд╡рд▓реЛрдХрди

OpenClaw рдХреЗ Plugin рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЪрд╛рд░ layers рд╣реИрдВ:

  • Manifest + discovery

    OpenClaw configured paths, workspace roots, global Plugin roots, рдФрд░ bundled Plugin рд╕реЗ candidate Plugin рдЦреЛрдЬрддрд╛ рд╣реИред Discovery рдкрд╣рд▓реЗ native openclaw.plugin.json manifests рдФрд░ supported bundle manifests рдкрдврд╝рддрд╛ рд╣реИред

  • Enablement + validation

    Core рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ discovered Plugin enabled, disabled, blocked рд╣реИ рдпрд╛ memory рдЬреИрд╕реЗ exclusive slot рдХреЗ рд▓рд┐рдП selected рд╣реИред

  • Runtime loading

    Native OpenClaw Plugin in-process load рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ capabilities рдХреЛ central registry рдореЗрдВ register рдХрд░рддреЗ рд╣реИрдВред Packaged JavaScript native require рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ load рд╣реЛрддрд╛ рд╣реИ; third-party local source TypeScript emergency Jiti fallback рд╣реИред Compatible bundles runtime code import рдХрд┐рдП рдмрд┐рдирд╛ registry records рдореЗрдВ normalized рд╣реЛрддреЗ рд╣реИрдВред

  • Surface consumption

    OpenClaw рдХрд╛ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕рд╛ tools, channels, provider setup, hooks, HTTP routes, CLI commands, рдФрд░ services expose рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП registry рдкрдврд╝рддрд╛ рд╣реИред

  • рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Plugin CLI рдХреЗ рд▓рд┐рдП, root command discovery рджреЛ phases рдореЗрдВ split рд╣реИ:

    • parse-time metadata registerCli(..., { descriptors: [...] }) рд╕реЗ рдЖрддрд╛ рд╣реИ
    • рд╡рд╛рд╕реНрддрд╡рд┐рдХ Plugin CLI module lazy рд░рд╣ рд╕рдХрддрд╛ рд╣реИ рдФрд░ first invocation рдкрд░ register рдХрд░ рд╕рдХрддрд╛ рд╣реИ

    рдЗрд╕рд╕реЗ Plugin-owned CLI code Plugin рдХреЗ рднреАрддрд░ рд░рд╣рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ OpenClaw parsing рд╕реЗ рдкрд╣рд▓реЗ рднреА root command names reserve рдХрд░ рд╕рдХрддрд╛ рд╣реИред

    рдорд╣рддреНрд╡рдкреВрд░реНрдг design boundary:

    • manifest/config validation рдХреЛ Plugin code execute рдХрд┐рдП рдмрд┐рдирд╛ manifest/schema metadata рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
    • native capability discovery trusted Plugin entry code load рдХрд░рдХреЗ non-activating registry snapshot рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ
    • native runtime behavior Plugin module рдХреЗ register(api) path рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ api.registrationMode === "full"

    рдпрд╣ split OpenClaw рдХреЛ full runtime active рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ config validate рдХрд░рдиреЗ, missing/disabled Plugin рд╕рдордЭрд╛рдиреЗ, рдФрд░ UI/schema hints рдмрдирд╛рдиреЗ рджреЗрддрд╛ рд╣реИред

    Plugin metadata snapshot рдФрд░ lookup table

    Gateway startup рдореМрдЬреВрджрд╛ config snapshot рдХреЗ рд▓рд┐рдП рдПрдХ PluginMetadataSnapshot рдмрдирд╛рддрд╛ рд╣реИред Snapshot metadata-only рд╣реИ: рдпрд╣ installed Plugin index, manifest registry, manifest diagnostics, owner maps, Plugin id normalizer, рдФрд░ manifest records store рдХрд░рддрд╛ рд╣реИред рдпрд╣ loaded Plugin modules, provider SDKs, package contents, рдпрд╛ runtime exports рдирд╣реАрдВ рд░рдЦрддрд╛ред

    Plugin-aware config validation, startup auto-enable, рдФрд░ Gateway Plugin bootstrap рдЙрд╕ snapshot рдХреЛ consume рдХрд░рддреЗ рд╣реИрдВ, рдмрдЬрд╛рдп manifest/index metadata рдХреЛ independently rebuild рдХрд░рдиреЗ рдХреЗред PluginLookUpTable рдЙрд╕реА snapshot рд╕реЗ derive рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрджрд╛ runtime config рдХреЗ рд▓рд┐рдП startup Plugin plan рдЬреЛрдбрд╝рддрд╛ рд╣реИред

    Startup рдХреЗ рдмрд╛рдж, Gateway рдореМрдЬреВрджрд╛ metadata snapshot рдХреЛ replaceable runtime product рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред Repeated runtime provider discovery рд╣рд░ provider-catalog pass рдХреЗ рд▓рд┐рдП installed index рдФрд░ manifest registry reconstruct рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд╣ snapshot borrow рдХрд░ рд╕рдХрддрд╛ рд╣реИред Gateway shutdown, config/Plugin inventory changes, рдФрд░ installed index writes рдкрд░ snapshot cleared рдпрд╛ replaced рд╣реЛрддрд╛ рд╣реИ; compatible current snapshot рдореМрдЬреВрдж рди рд╣реЛрдиреЗ рдкрд░ callers cold manifest/index path рдкрд░ fall back рдХрд░рддреЗ рд╣реИрдВред Compatibility checks рдореЗрдВ plugins.load.paths рдФрд░ default agent workspace рдЬреИрд╕реЗ Plugin discovery roots рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ workspace Plugin metadata scope рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред

    Snapshot рдФрд░ lookup table repeated startup decisions рдХреЛ fast path рдкрд░ рд░рдЦрддреЗ рд╣реИрдВ:

    • channel ownership
    • deferred channel startup
    • startup Plugin ids
    • provider рдФрд░ CLI backend ownership
    • setup provider, command alias, model catalog provider, рдФрд░ manifest contract ownership
    • Plugin config schema рдФрд░ channel config schema validation
    • startup auto-enable decisions

    Safety boundary snapshot replacement рд╣реИ, mutation рдирд╣реАрдВред Config, Plugin inventory, install records, рдпрд╛ persisted index policy рдмрджрд▓рдиреЗ рдкрд░ snapshot rebuild рдХрд░реЗрдВред рдЗрд╕реЗ broad mutable global registry рдХреЗ рд░реВрдк рдореЗрдВ рди рдорд╛рдиреЗрдВ, рдФрд░ unbounded historical snapshots рди рд░рдЦреЗрдВред Runtime Plugin loading metadata snapshots рд╕реЗ рдЕрд▓рдЧ рд░рд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ stale runtime state metadata cache рдХреЗ рдкреАрдЫреЗ hidden рди рд╣реЛ рд╕рдХреЗред

    Cache rule Plugin architecture internals рдореЗрдВ documented рд╣реИ: manifest рдФрд░ discovery metadata fresh рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХреЛрдИ caller рдореМрдЬреВрджрд╛ flow рдХреЗ рд▓рд┐рдП explicit snapshot, lookup table, рдпрд╛ manifest registry рди рд░рдЦрддрд╛ рд╣реЛред Hidden metadata caches рдФрд░ wall-clock TTLs Plugin loading рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред рдХреЗрд╡рд▓ runtime loader, module, рдФрд░ dependency-artifact caches code рдпрд╛ installed artifacts рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ loaded рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж persist рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред

    рдХреБрдЫ cold-path callers рдЕрднреА рднреА Gateway PluginLookUpTable рдкрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп persisted installed Plugin index рд╕реЗ рд╕реАрдзреЗ manifest registries reconstruct рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╡рд╣ path registry рдХреЛ demand рдкрд░ reconstruct рдХрд░рддрд╛ рд╣реИ; рдЬрдм caller рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ current lookup table рдпрд╛ explicit manifest registry рд╣реЛ, рддреЛ runtime flows рдореЗрдВ рдЙрд╕реЗ pass рдХрд░рдирд╛ prefer рдХрд░реЗрдВред

    Activation planning

    Activation planning control plane рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред Callers broad runtime registries load рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА concrete command, provider, channel, route, agent harness, рдпрд╛ capability рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ Plugin relevant рд╣реИрдВред

    Planner рдореМрдЬреВрджрд╛ manifest behavior рдХреЛ compatible рд░рдЦрддрд╛ рд╣реИ:

    • activation.* рдлрд╝реАрд▓реНрдб рд╕реНрдкрд╖реНрдЯ рдкреНрд▓рд╛рдирд░ рд╕рдВрдХреЗрдд рд╣реИрдВ
    • providers, channels, commandAliases, setup.providers, contracts.tools, рдФрд░ hooks рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдлрд╝реЙрд▓рдмреИрдХ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ
    • рдХреЗрд╡рд▓-ids рдкреНрд▓рд╛рдирд░ API рдореМрдЬреВрджрд╛ рдХреЙрд▓рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд░рд╣рддреА рд╣реИ
    • рдкреНрд▓рд╛рди API рдХрд╛рд░рдг рд▓реЗрдмрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдбрд╛рдпрдЧреНрдиреЙрд╕реНрдЯрд┐рдХреНрд╕ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдлрд╝реЙрд▓рдмреИрдХ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХреЗрдВ

    рдЪреИрдирд▓ Plugin рдФрд░ рд╕рд╛рдЭрд╛ message рдЯреВрд▓

    рдЪреИрдирд▓ Plugin рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЪреИрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ send/edit/react рдЯреВрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред OpenClaw core рдореЗрдВ рдПрдХ рд╕рд╛рдЭрд╛ message рдЯреВрд▓ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рдЪреИрдирд▓ Plugin рдЙрд╕рдХреЗ рдкреАрдЫреЗ рдЪреИрдирд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦреЛрдЬ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реЛрддреЗ рд╣реИрдВред

    рд╡рд░реНрддрдорд╛рди рд╕реАрдорд╛ рдпрд╣ рд╣реИ:

    • core рд╕рд╛рдЭрд╛ message рдЯреВрд▓ рд╣реЛрд╕реНрдЯ, prompt wiring, session/thread bookkeeping, рдФрд░ execution dispatch рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ
    • рдЪреИрдирд▓ Plugin scoped action discovery, capability discovery, рдФрд░ рдХрд┐рд╕реА рднреА рдЪреИрдирд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ schema fragments рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реИрдВ
    • рдЪреИрдирд▓ Plugin рдкреНрд░рджрд╛рддрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ session conversation grammar рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реИрдВ, рдЬреИрд╕реЗ conversation ids thread ids рдХреЛ рдХреИрд╕реЗ encode рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ parent conversations рд╕реЗ рдХреИрд╕реЗ inherit рдХрд░рддреЗ рд╣реИрдВ
    • рдЪреИрдирд▓ Plugin рдЕрдкрдиреЗ action adapter рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ

    рдЪреИрдирд▓ Plugin рдХреЗ рд▓рд┐рдП, SDK surface ChannelMessageActionAdapter.describeMessageTool(...) рд╣реИред рд╡рд╣ рдПрдХреАрдХреГрдд discovery call Plugin рдХреЛ рдЕрдкрдиреА visible actions, capabilities, рдФрд░ schema contributions рд╕рд╛рде рдореЗрдВ рд▓реМрдЯрд╛рдиреЗ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рд╣рд┐рд╕реНрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рд╢рд╛ рдореЗрдВ рди рдЬрд╛рдПрдВред

    рдЬрдм рдХреЛрдИ рдЪреИрдирд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ message-tool param рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп path рдпрд╛ remote media URL рдЬреИрд╕реЗ media source рдХреЛ рд░рдЦрддрд╛ рд╣реИ, рддреЛ Plugin рдХреЛ describeMessageTool(...) рд╕реЗ mediaSourceParams рднреА рд▓реМрдЯрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Core рдЙрд╕ рд╕реНрдкрд╖реНрдЯ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ sandbox path normalization рдФрд░ outbound media-access hints рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ, рдмрд┐рдирд╛ Plugin-owned param рдирд╛рдореЛрдВ рдХреЛ hardcode рдХрд┐рдПред рд╡рд╣рд╛рдВ action-scoped maps рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ, рди рдХрд┐ рдПрдХ channel-wide flat list, рддрд╛рдХрд┐ profile-only media param рдЕрд╕рдВрдмрдВрдзрд┐рдд actions рдЬреИрд╕реЗ send рдкрд░ normalize рди рд╣реЛред

    Core рдЙрд╕ discovery step рдореЗрдВ runtime scope рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

    • accountId
    • currentChannelId
    • currentThreadTs
    • currentMessageId
    • sessionKey
    • sessionId
    • agentId
    • рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп inbound requesterSenderId

    рдпрд╣ context-sensitive Plugin рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреЛрдИ рдЪреИрдирд▓ active account, current room/thread/message, рдпрд╛ trusted requester identity рдХреЗ рдЖрдзрд╛рд░ рдкрд░ message actions рдЫрд┐рдкрд╛ рдпрд╛ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ core message рдЯреВрд▓ рдореЗрдВ рдЪреИрдирд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ branches рдХреЛ hardcode рдХрд┐рдПред

    рдЗрд╕реАрд▓рд┐рдП embedded-runner routing рдмрджрд▓рд╛рд╡ рдЕрднреА рднреА Plugin рдХрд╛рд░реНрдп рд╣реИрдВ: runner рдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдХрд┐ рд╡рд╣ current chat/session identity рдХреЛ Plugin discovery boundary рдореЗрдВ forward рдХрд░реЗ рддрд╛рдХрд┐ рд╕рд╛рдЭрд╛ message рдЯреВрд▓ рд╡рд░реНрддрдорд╛рди turn рдХреЗ рд▓рд┐рдП рд╕рд╣реА channel-owned surface expose рдХрд░реЗред

    Channel-owned execution helpers рдХреЗ рд▓рд┐рдП, bundled Plugin рдХреЛ execution runtime рдЕрдкрдиреЗ extension modules рдХреЗ рдЕрдВрджрд░ рд╣реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред Core рдЕрдм src/agents/tools рдХреЗ рдЕрдВрддрд░реНрдЧрдд Discord, Slack, Telegram, рдпрд╛ WhatsApp message-action runtimes рдХрд╛ рд╕реНрд╡рд╛рдореА рдирд╣реАрдВ рд╣реИред рд╣рдо рдЕрд▓рдЧ plugin-sdk/*-action-runtime subpaths publish рдирд╣реАрдВ рдХрд░рддреЗ, рдФрд░ bundled Plugin рдХреЛ рдЕрдкрдиреЗ extension-owned modules рд╕реЗ рдЕрдкрдирд╛ local runtime code рд╕реАрдзреЗ import рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

    рдпрд╣реА рд╕реАрдорд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ provider-named SDK seams рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ: core рдХреЛ Slack, Discord, Signal, WhatsApp, рдпрд╛ рд╕рдорд╛рди extensions рдХреЗ рд▓рд┐рдП channel-specific convenience barrels import рдирд╣реАрдВ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ core рдХреЛ рдХрд┐рд╕реА behavior рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╛ рддреЛ bundled Plugin рдХреЗ рдЕрдкрдиреЗ api.ts / runtime-api.ts barrel рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ shared SDK рдореЗрдВ рдПрдХ рд╕рдВрдХреАрд░реНрдг generic capability рдореЗрдВ promote рдХрд░реЗрдВред

    Bundled Plugin рднреА рдпрд╣реА рдирд┐рдпрдо рдЕрдкрдирд╛рддреЗ рд╣реИрдВред рдХрд┐рд╕реА bundled Plugin рдХреЗ runtime-api.ts рдХреЛ рдЕрдкрдиреЗ рд╣реА branded openclaw/plugin-sdk/<plugin-id> facade рдХреЛ re-export рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗ branded facades external Plugin рдФрд░ рдкреБрд░рд╛рдиреЗ consumers рдХреЗ рд▓рд┐рдП compatibility shims рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди bundled Plugin рдХреЛ local exports рдФрд░ openclaw/plugin-sdk/channel-policy, openclaw/plugin-sdk/runtime-store, рдпрд╛ openclaw/plugin-sdk/webhook-ingress рдЬреИрд╕реЗ рд╕рдВрдХреАрд░реНрдг generic SDK subpaths рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирдпрд╛ code plugin-id-specific SDK facades рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ external ecosystem рдХреА compatibility boundary рдЗрд╕рдХреА рдорд╛рдВрдЧ рди рдХрд░реЗред

    Polls рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рджреЛ execution paths рд╣реИрдВ:

    • outbound.sendPoll рдЙрди рдЪреИрдирд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ baseline рд╣реИ рдЬреЛ common poll model рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ
    • actions.handleAction("poll") channel-specific poll semantics рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд poll parameters рдХреЗ рд▓рд┐рдП preferred path рд╣реИ

    Core рдЕрдм shared poll parsing рдХреЛ рддрдм рддрдХ defer рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ Plugin poll dispatch рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ decline рдирд╣реАрдВ рдХрд░ рджреЗрддрд╛, рддрд╛рдХрд┐ Plugin-owned poll handlers generic poll parser рд╕реЗ рдкрд╣рд▓реЗ blocked рд╣реБрдП рдмрд┐рдирд╛ channel-specific poll fields рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗрдВред

    рдкреВрд░рд╛ startup sequence рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП Plugin architecture internals рджреЗрдЦреЗрдВред

    рдХреНрд╖рдорддрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЙрдбрд▓

    OpenClaw native Plugin рдХреЛ рдХрд┐рд╕реА рдХрдВрдкрдиреА рдпрд╛ feature рдХреЗ рд▓рд┐рдП ownership boundary рдорд╛рдирддрд╛ рд╣реИ, рдЕрд╕рдВрдмрдВрдзрд┐рдд integrations рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдирд╣реАрдВред

    рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ:

    • company Plugin рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЙрд╕ рдХрдВрдкрдиреА рдХреЗ рд╕рднреА OpenClaw-facing surfaces рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
    • feature Plugin рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдкреВрд░реЗ feature surface рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
    • channels рдХреЛ provider behavior рдХреЛ ad hoc рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп shared core capabilities рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
    Vendor multi-capability

    openai text inference, speech, realtime voice, media understanding, рдФрд░ image generation рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИред google text inference рдХреЗ рд╕рд╛рде media understanding, image generation, рдФрд░ web search рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИред qwen text inference рдХреЗ рд╕рд╛рде media understanding рдФрд░ video generation рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИред

    Vendor single-capability

    elevenlabs рдФрд░ microsoft speech рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реИрдВ; firecrawl web-fetch рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ; minimax / mistral / moonshot / zai media-understanding backends рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реИрдВред

    Feature plugin

    voice-call call transport, tools, CLI, routes, рдФрд░ Twilio media-stream bridging рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ, рд▓реЗрдХрд┐рди vendor Plugin рдХреЛ рд╕реАрдзреЗ import рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп shared speech, realtime transcription, рдФрд░ realtime voice capabilities рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

    рдЗрдЪреНрдЫрд┐рдд рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ:

    • OpenAI рдПрдХ рд╣реА Plugin рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ text models, speech, images, рдФрд░ future video рддрдХ рдлреИрд▓рд╛ рд╣реЛ
    • рджреВрд╕рд░рд╛ vendor рдЕрдкрдиреЗ surface area рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд╣реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ
    • channels рдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реЛрддреА рдХрд┐ provider рдХрд╛ рд╕реНрд╡рд╛рдореА рдХреМрди-рд╕рд╛ vendor Plugin рд╣реИ; рд╡реЗ core рджреНрд╡рд╛рд░рд╛ expose рдХрд┐рдП рдЧрдП shared capability contract рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

    рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ:

    • Plugin = ownership boundary
    • capability = core contract рдЬрд┐рд╕реЗ рдХрдИ Plugin implement рдпрд╛ consume рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

    рдЗрд╕рд▓рд┐рдП рдпрджрд┐ OpenClaw video рдЬреИрд╕рд╛ рдирдпрд╛ domain рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓рд╛ рдкреНрд░рд╢реНрди рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдХрд┐рд╕ provider рдХреЛ video handling hardcode рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?" рдкрд╣рд▓рд╛ рдкреНрд░рд╢реНрди рдпрд╣ рд╣реИ рдХрд┐ "core video capability contract рдХреНрдпрд╛ рд╣реИ?" рдЬрдм рд╡рд╣ contract рдореМрдЬреВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, vendor Plugin рдЙрд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз register рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ channel/feature Plugin рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

    рдпрджрд┐ capability рдЕрднреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рд╣реА рдХрджрдо рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╣реИ:

  • рдХреНрд╖рдорддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

    рдЧрд╛рдпрдм capability рдХреЛ core рдореЗрдВ define рдХрд░реЗрдВред

  • SDK рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ expose рдХрд░реЗрдВ

    рдЗрд╕реЗ plugin API/runtime рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ typed рддрд░реАрдХреЗ рд╕реЗ expose рдХрд░реЗрдВред

  • Consumers wire рдХрд░реЗрдВ

    channels/features рдХреЛ рдЙрд╕ capability рдХреЗ рд╡рд┐рд░реБрджреНрдз wire рдХрд░реЗрдВред

  • Vendor implementations

    vendor Plugin рдХреЛ implementations register рдХрд░рдиреЗ рджреЗрдВред

  • рдпрд╣ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдРрд╕реЗ core behavior рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдПрдХ vendor рдпрд╛ one-off plugin-specific code path рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛред

    рдХреНрд╖рдорддрд╛ layering

    Code рдХрд╣рд╛рдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рддрдп рдХрд░рддреЗ рд╕рдордп рдЗрд╕ mental model рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

    Core capability layer

    рд╕рд╛рдЭрд╛ orchestration, policy, fallback, config merge rules, delivery semantics, рдФрд░ typed contractsред

    Vendor plugin layer

    Vendor-specific APIs, auth, model catalogs, speech synthesis, image generation, future video backends, usage endpointsред

    Channel/feature plugin layer

    Slack/Discord/voice-call/etc. integration рдЬреЛ core capabilities рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА surface рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, TTS рдпрд╣ shape рдЕрдкрдирд╛рддрд╛ рд╣реИ:

    • core reply-time TTS policy, fallback order, prefs, рдФрд░ channel delivery рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ
    • openai, elevenlabs, рдФрд░ microsoft synthesis implementations рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реИрдВ
    • voice-call telephony TTS runtime helper рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

    Future capabilities рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реА pattern рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

    Multi-capability company Plugin рдЙрджрд╛рд╣рд░рдг

    Company Plugin рдХреЛ рдмрд╛рд╣рд░ рд╕реЗ cohesive рдорд╣рд╕реВрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ OpenClaw рдХреЗ рдкрд╛рд╕ models, speech, realtime transcription, realtime voice, media understanding, image generation, video generation, web fetch, рдФрд░ web search рдХреЗ рд▓рд┐рдП shared contracts рд╣реИрдВ, рддреЛ рдХреЛрдИ vendor рдЕрдкрдиреЗ рд╕рднреА surfaces рдХрд╛ рд╕реНрд╡рд╛рдореА рдПрдХ рд╣реА рдЬрдЧрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

    ts
        describeImageWithModel,  transcribeOpenAiCompatibleAudio,} from "openclaw/plugin-sdk/media-understanding"; const plugin: OpenClawPluginDefinition = {  id: "exampleai",  name: "ExampleAI",  register(api) {    api.registerProvider({      id: "exampleai",      // auth/model catalog/runtime hooks    });     api.registerSpeechProvider({      id: "exampleai",      // vendor speech config тАФ implement the SpeechProviderPlugin interface directly    });     api.registerMediaUnderstandingProvider({      id: "exampleai",      capabilities: ["image", "audio", "video"],      async describeImage(req) {        return describeImageWithModel({          provider: "exampleai",          model: req.model,          input: req.input,        });      },      async transcribeAudio(req) {        return transcribeOpenAiCompatibleAudio({          provider: "exampleai",          model: req.model,          input: req.input,        });      },    });     api.registerWebSearchProvider(      createPluginBackedWebSearchProvider({        id: "exampleai-search",        // credential + fetch logic      }),    );  },}; export default plugin;

    рдорд╣рддреНрд╡ exact helper names рдХрд╛ рдирд╣реАрдВ рд╣реИред Shape рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ:

    • рдПрдХ Plugin vendor surface рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ
    • core рдлрд┐рд░ рднреА capability contracts рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ
    • channels рдФрд░ feature Plugin api.runtime.* helpers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, vendor code рдХрд╛ рдирд╣реАрдВ
    • contract tests assert рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ Plugin рдиреЗ рд╡реЗ capabilities register рдХреА рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╡рд╣ рд╕реНрд╡рд╛рдореА рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ

    рдХреНрд╖рдорддрд╛ рдЙрджрд╛рд╣рд░рдг: video understanding

    OpenClaw рдкрд╣рд▓реЗ рд╕реЗ image/audio/video understanding рдХреЛ рдПрдХ рд╕рд╛рдЭрд╛ capability рдорд╛рдирддрд╛ рд╣реИред рд╡рд╣реА ownership model рд╡рд╣рд╛рдВ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:

  • Core contract define рдХрд░рддрд╛ рд╣реИ

    Core media-understanding contract define рдХрд░рддрд╛ рд╣реИред

  • Vendor Plugin register рдХрд░рддреЗ рд╣реИрдВ

    Vendor Plugin рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ describeImage, transcribeAudio, рдФрд░ describeVideo register рдХрд░рддреЗ рд╣реИрдВред

  • Consumers shared behavior рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

    Channels рдФрд░ feature Plugin vendor code рд╕реЗ рд╕реАрдзреЗ wire рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп shared core behavior рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

  • рдпрд╣ core рдореЗрдВ рдХрд┐рд╕реА рдПрдХ provider рдХреА video assumptions bake рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред Plugin vendor surface рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ; core capability contract рдФрд░ fallback behavior рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИред

    Video generation рдкрд╣рд▓реЗ рд╕реЗ рдЗрд╕реА sequence рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: core typed capability contract рдФрд░ runtime helper рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ, рдФрд░ vendor Plugin рдЙрд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз api.registerVideoGenerationProvider(...) implementations register рдХрд░рддреЗ рд╣реИрдВред

    Concrete rollout checklist рдЪрд╛рд╣рд┐рдП? Capability Cookbook рджреЗрдЦреЗрдВред

    Contracts рдФрд░ enforcement

    Plugin API surface рдЬрд╛рдирдмреВрдЭрдХрд░ OpenClawPluginApi рдореЗрдВ typed рдФрд░ centralized рд╣реИред рд╡рд╣ contract supported registration points рдФрд░ runtime helpers define рдХрд░рддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдХреЛрдИ Plugin рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

    рдпрд╣ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

    • Plugin authors рдХреЛ рдПрдХ stable internal standard рдорд┐рд▓рддрд╛ рд╣реИ
    • core duplicate ownership рдХреЛ reject рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рджреЛ Plugin рдХрд╛ same provider id register рдХрд░рдирд╛
    • startup malformed registration рдХреЗ рд▓рд┐рдП actionable diagnostics surface рдХрд░ рд╕рдХрддрд╛ рд╣реИ
    • contract tests bundled-plugin ownership enforce рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ silent drift рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ

    Enforcement рдХреА рджреЛ layers рд╣реИрдВ:

    рд░рдирдЯрд╛рдЗрдо рдкрдВрдЬреАрдХрд░рдг рдкреНрд░рд╡рд░реНрддрди

    Plugin рд░рдЬрд┐рд╕реНрдЯреНрд░реА Plugins рд▓реЛрдб рд╣реЛрддреЗ рд╕рдордп рдкрдВрдЬреАрдХрд░рдгреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг: рдбреБрдкреНрд▓реАрдХреЗрдЯ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ ids, рдбреБрдкреНрд▓реАрдХреЗрдЯ рд╕реНрдкреАрдЪ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ ids, рдФрд░ рд╡рд┐рдХреГрдд рдкрдВрдЬреАрдХрд░рдг рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрдЬрд╛рдп Plugin рдбрд╛рдпрдЧреНрдиреЙрд╕реНрдЯрд┐рдХреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред

    рдЕрдиреБрдмрдВрдз рдкрд░реАрдХреНрд╖рдг

    рдкрд░реАрдХреНрд╖рдг рд░рди рдХреЗ рджреМрд░рд╛рди рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugins рдХреЛ рдЕрдиреБрдмрдВрдз рд░рдЬрд┐рд╕реНрдЯреНрд░рд┐рдпреЛрдВ рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ OpenClaw рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХреЗред рдЖрдЬ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕, рд╕реНрдкреАрдЪ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕, рд╡реЗрдм рд╕рд░реНрдЪ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕, рдФрд░ рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдкрдВрдЬреАрдХрд░рдг рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рднрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ OpenClaw рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ Plugin рдХрд┐рд╕ рд╕рддрд╣ рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИред рдЗрд╕рд╕реЗ рдХреЛрд░ рдФрд░ рдЪреИрдирд▓ рд╕рд╣рдЬрддрд╛ рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рд╣реЛ рдкрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдШреЛрд╖рд┐рдд, рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЧреНрдп рд╣реЛрддрд╛ рд╣реИред

    рдЕрдиреБрдмрдВрдз рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

    рдЕрдЪреНрдЫреЗ рдЕрдиреБрдмрдВрдз

    • рдЯрд╛рдЗрдк рдХрд┐рдП рд╣реБрдП
    • рдЫреЛрдЯреЗ
    • рдХреНрд╖рдорддрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ
    • рдХреЛрд░ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ
    • рдХрдИ Plugins рджреНрд╡рд╛рд░рд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп
    • рдЪреИрдирд▓/рдлреАрдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╡реЗрдВрдбрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп

    рдЦрд░рд╛рдм рдЕрдиреБрдмрдВрдз

    • рдХреЛрд░ рдореЗрдВ рдЫрд┐рдкреА рд╡реЗрдВрдбрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреАрддрд┐
    • рдПрдХрдмрд╛рд░рдЧреА Plugin рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдЬреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
    • рдЪреИрдирд▓ рдХреЛрдб рдХрд╛ рд╕реАрдзреЗ рдХрд┐рд╕реА рд╡реЗрдВрдбрд░ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рдкрд╣реБрдВрдЪрдирд╛
    • рддрджрд░реНрде рд░рдирдЯрд╛рдЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ OpenClawPluginApi рдпрд╛ api.runtime рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВ

    рд╕рдВрджреЗрд╣ рд╣реЛрдиреЗ рдкрд░, рдЕрдореВрд░реНрддрди рд╕реНрддрд░ рдмрдврд╝рд╛рдПрдБ: рдкрд╣рд▓реЗ рдХреНрд╖рдорддрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ Plugins рдХреЛ рдЙрд╕рдореЗрдВ рдкреНрд▓рдЧ рдЗрди рдХрд░рдиреЗ рджреЗрдВред

    рдирд┐рд╖реНрдкрд╛рджрди рдореЙрдбрд▓

    рдиреЗрдЯрд┐рд╡ OpenClaw Plugins Gateway рдХреЗ рд╕рд╛рде рдЗрди-рдкреНрд░реЛрд╕реЗрд╕ рдЪрд▓рддреЗ рд╣реИрдВред рд╡реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕реНрдб рдирд╣реАрдВ рд╣реЛрддреЗред рд▓реЛрдб рдХрд┐рдП рдЧрдП рдиреЗрдЯрд┐рд╡ Plugin рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд╕реНрддрд░реАрдп рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реАрдорд╛ рдХреЛрд░ рдХреЛрдб рдЬреИрд╕реА рд╣реА рд╣реЛрддреА рд╣реИред

    рд╕рдВрдЧрдд рдмрдВрдбрд▓ рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ OpenClaw рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛/рдХрдВрдЯреЗрдВрдЯ рдкреИрдХ рдорд╛рдирддрд╛ рд╣реИред рдореМрдЬреВрджрд╛ рд░рд┐рд▓реАрдЬ рдореЗрдВ, рдЗрд╕рдХрд╛ рдЕрд░реНрде рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Skills рд╣реИред

    рдмрдВрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП Plugins рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐-рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ install/load рдкрдереЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╡рд░реНрдХрд╕реНрдкреЗрд╕ Plugins рдХреЛ рд╡рд┐рдХрд╛рд╕-рд╕рдордп рдХрд╛ рдХреЛрдб рдорд╛рдиреЗрдВ, рдЙрддреНрдкрд╛рджрди рдбрд┐рдлреЙрд▓реНрдЯ рдирд╣реАрдВред

    рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП, Plugin id рдХреЛ npm рдирд╛рдо рдореЗрдВ рдПрдВрдХрд░ рд░рдЦреЗрдВ: рдбрд┐рдлреЙрд▓реНрдЯ рд░реВрдк рд╕реЗ @openclaw/<id>, рдпрд╛ рд╕реНрд╡реАрдХреГрдд рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ suffix рдЬреИрд╕реЗ -provider, -plugin, -speech, -sandbox, рдпрд╛ -media-understanding рдЬрдм рдкреИрдХреЗрдЬ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕рдВрдХреАрд░реНрдг Plugin рднреВрдорд┐рдХрд╛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред

    рдирд┐рд░реНрдпрд╛рдд рд╕реАрдорд╛

    OpenClaw рдХреНрд╖рдорддрд╛рдПрдБ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВред

    рдХреНрд╖рдорддрд╛ рдкрдВрдЬреАрдХрд░рдг рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЦреЗрдВред рдЧреИрд░-рдЕрдиреБрдмрдВрдз helper exports рдХреЛ рдХрдо рдХрд░реЗрдВ:

    • рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugin-рд╡рд┐рд╢рд┐рд╖реНрдЯ helper subpaths
    • рд░рдирдЯрд╛рдЗрдо plumbing subpaths рдЬреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИрдВ
    • рд╡реЗрдВрдбрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ helpers
    • setup/onboarding helpers рдЬреЛ рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд╡рд┐рд╡рд░рдг рд╣реИрдВ

    рдЖрд░рдХреНрд╖рд┐рдд рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugin helper subpaths рдХреЛ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП SDK export map рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реНрд╡рд╛рдореА-рд╡рд┐рд╢рд┐рд╖реНрдЯ helpers рдХреЛ рд╕реНрд╡рд╛рдореА Plugin package рдХреЗ рдЕрдВрджрд░ рд░рдЦреЗрдВ; рдХреЗрд╡рд▓ рдкреБрди: рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп host рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ generic SDK рдЕрдиреБрдмрдВрдзреЛрдВ рдЬреИрд╕реЗ plugin-sdk/gateway-runtime, plugin-sdk/security-runtime, рдФрд░ plugin-sdk/plugin-config-runtime рдореЗрдВ promote рдХрд░реЗрдВред

    рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╡рд░рдг рдФрд░ рд╕рдВрджрд░реНрдн

    рд▓реЛрдб pipeline, рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЙрдбрд▓, рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд░рдирдЯрд╛рдЗрдо hooks, Gateway HTTP routes, message tool schemas, channel target resolution, provider catalogs, context engine plugins, рдФрд░ рдирдИ рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП, Plugin architecture internals рджреЗрдЦреЗрдВред

    рд╕рдВрдмрдВрдзрд┐рдд

    Was this useful?
    On this page

    On this page