






















@@ -170,7 +170,7 @@ or npm install metadata. Those belong in your plugin code and `package.json`.
170170| `providerAuthAliases` | No | `Record<string, string>` | Provider ids that should reuse another provider id for auth lookup, for example a coding provider that shares the base provider API key and auth profiles. |
171171| `channelEnvVars` | No | `Record<string, string[]>` | Cheap channel env metadata that OpenClaw can inspect without loading plugin code. Use this for env-driven channel setup or auth surfaces that generic startup/config helpers should see. |
172172| `providerAuthChoices` | No | `object[]` | Cheap auth-choice metadata for onboarding pickers, preferred-provider resolution, and simple CLI flag wiring. |
173-| `activation` | No | `object` | Cheap activation planner metadata for provider, command, channel, route, and capability-triggered loading. Metadata only; plugin runtime still owns actual behavior. |
173+| `activation` | No | `object` | Cheap activation planner metadata for startup, provider, command, channel, route, and capability-triggered loading. Metadata only; plugin runtime still owns actual behavior. |
174174| `setup` | No | `object` | Cheap setup/onboarding descriptors that discovery and setup surfaces can inspect without loading plugin runtime. |
175175| `qaRunners` | No | `object[]` | Cheap QA runner descriptors used by the shared `openclaw qa` host before plugin runtime loads. |
176176| `contracts` | No | `object` | Static bundled capability snapshot for external auth hooks, speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search, and tool ownership. |
@@ -258,9 +258,18 @@ Current consumers use it as a narrowing hint before broader plugin loading, so
258258missing activation metadata usually only costs performance; it should not
259259change correctness while legacy manifest ownership fallbacks still exist.
260260261+Every plugin should set `activation.onStartup` intentionally as OpenClaw moves
262+away from implicit startup imports. Set it to `true` only when the plugin must
263+run during Gateway startup. Set it to `false` when the plugin is inert at
264+startup and should load only from narrower triggers. Omitting `onStartup` keeps
265+the deprecated legacy implicit startup sidecar fallback for plugins with no
266+static capability metadata; future versions may stop startup-loading those
267+plugins unless they declare `activation.onStartup: true`.
268+261269```json
262270{
263271"activation": {
272+"onStartup": false,
264273"onProviders": ["openai"],
265274"onCommands": ["models"],
266275"onChannels": ["web"],
@@ -271,18 +280,21 @@ change correctness while legacy manifest ownership fallbacks still exist.
271280}
272281```
273282274-| Field | Required | Type | What it means |
275-| ------------------ | -------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
276-| `onProviders` | No | `string[]` | Provider ids that should include this plugin in activation/load plans. |
277-| `onAgentHarnesses` | No | `string[]` | Embedded agent harness runtime ids that should include this plugin in activation/load plans. Use top-level `cliBackends` for CLI backend aliases. |
278-| `onCommands` | No | `string[]` | Command ids that should include this plugin in activation/load plans. |
279-| `onChannels` | No | `string[]` | Channel ids that should include this plugin in activation/load plans. |
280-| `onRoutes` | No | `string[]` | Route kinds that should include this plugin in activation/load plans. |
281-| `onConfigPaths` | No | `string[]` | Root-relative config paths that should include this plugin in startup/load plans when the path is present and not explicitly disabled. |
282-| `onCapabilities` | No | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Broad capability hints used by control-plane activation planning. Prefer narrower fields when possible. |
283+| Field | Required | Type | What it means |
284+| ------------------ | -------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
285+| `onStartup` | No | `boolean` | Explicit Gateway startup activation. Every plugin should set this. `true` imports the plugin during startup; `false` opts out of the deprecated implicit sidecar startup fallback unless another matched trigger requires loading. |
286+| `onProviders` | No | `string[]` | Provider ids that should include this plugin in activation/load plans. |
287+| `onAgentHarnesses` | No | `string[]` | Embedded agent harness runtime ids that should include this plugin in activation/load plans. Use top-level `cliBackends` for CLI backend aliases. |
288+| `onCommands` | No | `string[]` | Command ids that should include this plugin in activation/load plans. |
289+| `onChannels` | No | `string[]` | Channel ids that should include this plugin in activation/load plans. |
290+| `onRoutes` | No | `string[]` | Route kinds that should include this plugin in activation/load plans. |
291+| `onConfigPaths` | No | `string[]` | Root-relative config paths that should include this plugin in startup/load plans when the path is present and not explicitly disabled. |
292+| `onCapabilities` | No | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Broad capability hints used by control-plane activation planning. Prefer narrower fields when possible. |
283293284294Current live consumers:
285295296+- Gateway startup planning uses `activation.onStartup` for explicit startup
297+ import and opt-out of deprecated implicit sidecar startup fallback
286298- command-triggered CLI planning falls back to legacy
287299`commandAliases[].cliCommand` or `commandAliases[].name`
288300- agent-runtime startup planning uses `activation.onAgentHarnesses` for
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。