Plugin SDK reference

Plugin рдореЗрдирд┐рдлреЗрд╕реНрдЯ

рдпрд╣ рдкреГрд╖реНрда рдХреЗрд╡рд▓ рдиреЗрдЯрд┐рд╡ OpenClaw Plugin рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИред

рд╕рдВрдЧрдд рдмрдВрдбрд▓ рд▓реЗрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП, Plugin рдмрдВрдбрд▓ рджреЗрдЦреЗрдВред

рд╕рдВрдЧрдд рдмрдВрдбрд▓ рдлрд╝реЙрд░реНрдореИрдЯ рдЕрд▓рдЧ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  • Codex рдмрдВрдбрд▓: .codex-plugin/plugin.json
  • Claude рдмрдВрдбрд▓: .claude-plugin/plugin.json рдпрд╛ рдмрд┐рдирд╛ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рд╡рд╛рд▓рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ Claude рдШрдЯрдХ рд▓реЗрдЖрдЙрдЯ
  • Cursor рдмрдВрдбрд▓: .cursor-plugin/plugin.json

OpenClaw рдЙрди рдмрдВрдбрд▓ рд▓реЗрдЖрдЙрдЯ рдХреЛ рднреА рд╕реНрд╡рддрдГ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд openclaw.plugin.json рд╕реНрдХреАрдорд╛ рдХреЗ рд╡рд┐рд░реБрджреНрдз рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред

рд╕рдВрдЧрдд рдмрдВрдбрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, OpenClaw рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдВрдбрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд skill рд░реВрдЯ, Claude рдХрдорд╛рдВрдб рд░реВрдЯ, Claude рдмрдВрдбрд▓ settings.json рдбрд┐рдлрд╝реЙрд▓реНрдЯ, Claude рдмрдВрдбрд▓ LSP рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рдФрд░ рд╕рдорд░реНрдерд┐рдд hook рдкреИрдХ рдкрдврд╝рддрд╛ рд╣реИ, рдЬрдм рд▓реЗрдЖрдЙрдЯ OpenClaw рд░рдирдЯрд╛рдЗрдо рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

рд╣рд░ рдиреЗрдЯрд┐рд╡ OpenClaw Plugin рдХреЛ Plugin рд░реВрдЯ рдореЗрдВ рдПрдХ openclaw.plugin.json рдлрд╝рд╛рдЗрд▓ рд╢рд┐рдк рдХрд░рдиреА рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред OpenClaw рдЗрд╕ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ Plugin рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрдкрд╕реНрдерд┐рдд рдпрд╛ рдЕрдорд╛рдиреНрдп рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдХреЛ Plugin рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред

рдкреВрд░рд╛ Plugin рд╕рд┐рд╕реНрдЯрдо рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВ: Pluginsред рдиреЗрдЯрд┐рд╡ рдХреНрд╖рдорддрд╛ рдореЙрдбрд▓ рдФрд░ рд╡рд░реНрддрдорд╛рди рдмрд╛рд╣рд░реА-рд╕рдВрдЧрддрддрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП: рдХреНрд╖рдорддрд╛ рдореЙрдбрд▓ред

рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИ

openclaw.plugin.json рд╡рд╣ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реИ рдЬрд┐рд╕реЗ OpenClaw рдЖрдкрдХрд╛ Plugin рдХреЛрдб рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рддрд╛ рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рд╣рд░ рдЪреАрдЬрд╝ рдЗрддрдиреА рд╣рд▓реНрдХреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ Plugin рд░рдирдЯрд╛рдЗрдо рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХреА рдЬрд╛ рд╕рдХреЗред

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  • Plugin рдкрд╣рдЪрд╛рди, рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╕рддреНрдпрд╛рдкрди, рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧ UI рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП
  • auth, рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ, рдФрд░ рд╕реЗрдЯрдЕрдк рдореЗрдЯрд╛рдбреЗрдЯрд╛ (alias, auto-enable, provider env vars, auth choices) рдХреЗ рд▓рд┐рдП
  • control-plane рд╕рддрд╣реЛрдВ рдХреЗ рд▓рд┐рдП activation рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП
  • рдореЙрдбрд▓-рдлрд╝реИрдорд┐рд▓реА рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЗ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХреЗ рд▓рд┐рдП
  • рд╕реНрдерд┐рд░ рдХреНрд╖рдорддрд╛-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╕реНрдиреИрдкрд╢реЙрдЯ (contracts) рдХреЗ рд▓рд┐рдП
  • QA runner рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЬрд┐рд╕реЗ рд╕рд╛рдЭрд╛ openclaw qa рд╣реЛрд╕реНрдЯ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗ
  • catalog рдФрд░ validation рд╕рддрд╣реЛрдВ рдореЗрдВ merge рдХрд┐рдП рдЧрдП channel-specific config metadata рдХреЗ рд▓рд┐рдП

рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ: рд░рдирдЯрд╛рдЗрдо рд╡реНрдпрд╡рд╣рд╛рд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ, рдХреЛрдб entrypoints рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ, рдпрд╛ npm install metadata рдХреЗ рд▓рд┐рдПред рд╡реЗ рдЖрдкрдХреЗ Plugin рдХреЛрдб рдФрд░ package.json рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг

json
{  "id": "voice-call",  "configSchema": {    "type": "object",    "additionalProperties": false,    "properties": {}  }}

рд╕рдореГрджреНрдз рдЙрджрд╛рд╣рд░рдг

json
{  "id": "openrouter",  "name": "OpenRouter",  "description": "OpenRouter provider plugin",  "version": "1.0.0",  "providers": ["openrouter"],  "modelSupport": {    "modelPrefixes": ["router-"]  },  "modelIdNormalization": {    "providers": {      "openrouter": {        "prefixWhenBare": "openrouter"      }    }  },  "providerEndpoints": [    {      "endpointClass": "openrouter",      "hostSuffixes": ["openrouter.ai"]    }  ],  "providerRequest": {    "providers": {      "openrouter": {        "family": "openrouter"      }    }  },  "cliBackends": ["openrouter-cli"],  "syntheticAuthRefs": ["openrouter-cli"],  "setup": {    "providers": [      {        "id": "openrouter",        "envVars": ["OPENROUTER_API_KEY"]      }    ]  },  "providerAuthAliases": {    "openrouter-coding": "openrouter"  },  "channelEnvVars": {    "openrouter-chatops": ["OPENROUTER_CHATOPS_TOKEN"]  },  "providerAuthChoices": [    {      "provider": "openrouter",      "method": "api-key",      "choiceId": "openrouter-api-key",      "choiceLabel": "OpenRouter API key",      "groupId": "openrouter",      "groupLabel": "OpenRouter",      "optionKey": "openrouterApiKey",      "cliFlag": "--openrouter-api-key",      "cliOption": "--openrouter-api-key <key>",      "cliDescription": "OpenRouter API key",      "onboardingScopes": ["text-inference"]    }  ],  "uiHints": {    "apiKey": {      "label": "API key",      "placeholder": "sk-or-v1-...",      "sensitive": true    }  },  "configSchema": {    "type": "object",    "additionalProperties": false,    "properties": {      "apiKey": {        "type": "string"      }    }  }}

рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдлрд╝реАрд▓реНрдб рд╕рдВрджрд░реНрдн

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
id рд╣рд╛рдБ string рдХреИрдирдирд┐рдХрд▓ plugin id. рдпрд╣ plugins.entries.<id> рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ id рд╣реИред
configSchema рд╣рд╛рдБ object рдЗрд╕ plugin рдХреЗ config рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди JSON Schema.
requiresPlugins рдирд╣реАрдВ string[] Plugin ids рдЬреЛ рдЗрд╕ plugin рдХреЗ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рде рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред Discovery plugin рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд░рдЦрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХ plugin рди рдорд┐рд▓рдиреЗ рдкрд░ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреА рд╣реИред
enabledByDefault рдирд╣реАрдВ true bundled plugin рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ, рдпрд╛ рдХреЛрдИ рднреА non-true рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ, рддрд╛рдХрд┐ plugin рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд░рд╣реЗред
enabledByDefaultOnPlatforms рдирд╣реАрдВ string[] bundled plugin рдХреЛ рдХреЗрд╡рд▓ рд╕реВрдЪреАрдмрджреНрдз Node.js platforms рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ["darwin"]. рд╕реНрдкрд╖реНрдЯ config рдлрд┐рд░ рднреА рдкреНрд░рд╛рдердорд┐рдХ рд░рд╣реЗрдЧрд╛ред
legacyPluginIds рдирд╣реАрдВ string[] Legacy ids рдЬреЛ рдЗрд╕ рдХреИрдирдирд┐рдХрд▓ plugin id рдореЗрдВ normalize рд╣реЛрддреЗ рд╣реИрдВред
autoEnableWhenConfiguredProviders рдирд╣реАрдВ string[] Provider ids рдЬреЛ auth, config, рдпрд╛ model refs рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ plugin рдХреЛ auto-enable рдХрд░реЗрдВред
kind рдирд╣реАрдВ "memory" | "context-engine" plugins.slots.* рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ exclusive plugin kind рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
channels рдирд╣реАрдВ string[] рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ Channel ids. Discovery рдФрд░ config validation рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
providers рдирд╣реАрдВ string[] рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ Provider ids.
providerCatalogEntry рдирд╣реАрдВ string plugin root рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ lightweight provider-catalog module path, manifest-scoped provider catalog metadata рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕реЗ рдкреВрд░реЗ plugin runtime рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд┐рдП рдмрд┐рдирд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
modelSupport рдирд╣реАрдВ object runtime рд╕реЗ рдкрд╣рд▓реЗ plugin рдХреЛ auto-load рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ manifest-owned shorthand model-family metadata.
modelCatalog рдирд╣реАрдВ object рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ providers рдХреЗ рд▓рд┐рдП declarative model catalog metadata. рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреА read-only listing, onboarding, model pickers, aliases, рдФрд░ plugin runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ suppression рдХреЗ рд▓рд┐рдП control-plane contract рд╣реИред
modelPricing рдирд╣реАрдВ object Provider-owned external pricing lookup policy. рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ local/self-hosted providers рдХреЛ remote pricing catalogs рд╕реЗ opt out рдХрд░рдиреЗ рдпрд╛ core рдореЗрдВ provider ids hardcode рдХрд┐рдП рдмрд┐рдирд╛ provider refs рдХреЛ OpenRouter/LiteLLM catalog ids рдкрд░ map рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВред
modelIdNormalization рдирд╣реАрдВ object Provider-owned model-id alias/prefix cleanup рдЬреЛ provider runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
providerEndpoints рдирд╣реАрдВ object[] Provider routes рдХреЗ рд▓рд┐рдП manifest-owned endpoint host/baseUrl metadata, рдЬрд┐рд╕реЗ core рдХреЛ provider runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ classify рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
providerRequest рдирд╣реАрдВ object Generic request policy рджреНрд╡рд╛рд░рд╛ provider runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд╕реНрддрд╛ provider-family рдФрд░ request-compatibility metadata.
secretProviderIntegrations рдирд╣реАрдВ Record<string, object> Declarative SecretRef exec provider presets рдЬрд┐рдиреНрд╣реЗрдВ setup рдпрд╛ install surfaces core рдореЗрдВ provider-specific integrations hardcode рдХрд┐рдП рдмрд┐рдирд╛ offer рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
cliBackends рдирд╣реАрдВ string[] рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ CLI inference backend ids. explicit config refs рд╕реЗ startup auto-activation рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
syntheticAuthRefs рдирд╣реАрдВ string[] Provider рдпрд╛ CLI backend refs рдЬрд┐рдирдХреЗ plugin-owned synthetic auth hook рдХреЛ runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ cold model discovery рдХреЗ рджреМрд░рд╛рди probe рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
nonSecretAuthMarkers рдирд╣реАрдВ string[] Bundled-plugin-owned placeholder API key values рдЬреЛ non-secret local, OAuth, рдпрд╛ ambient credential state рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред
commandAliases рдирд╣реАрдВ object[] рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ Command names, рдЬрд┐рдиреНрд╣реЗрдВ runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ plugin-aware config рдФрд░ CLI diagnostics рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред
providerAuthEnvVars рдирд╣реАрдВ Record<string, string[]> Provider auth/status lookup рдХреЗ рд▓рд┐рдП deprecated compatibility env metadata. рдирдП plugins рдХреЗ рд▓рд┐рдП setup.providers[].envVars рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ; OpenClaw deprecation window рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рдЕрднреА рднреА рдкрдврд╝рддрд╛ рд╣реИред
providerAuthAliases рдирд╣реАрдВ Record<string, string> Provider ids рдЬрд┐рдиреНрд╣реЗрдВ auth lookup рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп provider id рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ coding provider рдЬреЛ base provider API key рдФрд░ auth profiles рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реИред
channelEnvVars рдирд╣реАрдВ Record<string, string[]> рд╕рд╕реНрддрд╛ channel env metadata рдЬрд┐рд╕реЗ OpenClaw plugin code рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ inspect рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ env-driven channel setup рдпрд╛ auth surfaces рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ generic startup/config helpers рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
providerAuthChoices рдирд╣реАрдВ object[] Onboarding pickers, preferred-provider resolution, рдФрд░ simple CLI flag wiring рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ auth-choice metadata.
activation рдирд╣реАрдВ object startup, provider, command, channel, route, рдФрд░ capability-triggered loading рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ activation planner metadata. рдХреЗрд╡рд▓ metadata; actual behavior рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЕрднреА рднреА plugin runtime рдХреЗ рдкрд╛рд╕ рд╣реИред
setup рдирд╣реАрдВ object рд╕рд╕реНрддреЗ setup/onboarding descriptors рдЬрд┐рдиреНрд╣реЗрдВ discovery рдФрд░ setup surfaces plugin runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ inspect рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
qaRunners рдирд╣реАрдВ object[] shared openclaw qa host рджреНрд╡рд╛рд░рд╛ plugin runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╕реНрддреЗ QA runner descriptors.
contracts рдирд╣реАрдВ object external auth hooks, embeddings, speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search, рдФрд░ tool ownership рдХреЗ рд▓рд┐рдП static capability ownership snapshot.
mediaUnderstandingProviderMetadata рдирд╣реАрдВ Record<string, object> contracts.mediaUnderstandingProviders рдореЗрдВ рдШреЛрд╖рд┐рдд provider ids рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддреЗ media-understanding defaults.
imageGenerationProviderMetadata рдирд╣реАрдВ Record<string, object> contracts.imageGenerationProviders рдореЗрдВ рдШреЛрд╖рд┐рдд provider ids рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ image-generation auth metadata, рдЬрд┐рд╕рдореЗрдВ provider-owned auth aliases рдФрд░ base-url guards рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
videoGenerationProviderMetadata рдирд╣реАрдВ Record<string, object> contracts.videoGenerationProviders рдореЗрдВ рдШреЛрд╖рд┐рдд provider ids рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ video-generation auth metadata, рдЬрд┐рд╕рдореЗрдВ provider-owned auth aliases рдФрд░ base-url guards рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
musicGenerationProviderMetadata рдирд╣реАрдВ Record<string, object> contracts.musicGenerationProviders рдореЗрдВ рдШреЛрд╖рд┐рдд provider ids рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ music-generation auth metadata, рдЬрд┐рд╕рдореЗрдВ provider-owned auth aliases рдФрд░ base-url guards рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
toolMetadata рдирд╣реАрдВ Record<string, object> contracts.tools рдореЗрдВ рдШреЛрд╖рд┐рдд Plugin-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рд╣рд▓реНрдХрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХрд┐рд╕реА рдЯреВрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧ, рдкрд░рд┐рд╡реЗрд╢, рдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдорд╛рдг рдореМрдЬреВрдж рд╣реЛрдиреЗ рддрдХ рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
channelConfigs рдирд╣реАрдВ Record<string, object> рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХрд╡рд░реА рдФрд░ рд╕рддреНрдпрд╛рдкрди рд╕рддрд╣реЛрдВ рдореЗрдВ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓рд╛ рдЪреИрдирд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореЗрдЯрд╛рдбреЗрдЯрд╛ред
skills рдирд╣реАрдВ string[] рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Skills рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ, Plugin рд░реВрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ред
name рдирд╣реАрдВ string рдордиреБрд╖реНрдп-рдкрдардиреАрдп Plugin рдирд╛рдоред
description рдирд╣реАрдВ string Plugin рд╕рддрд╣реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ред
icon рдирд╣реАрдВ string рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕/рдХреИрдЯрд▓реЙрдЧ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП HTTPS рдЫрд╡рд┐ URLред ClawHub рдХрд┐рд╕реА рднреА рдорд╛рдиреНрдп https:// URL рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЫреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдпрд╛ рдЕрдорд╛рдиреНрдп рд╣реЛрдиреЗ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ Plugin рдЖрдЗрдХрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИред
version рдирд╣реАрдВ string рд╕реВрдЪрдирд╛рддреНрдордХ Plugin рд╕рдВрд╕реНрдХрд░рдгред
uiHints рдирд╣реАрдВ Record<string, object> рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП UI рд▓реЗрдмрд▓, рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░, рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рд╕рдВрдХреЗрддред

рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдВрджрд░реНрдн

рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдлрд╝реАрд▓реНрдб рдЙрди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдСрде рд╕рд┐рдЧреНрдирд▓ рдмрддрд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд contracts.*GenerationProviders рд╕реВрдЪреА рдореЗрдВ рдШреЛрд╖рд┐рдд рд╣реИрдВред OpenClaw рдЗрди рдлрд╝реАрд▓реНрдб рдХреЛ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрд░ рдЯреВрд▓ рд╣рд░ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ Plugin рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рддрдп рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХреЛрдИ рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЗрди рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕рд╕реНрддреЗ, рдШреЛрд╖рдгрд╛рддреНрдордХ рддрдереНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВред рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ, рдЕрдиреБрд░реЛрдз рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо, рдЯреЛрдХрди рд░рд┐рдлрд╝реНрд░реЗрд╢, рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╕рддреНрдпрд╛рдкрди, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрдирд░реЗрд╢рди рд╡реНрдпрд╡рд╣рд╛рд░ Plugin рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред

json
{  "contracts": {    "imageGenerationProviders": ["example-image"]  },  "imageGenerationProviderMetadata": {    "example-image": {      "aliases": ["example-image-oauth"],      "authProviders": ["example-image"],      "configSignals": [        {          "rootPath": "plugins.entries.example-image.config",          "overlayPath": "image",          "mode": {            "path": "mode",            "default": "local",            "allowed": ["local"]          },          "requiredAny": ["workflow", "workflowPath"],          "required": ["promptNodeId"]        }      ],      "authSignals": [        {          "provider": "example-image"        },        {          "provider": "example-image-oauth",          "providerBaseUrl": {            "provider": "example-image",            "defaultBaseUrl": "https://api.example.com/v1",            "allowedBaseUrls": ["https://api.example.com/v1"]          }        }      ]    }  }}

рд╣рд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдПрдВрдЯреНрд░реА рд╕рдорд░реНрдерд┐рдд рдХрд░рддреА рд╣реИ:

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
aliases рдирд╣реАрдВ string[] рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ ids рдЬрд┐рдиреНрд╣реЗрдВ рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ рдСрде рдЙрдкрдирд╛рдо рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
authProviders рдирд╣реАрдВ string[] рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ ids рдЬрд┐рдирдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдСрде рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЗрд╕ рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЗ рд▓рд┐рдП рдСрде рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
configSignals рдирд╣реАрдВ object[] рд▓реЛрдХрд▓ рдпрд╛ рд╕реНрд╡рдпрдВ-рд╣реЛрд╕реНрдЯреЗрдб рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддреЗ рдХреЗрд╡рд▓-рдХреЙрдиреНрдлрд╝рд┐рдЧ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕рд┐рдЧреНрдирд▓, рдЬрд┐рдиреНрд╣реЗрдВ рдСрде рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ env vars рдХреЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
authSignals рдирд╣реАрдВ object[] рд╕реНрдкрд╖реНрдЯ рдСрде рд╕рд┐рдЧреНрдирд▓ред рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рдпреЗ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ id, aliases, рдФрд░ authProviders рд╕реЗ рдмрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд┐рдЧреНрдирд▓ рд╕реЗрдЯ рдХреЛ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред
referenceAudioInputs рдирд╣реАрдВ boolean рдХреЗрд╡рд▓ рд╡реАрдбрд┐рдпреЛ-рдЬрдирд░реЗрд╢рдиред рдЬрдм рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд╕рдВрджрд░реНрдн рдСрдбрд┐рдпреЛ рдПрд╕реЗрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реЛ рддреЛ true рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ; рдЕрдиреНрдпрдерд╛ video_generate рдСрдбрд┐рдпреЛ рд╕рдВрджрд░реНрдн рдкреИрд░рд╛рдореАрдЯрд░ рдЫрд┐рдкрд╛ рджреЗрддрд╛ рд╣реИред

рд╣рд░ configSignals рдПрдВрдЯреНрд░реА рд╕рдорд░реНрдерд┐рдд рдХрд░рддреА рд╣реИ:

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
rootPath рд╣рд╛рдБ string рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП Plugin-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдбреЙрдЯ рдкрд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП plugins.entries.example.configред
overlayPath рдирд╣реАрдВ string рд░реВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдЕрдВрджрд░ рдбреЙрдЯ рдкрд╛рде, рдЬрд┐рд╕рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░реВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдУрд╡рд░рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ image, video, рдпрд╛ music рдЬреИрд╕реА рдХреНрд╖рдорддрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
overlayMapPath рдирд╣реАрдВ string рд░реВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдЕрдВрджрд░ рдбреЙрдЯ рдкрд╛рде, рдЬрд┐рд╕рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ рд░реВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдУрд╡рд░рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ accounts рдЬреИрд╕реЗ рдирд╛рдорд┐рдд рдЕрдХрд╛рдЙрдВрдЯ рдореИрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд╣рд╛рдБ рдХреЛрдИ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрдХрд╛рдЙрдВрдЯ рдкрд╛рддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
required рдирд╣реАрдВ string[] рдкреНрд░рднрд╛рд╡реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдЕрдВрджрд░ рдбреЙрдЯ рдкрд╛рде рдЬрд┐рдирдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдорд╛рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП; рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдРрд░реЗ рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
requiredAny рдирд╣реАрдВ string[] рдкреНрд░рднрд╛рд╡реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдЕрдВрджрд░ рдбреЙрдЯ рдкрд╛рде, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
mode рдирд╣реАрдВ object рдкреНрд░рднрд╛рд╡реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдЕрдВрджрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЛрдб рдЧрд╛рд░реНрдбред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХреЗрд╡рд▓-рдХреЙрдиреНрдлрд╝рд┐рдЧ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕рд┐рд░реНрдлрд╝ рдПрдХ рдореЛрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реЛред

рд╣рд░ mode рдЧрд╛рд░реНрдб рд╕рдорд░реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
path рдирд╣реАрдВ string рдкреНрд░рднрд╛рд╡реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЗ рдЕрдВрджрд░ рдбреЙрдЯ рдкрд╛рдеред рдбрд┐рдлрд╝реЙрд▓реНрдЯ mode рд╣реИред
default рдирд╣реАрдВ string рдЬрдм рдХреЙрдиреНрдлрд╝рд┐рдЧ рдкрд╛рде рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рддрдм рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореЛрдб рдорд╛рдиред
allowed рдирд╣реАрдВ string[] рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░, рд╕рд┐рдЧреНрдирд▓ рдХреЗрд╡рд▓ рддрдм рдкрд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдкреНрд░рднрд╛рд╡реА рдореЛрдб рдЗрди рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛред
disallowed рдирд╣реАрдВ string[] рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░, рд╕рд┐рдЧреНрдирд▓ рддрдм рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдкреНрд░рднрд╛рд╡реА рдореЛрдб рдЗрди рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛред

рд╣рд░ authSignals рдПрдВрдЯреНрд░реА рд╕рдорд░реНрдерд┐рдд рдХрд░рддреА рд╣реИ:

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
provider рд╣рд╛рдБ string рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдСрде рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ idред
providerBaseUrl рдирд╣реАрдВ object рд╡реИрдХрд▓реНрдкрд┐рдХ рдЧрд╛рд░реНрдб рдЬреЛ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдХреЗрд╡рд▓ рддрдм рдЧрд┐рдирддрд╛ рд╣реИ рдЬрдм рд╕рдВрджрд░реНрднрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдЕрдиреБрдордд рдмреЗрд╕ URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реЛред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХреЛрдИ рдСрде рдЙрдкрдирд╛рдо рдХреЗрд╡рд▓ рдХреБрдЫ APIs рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реЛред

рд╣рд░ providerBaseUrl рдЧрд╛рд░реНрдб рд╕рдорд░реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
provider рд╣рд╛рдБ string рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧ id, рдЬрд┐рд╕рдХрд╛ baseUrl рдЬрд╛рдБрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
defaultBaseUrl рдирд╣реАрдВ string рдЬрдм рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧ baseUrl рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рддрдм рдорд╛рдирдиреЗ рд╡рд╛рд▓рд╛ рдмреЗрд╕ URLред
allowedBaseUrls рд╣рд╛рдБ string[] рдЗрд╕ рдСрде рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдордд рдмреЗрд╕ URLsред рдЬрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреЗрд╕ URL рдЗрди рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдорд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛, рддреЛ рд╕рд┐рдЧреНрдирд▓ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЯреВрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рдВрджрд░реНрдн

toolMetadata рдЯреВрд▓ рдирд╛рдо рд╕реЗ рдХреА рдЧрдИ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде, рдЬрдирд░реЗрд╢рди рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЬреИрд╕реА рд╣реА configSignals рдФрд░ authSignals рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред contracts.tools рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред toolMetadata рд╕рд╕реНрддрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдкреНрд░рдорд╛рдг рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ OpenClaw рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдЯреВрд▓ рдлрд╝реИрдХреНрдЯрд░реА рд╕реЗ null рд╡рд╛рдкрд╕ рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Plugin рд░рдирдЯрд╛рдЗрдо рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХреЗред

json
{  "setup": {    "providers": [      {        "id": "example",        "envVars": ["EXAMPLE_API_KEY"]      }    ]  },  "contracts": {    "tools": ["example_search"]  },  "toolMetadata": {    "example_search": {      "authSignals": [        {          "provider": "example"        }      ],      "configSignals": [        {          "rootPath": "plugins.entries.example.config",          "overlayPath": "search",          "required": ["apiKey"]        }      ]    }  }}

рдпрджрд┐ рдХрд┐рд╕реА рдЯреВрд▓ рдХреЗ рдкрд╛рд╕ toolMetadata рдирд╣реАрдВ рд╣реИ, рддреЛ OpenClaw рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЯреВрд▓ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдкреЙрд▓рд┐рд╕реА рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдкрд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓рд╛ Plugin рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рд╣реЙрдЯ-рдкрд╛рде рдЯреВрд▓ рдЬрд┐рдирдХреА рдлрд╝реИрдХреНрдЯрд░реА рдСрде/рдХреЙрдиреНрдлрд╝рд┐рдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП Plugin рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░ рд╕реЗ рд░рдирдЯрд╛рдЗрдо рдЗрдВрдкреЛрд░реНрдЯ рдХрд░рд╡рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп toolMetadata рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

providerAuthChoices рд╕рдВрджрд░реНрдн

рд╣рд░ providerAuthChoices рдПрдВрдЯреНрд░реА рдПрдХ рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рдпрд╛ рдСрде рд╡рд┐рдХрд▓реНрдк рдмрддрд╛рддреА рд╣реИред OpenClaw рдЗрд╕реЗ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рддрд╛ рд╣реИред рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд╕реЗрдЯрдЕрдк рд╕реВрдЪрд┐рдпрд╛рдБ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдЗрди рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ, рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░-рд╡реНрдпреБрддреНрдкрдиреНрди рд╕реЗрдЯрдЕрдк рд╡рд┐рдХрд▓реНрдкреЛрдВ, рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓-рдХреИрдЯрд▓реЙрдЧ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ
provider рд╣рд╛рдБ string рдкреНрд░рджрд╛рддрд╛ рдЖрдИрдбреА рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
method рд╣рд╛рдБ string рдЬрд┐рд╕ рдкрд░ рдбрд┐рд╕реНрдкреИрдЪ рдХрд░рдирд╛ рд╣реИ рд╡рд╣ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рдЖрдИрдбреАред
choiceId рд╣рд╛рдБ string рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рдФрд░ CLI рдлрд╝реНрд▓реЛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдерд┐рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг-рд╡рд┐рдХрд▓реНрдк рдЖрдИрдбреАред
choiceLabel рдирд╣реАрдВ string рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд▓реЗрдмрд▓ред рдЕрдЧрд░ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛ, рддреЛ OpenClaw choiceId рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИред
choiceHint рдирд╣реАрдВ string рдкрд┐рдХрд░ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рд╕рд╣рд╛рдпрдХ рдЯреЗрдХреНрд╕реНрдЯред
assistantPriority рдирд╣реАрдВ number рдХрдо рдорд╛рди рд╕рд╣рд╛рдпрдХ-рд╕рдВрдЪрд╛рд▓рд┐рдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкрд┐рдХрд░ рдореЗрдВ рдкрд╣рд▓реЗ рдХреНрд░рдордмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВред
assistantVisibility рдирд╣реАрдВ "visible" | "manual-only" рдореИрдиреНрдпреБрдЕрд▓ CLI рдЪрдпрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реБрдП рднреА рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд╣рд╛рдпрдХ рдкрд┐рдХрд░ рд╕реЗ рдЫрд┐рдкрд╛рдПрдБред
deprecatedChoiceIds рдирд╣реАрдВ string[] рдкреБрд░рд╛рдиреЗ рд╡рд┐рдХрд▓реНрдк рдЖрдИрдбреА рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╡рд┐рдХрд▓реНрдк рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
groupId рдирд╣реАрдВ string рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдореВрд╣ рдЖрдИрдбреАред
groupLabel рдирд╣реАрдВ string рдЙрд╕ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд▓реЗрдмрд▓ред
groupHint рдирд╣реАрдВ string рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛ рд╕рд╣рд╛рдпрдХ рдЯреЗрдХреНрд╕реНрдЯред
optionKey рдирд╣реАрдВ string рд╕рд░рд▓ рдПрдХ-рдлрд╝реНрд▓реИрдЧ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд╡рд┐рдХрд▓реНрдк рдХреБрдВрдЬреАред
cliFlag рдирд╣реАрдВ string CLI рдлрд╝реНрд▓реИрдЧ рдирд╛рдо, рдЬреИрд╕реЗ --openrouter-api-keyред
cliOption рдирд╣реАрдВ string рдкреВрд░рд╛ CLI рд╡рд┐рдХрд▓реНрдк рдЖрдХрд╛рд░, рдЬреИрд╕реЗ --openrouter-api-key <key>ред
cliDescription рдирд╣реАрдВ string CLI рд╕рд╣рд╛рдпрддрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд┐рд╡рд░рдгред
onboardingScopes рдирд╣реАрдВ Array<"text-inference" | "image-generation" | "music-generation"> рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд┐рди рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рд╕рддрд╣реЛрдВ рдореЗрдВ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реЛ, рддреЛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ["text-inference"] рд╣реЛрддрд╛ рд╣реИред

commandAliases рд╕рдВрджрд░реНрдн

commandAliases рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХреЛрдИ Plugin рдРрд╕рд╛ рд░рдирдЯрд╛рдЗрдо рдХрдорд╛рдВрдб рдирд╛рдо рд░рдЦрддрд╛ рд╣реЛ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрд▓рддреА рд╕реЗ plugins.allow рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ root CLI рдХрдорд╛рдВрдб рдХреА рддрд░рд╣ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред OpenClaw Plugin рд░рдирдЯрд╛рдЗрдо рдХреЛрдб рдЖрдпрд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

json
{  "commandAliases": [    {      "name": "dreaming",      "kind": "runtime-slash",      "cliCommand": "memory"    }  ]}
рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ
name рд╣рд╛рдБ string рдХрдорд╛рдВрдб рдирд╛рдо рдЬреЛ рдЗрд╕ Plugin рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
kind рдирд╣реАрдВ "runtime-slash" рдЙрдкрдирд╛рдо рдХреЛ root CLI рдХрдорд╛рдВрдб рдХреЗ рдмрдЬрд╛рдп рдЪреИрдЯ рд╕реНрд▓реИрд╢ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред
cliCommand рдирд╣реАрдВ string CLI рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рдиреЗ рдпреЛрдЧреНрдп рд╕рдВрдмрдВрдзрд┐рдд root CLI рдХрдорд╛рдВрдб, рдЕрдЧрд░ рдХреЛрдИ рдореМрдЬреВрдж рд╣реЛред

activation рд╕рдВрджрд░реНрдн

activation рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм Plugin рдХрдо рд▓рд╛рдЧрдд рдореЗрдВ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реЛ рдХрд┐ рдХрд┐рди рдирд┐рдпрдВрддреНрд░рдг-рдкреНрд▓реЗрди рдЗрд╡реЗрдВрдЯреНрд╕ рдореЗрдВ рдЙрд╕реЗ рд╕рдХреНрд░рд┐рдпрдг/рд▓реЛрдб рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдмреНрд▓реЙрдХ рдкреНрд▓рд╛рдирд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реИ, рд▓рд╛рдЗрдлрд╝рд╕рд╛рдЗрдХрд▓ API рдирд╣реАрдВред рдпрд╣ рд░рдирдЯрд╛рдЗрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд░рддрд╛, register(...) рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рдпрд╣ рд╡рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ Plugin рдХреЛрдб рдкрд╣рд▓реЗ рд╣реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рд╕рдХреНрд░рд┐рдпрдг рдкреНрд▓рд╛рдирд░ рдореМрдЬреВрджрд╛ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЬреИрд╕реЗ providers, channels, commandAliases, setup.providers, contracts.tools, рдФрд░ рд╣реБрдХреНрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдореНрдореАрджрд╡рд╛рд░ Plugins рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рд╕рдВрдХреАрд░реНрдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реЛред рдЬрдм providers, channels, commandAliases, рд╕реЗрдЯрдЕрдк рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░, рдпрд╛ contracts рд╕рдВрдмрдВрдз рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реЛрдВ, рддреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд▓рд╛рдирд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП activation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрди рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдлрд╝реАрд▓реНрдбреНрд╕ рд╕реЗ рдирд┐рд░реВрдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред claude-cli, my-cli, рдпрд╛ google-gemini-cli рдЬреИрд╕реЗ CLI рд░рдирдЯрд╛рдЗрдо рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп cliBackends рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; activation.onAgentHarnesses рдХреЗрд╡рд▓ рдЙрди рдПрдореНрдмреЗрдбреЗрдб рдПрдЬреЗрдВрдЯ рд╣рд╛рд░реНрдиреЗрд╕ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдмреНрд▓реЙрдХ рдХреЗрд╡рд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реИред рдпрд╣ рд░рдирдЯрд╛рдЗрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд░рддрд╛, рдФрд░ рдпрд╣ register(...), setupEntry, рдпрд╛ рдЕрдиреНрдп рд░рдирдЯрд╛рдЗрдо/Plugin рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ред рд╡рд░реНрддрдорд╛рди рдЙрдкрднреЛрдХреНрддрд╛ рд╡реНрдпрд╛рдкрдХ Plugin рд▓реЛрдбрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЧреИрд░-рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдХреНрд░рд┐рдпрдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рди рд╣реЛрдирд╛ рдЖрдо рддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдХреА рд▓рд╛рдЧрдд рдмрдирддрд╛ рд╣реИ; рдЬрдм рддрдХ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдлреЙрд▓рдмреИрдХ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИрдВ, рдЗрд╕рд╕реЗ рд╢реБрджреНрдзрддрд╛ рдирд╣реАрдВ рдмрджрд▓рдиреА рдЪрд╛рд╣рд┐рдПред

рд╣рд░ Plugin рдХреЛ activation.onStartup рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ true рдХреЗрд╡рд▓ рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм Plugin рдХреЛ Gateway рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдЪрд▓рдирд╛ рд╣реА рд╣реЛред рдЗрд╕реЗ false рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм Plugin рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛ рдФрд░ рдХреЗрд╡рд▓ рд╕рдВрдХреАрд░реНрдг рдЯреНрд░рд┐рдЧрд░реНрд╕ рд╕реЗ рд▓реЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред onStartup рдЫреЛрдбрд╝ рджреЗрдиреЗ рд╕реЗ рдЕрдм Plugin рдкрд░реЛрдХреНрд╖ рд░реВрдк рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк-рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛; рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк, рдЪреИрдирд▓, рдХреЙрдиреНрдлрд╝рд┐рдЧ, рдПрдЬреЗрдВрдЯ-рд╣рд╛рд░реНрдиреЗрд╕, рдореЗрдореЛрд░реА, рдпрд╛ рдЕрдиреНрдп рд╕рдВрдХреАрд░реНрдг рд╕рдХреНрд░рд┐рдпрдг рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╕рдХреНрд░рд┐рдпрдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

json
{  "activation": {    "onStartup": false,    "onProviders": ["openai"],    "onCommands": ["models"],    "onChannels": ["web"],    "onRoutes": ["gateway-webhook"],    "onConfigPaths": ["browser"],    "onCapabilities": ["provider", "tool"]  }}
рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ
onStartup рдирд╣реАрдВ boolean рд╕реНрдкрд╖реНрдЯ Gateway рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдХреНрд░рд┐рдпрдгред рд╣рд░ Plugin рдХреЛ рдпрд╣ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред true рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди Plugin рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ; false рдЗрд╕реЗ рддрдм рддрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк-рд▓реЗрдЬрд╝реА рд░рдЦрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХреЛрдИ рджреВрд╕рд░рд╛ рдорд┐рд▓рд╛рди рд╡рд╛рд▓рд╛ рдЯреНрд░рд┐рдЧрд░ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдорд╛рдВрдЧ рди рдХрд░реЗред
onProviders рдирд╣реАрдВ string[] рдкреНрд░рджрд╛рддрд╛ рдЖрдИрдбреА рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ Plugin рдХреЛ рд╕рдХреНрд░рд┐рдпрдг/рд▓реЛрдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
onAgentHarnesses рдирд╣реАрдВ string[] рдПрдореНрдмреЗрдбреЗрдб рдПрдЬреЗрдВрдЯ рд╣рд╛рд░реНрдиреЗрд╕ рд░рдирдЯрд╛рдЗрдо рдЖрдИрдбреА рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ Plugin рдХреЛ рд╕рдХреНрд░рд┐рдпрдг/рд▓реЛрдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред CLI рдмреИрдХрдПрдВрдб рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп cliBackends рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
onCommands рдирд╣реАрдВ string[] рдХрдорд╛рдВрдб рдЖрдИрдбреА рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ Plugin рдХреЛ рд╕рдХреНрд░рд┐рдпрдг/рд▓реЛрдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
onChannels рдирд╣реАрдВ string[] рдЪреИрдирд▓ рдЖрдИрдбреА рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ Plugin рдХреЛ рд╕рдХреНрд░рд┐рдпрдг/рд▓реЛрдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
onRoutes рдирд╣реАрдВ string[] рд░реВрдЯ рдкреНрд░рдХрд╛рд░ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ Plugin рдХреЛ рд╕рдХреНрд░рд┐рдпрдг/рд▓реЛрдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
onConfigPaths рдирд╣реАрдВ string[] root-рд╕рд╛рдкреЗрдХреНрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдкрде рдЬрд┐рдиреНрд╣реЗрдВ рдкрде рдореМрдЬреВрдж рд╣реЛрдиреЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рди рд╣реЛрдиреЗ рдкрд░ рдЗрд╕ Plugin рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк/рд▓реЛрдб рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
onCapabilities рдирд╣реАрдВ Array<"provider" | "channel" | "tool" | "hook"> рдирд┐рдпрдВрддреНрд░рдг-рдкреНрд▓реЗрди рд╕рдХреНрд░рд┐рдпрдг рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╛рдкрдХ рдХреНрд╖рдорддрд╛ рд╕рдВрдХреЗрддред рд╕рдВрднрд╡ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрдХреАрд░реНрдг рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред

рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрд╡ рдЙрдкрднреЛрдХреНрддрд╛:

  • Gateway рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдпреЛрдЬрдирд╛ рд╕реНрдкрд╖реНрдЯ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП activation.onStartup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ
  • рдХрдорд╛рдВрдб-рдЯреНрд░рд┐рдЧрд░ рд╡рд╛рд▓реА CLI рдпреЛрдЬрдирд╛ рдкреБрд░рд╛рдиреЗ commandAliases[].cliCommand рдпрд╛ commandAliases[].name рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреА рд╣реИ
  • рдПрдЬреЗрдВрдЯ-рд░рдирдЯрд╛рдЗрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдпреЛрдЬрдирд╛ рдПрдореНрдмреЗрдбреЗрдб рд╣рд╛рд░реНрдиреЗрд╕ рдХреЗ рд▓рд┐рдП activation.onAgentHarnesses рдФрд░ CLI рд░рдирдЯрд╛рдЗрдо рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп cliBackends[] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ
  • рдЪреИрдирд▓-рдЯреНрд░рд┐рдЧрд░ рд╕реЗрдЯрдЕрдк/рдЪреИрдирд▓ рдпреЛрдЬрдирд╛ рд╕реНрдкрд╖реНрдЯ рдЪреИрдирд▓ рд╕рдХреНрд░рд┐рдпрдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ рди рд╣реЛрдиреЗ рдкрд░ рдкреБрд░рд╛рдиреЗ channels[] рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреА рд╣реИ
  • рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк Plugin рдпреЛрдЬрдирд╛ bundled рдмреНрд░рд╛рдЙрдЬрд╝рд░ Plugin рдХреЗ browser рдмреНрд▓реЙрдХ рдЬреИрд╕реА рдЧреИрд░-рдЪреИрдирд▓ root рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╕рддрд╣реЛрдВ рдХреЗ рд▓рд┐рдП activation.onConfigPaths рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ
  • рдкреНрд░рджрд╛рддрд╛-рдЯреНрд░рд┐рдЧрд░ рд╕реЗрдЯрдЕрдк/рд░рдирдЯрд╛рдЗрдо рдпреЛрдЬрдирд╛ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рджрд╛рддрд╛ рд╕рдХреНрд░рд┐рдпрдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ рди рд╣реЛрдиреЗ рдкрд░ рдкреБрд░рд╛рдиреЗ providers[] рдФрд░ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп cliBackends[] рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреА рд╣реИ

рдкреНрд▓рд╛рдирд░ рдирд┐рджрд╛рди рд╕реНрдкрд╖реНрдЯ рд╕рдХреНрд░рд┐рдпрдг рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдлреЙрд▓рдмреИрдХ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, activation-command-hint рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ activation.onCommands рдорд┐рд▓рд╛, рдЬрдмрдХрд┐ manifest-command-alias рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд▓рд╛рдирд░ рдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп commandAliases рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпреЗ рдХрд╛рд░рдг рд▓реЗрдмрд▓ рд╣реЛрд╕реНрдЯ рдирд┐рджрд╛рди рдФрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрдВ; Plugin рд▓реЗрдЦрдХреЛрдВ рдХреЛ рд╡рд╣ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

qaRunners рд╕рдВрджрд░реНрдн

qaRunners рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХреЛрдИ Plugin рд╕рд╛рдЭрд╛ openclaw qa root рдХреЗ рдиреАрдЪреЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд░рдирд░ рдпреЛрдЧрджрд╛рди рдХрд░рддрд╛ рд╣реЛред рдЗрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рд╕рд╕реНрддрд╛ рдФрд░ рд╕реНрдерд┐рд░ рд░рдЦреЗрдВ; Plugin рд░рдирдЯрд╛рдЗрдо рдЕрднреА рднреА рд╣рд▓реНрдХреЗ runtime-api.ts рд╕рддрд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ CLI рдкрдВрдЬреАрдХрд░рдг рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реИ рдЬреЛ qaRunnerCliRegistrations рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреА рд╣реИред

json
{  "qaRunners": [    {      "commandName": "matrix",      "description": "Run the Docker-backed Matrix live QA lane against a disposable homeserver"    }  ]}
рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
commandName рд╣рд╛рдБ string openclaw qa рдХреЗ рдиреАрдЪреЗ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдХрдорд╛рдВрдб, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП matrixред
description рдирд╣реАрдВ string рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯ рдХреЛ рд╕реНрдЯрдм рдХрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдлрд╝реЙрд▓рдмреИрдХ рд╕рд╣рд╛рдпрддрд╛ рдкрд╛рдаред

setup рд╕рдВрджрд░реНрдн

рдЬрдм рд╕реЗрдЯрдЕрдк рдФрд░ рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рд╕рддрд╣реЛрдВ рдХреЛ рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╕реНрддреЗ Plugin-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддрдм setup рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

json
{  "setup": {    "providers": [      {        "id": "openai",        "authMethods": ["api-key"],        "envVars": ["OPENAI_API_KEY"],        "authEvidence": [          {            "type": "local-file-with-env",            "fileEnvVar": "OPENAI_CREDENTIALS_FILE",            "requiresAllEnv": ["OPENAI_PROJECT"],            "credentialMarker": "openai-local-credentials",            "source": "openai local credentials"          }        ]      }    ],    "cliBackends": ["openai-cli"],    "configMigrations": ["legacy-openai-auth"],    "requiresRuntime": false  }}

рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп cliBackends рд╡реИрдз рд░рд╣рддрд╛ рд╣реИ рдФрд░ CLI рдЕрдиреБрдорд╛рди рдмреИрдХрдПрдВрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред setup.cliBackends рдЙрди рдХрдВрдЯреНрд░реЛрд▓-рдкреНрд▓реЗрди/setup рдлрд╝реНрд▓реЛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╕рддрд╣ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХреЗрд╡рд▓-рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░, setup.providers рдФрд░ setup.cliBackends рд╕реЗрдЯрдЕрдк рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрджреАрджрд╛ рд╡рд░реНрдгрдирдХрд░реНрддрд╛-рдкреНрд░рдердо рд▓реБрдХрдЕрдк рд╕рддрд╣ рд╣реИрдВред рдпрджрд┐ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рдЙрдореНрдореАрджрд╡рд╛рд░ Plugin рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реЗрдЯрдЕрдк рдХреЛ рдЕрднреА рднреА рдЕрдзрд┐рдХ рд╕рдореГрджреНрдз рд╕реЗрдЯрдЕрдк-рд╕рдордп рд░рдирдЯрд╛рдЗрдо рд╣реБрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ requiresRuntime: true рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдлрд╝реЙрд▓рдмреИрдХ рдирд┐рд╖реНрдкрд╛рджрди рдкрде рдХреЗ рд░реВрдк рдореЗрдВ setup-api рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВред

OpenClaw рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рджрд╛рддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг-рдЪрд░ рд▓реБрдХрдЕрдк рдореЗрдВ setup.providers[].envVars рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред providerAuthEnvVars рдЕрд╡рдореВрд▓реНрдпрди рд╡рд┐рдВрдбреЛ рдХреЗ рджреМрд░рд╛рди рд╕рдВрдЧрддрддрд╛ рдЕрдбреИрдкреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЧреИрд░-рдмрдВрдбрд▓ Plugins рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдорд┐рд▓рддрд╛ рд╣реИред рдирдП Plugins рдХреЛ рд╕реЗрдЯрдЕрдк/рд╕реНрдерд┐рддрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдЯрд╛рдбреЗрдЯрд╛ setup.providers[].envVars рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрдм рдХреЛрдИ рд╕реЗрдЯрдЕрдк рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЙрдкрд▓рдмреНрдз рди рд╣реЛ, рдпрд╛ рдЬрдм setup.requiresRuntime: false рд╕реЗрдЯрдЕрдк рд░рдирдЯрд╛рдЗрдо рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реЛ, рддрдм OpenClaw setup.providers[].authMethods рд╕реЗ рд╕рд░рд▓ рд╕реЗрдЯрдЕрдк рд╡рд┐рдХрд▓реНрдк рднреА рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯ providerAuthChoices рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдХрд╕реНрдЯрдо рд▓реЗрдмрд▓, CLI рдлрд╝реНрд▓реИрдЧ, рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рд╕реНрдХреЛрдк, рдФрд░ рд╕рд╣рд╛рдпрдХ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрджреАрджрд╛ рд░рд╣рддреА рд╣реИрдВред

requiresRuntime: false рдХреЗрд╡рд▓ рддрдм рд╕реЗрдЯ рдХрд░реЗрдВ рдЬрдм рд╡реЗ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╕реЗрдЯрдЕрдк рд╕рддрд╣ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВред OpenClaw рд╕реНрдкрд╖реНрдЯ false рдХреЛ рдХреЗрд╡рд▓-рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдЕрдиреБрдмрдВрдз рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рд╕реЗрдЯрдЕрдк рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП setup-api рдпрд╛ openclaw.setupEntry рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдХреЗрд╡рд▓-рд╡рд░реНрдгрдирдХрд░реНрддрд╛ Plugin рдлрд┐рд░ рднреА рдЙрди рд╕реЗрдЯрдЕрдк рд░рдирдЯрд╛рдЗрдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ OpenClaw рдПрдХ рдпреЛрдЧрд╛рддреНрдордХ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ requiresRuntime рд╡рд┐рд░рд╛рд╕рдд рдлрд╝реЙрд▓рдмреИрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрд┐рди рдореМрдЬреВрджрд╛ Plugins рдиреЗ рдлрд╝реНрд▓реИрдЧ рдХреЗ рдмрд┐рдирд╛ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗ рдереЗ, рд╡реЗ рдЯреВрдЯреЗрдВ рдирд╣реАрдВред

рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдЯрдЕрдк рд▓реБрдХрдЕрдк Plugin-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓рд╛ setup-api рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд setup.providers[].id рдФрд░ setup.cliBackends[] рдорд╛рди рдЦреЛрдЬреЗ рдЧрдП Plugins рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд░рд╣рдиреЗ рдЪрд╛рд╣рд┐рдПред рдЕрд╕реНрдкрд╖реНрдЯ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЦреЛрдЬ рдХреНрд░рдо рд╕реЗ рд╡рд┐рдЬреЗрддрд╛ рдЪреБрдирдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрдВрдж рд╣реЛрдХрд░ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИред

рдЬрдм рд╕реЗрдЯрдЕрдк рд░рдирдЯрд╛рдЗрдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд╕реЗрдЯрдЕрдк рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдмрд╣рд╛рд╡ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ setup-api рдХреЛрдИ рдРрд╕рд╛ рдкреНрд░рджрд╛рддрд╛ рдпрд╛ CLI рдмреИрдХрдПрдВрдб рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ, рдпрд╛ рдпрджрд┐ рдХрд┐рд╕реА рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХрд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд░рдирдЯрд╛рдЗрдо рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рд╣реИред рдпреЗ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдпреЛрдЧрд╛рддреНрдордХ рд╣реИрдВ рдФрд░ рд╡рд┐рд░рд╛рд╕рдд Plugins рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗред

setup.providers рд╕рдВрджрд░реНрдн

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
id рд╣рд╛рдБ string рд╕реЗрдЯрдЕрдк рдпрд╛ рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреНрд░рджрд╛рддрд╛ idред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд ids рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рд░рдЦреЗрдВред
authMethods рдирд╣реАрдВ string[] рд╡реЗ рд╕реЗрдЯрдЕрдк/рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ ids рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╣ рдкреНрд░рджрд╛рддрд╛ рдкреВрд░реНрдг рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
envVars рдирд╣реАрдВ string[] рд╡реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрдЕрдк/рд╕реНрдерд┐рддрд┐ рд╕рддрд╣реЗрдВ Plugin рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рд╕рдХрддреА рд╣реИрдВред
authEvidence рдирд╣реАрдВ object[] рдЙрди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддреА рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд╛рдХреНрд╖реНрдп рдЬрд╛рдВрдЪ рдЬреЛ рдЧреИрд░-рдЧреБрдкреНрдд рдорд╛рд░реНрдХрд░ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

authEvidence рдкреНрд░рджрд╛рддрд╛-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рдиреАрдп рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдорд╛рд░реНрдХрд░ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд░рдирдЯрд╛рдЗрдо рдХреЛрдб рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рдЬрд╛рдВрдЪреЗрдВ рд╕рд╕реНрддреА рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░рд╣рдиреА рдЪрд╛рд╣рд┐рдП: рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдирд╣реАрдВ, рдХреЛрдИ рдХреАрдЪреЗрди рдпрд╛ рд╕реАрдХреНрд░реЗрдЯ-рдореИрдиреЗрдЬрд░ рд░реАрдб рдирд╣реАрдВ, рдХреЛрдИ рд╢реЗрд▓ рдХрдорд╛рдВрдб рдирд╣реАрдВ, рдФрд░ рдХреЛрдИ рдкреНрд░рджрд╛рддрд╛ API рдЬрд╛рдВрдЪ рдирд╣реАрдВред

рд╕рдорд░реНрдерд┐рдд рд╕рд╛рдХреНрд╖реНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ:

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
type рд╣рд╛рдБ string рд╡рд░реНрддрдорд╛рди рдореЗрдВ local-file-with-envред
fileEnvVar рдирд╣реАрдВ string рд╕реНрдкрд╖реНрдЯ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдлрд╝рд╛рдЗрд▓ рдкрде рд░рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ред
fallbackPaths рдирд╣реАрдВ string[] рдЬрдм fileEnvVar рдЕрдиреБрдкрд╕реНрдерд┐рдд рдпрд╛ рдЦрд╛рд▓реА рд╣реЛ, рддрдм рдЬрд╛рдВрдЪреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рдиреАрдп рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдлрд╝рд╛рдЗрд▓ рдкрдеред ${HOME} рдФрд░ ${APPDATA} рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
requiresAnyEnv рдирд╣реАрдВ string[] рд╕рд╛рдХреНрд╖реНрдп рд╡реИрдз рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реВрдЪреАрдмрджреНрдз рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЧреИрд░-рдЦрд╛рд▓реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
requiresAllEnv рдирд╣реАрдВ string[] рд╕рд╛рдХреНрд╖реНрдп рд╡реИрдз рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪреАрдмрджреНрдз рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЧреИрд░-рдЦрд╛рд▓реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
credentialMarker рд╣рд╛рдБ string рд╕рд╛рдХреНрд╖реНрдп рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЧреИрд░-рдЧреБрдкреНрдд рдорд╛рд░реНрдХрд░ред
source рдирд╣реАрдВ string рдкреНрд░рдорд╛рдгреАрдХрд░рдг/рд╕реНрдерд┐рддрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рджрд░реНрд╢рд┐рдд рд╕реНрд░реЛрдд рд▓реЗрдмрд▓ред

setup рдлрд╝реАрд▓реНрдб

рдлрд╝реАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
providers рдирд╣реАрдВ object[] рд╕реЗрдЯрдЕрдк рдФрд░ рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЙрдЬрд╛рдЧрд░ рдХрд┐рдП рдЧрдП рдкреНрд░рджрд╛рддрд╛ рд╕реЗрдЯрдЕрдк рд╡рд░реНрдгрдирдХрд░реНрддрд╛ред
cliBackends рдирд╣реАрдВ string[] рд╡рд░реНрдгрдирдХрд░реНрддрд╛-рдкреНрд░рдердо рд╕реЗрдЯрдЕрдк рд▓реБрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реЗрдЯрдЕрдк-рд╕рдордп рдмреИрдХрдПрдВрдб idsред рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд ids рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рд░рдЦреЗрдВред
configMigrations рдирд╣реАрдВ string[] рдЗрд╕ Plugin рдХреА рд╕реЗрдЯрдЕрдк рд╕рддрд╣ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдорд╛рдЗрдЧреНрд░реЗрд╢рди idsред
requiresRuntime рдирд╣реАрдВ boolean рдХреНрдпрд╛ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд▓реБрдХрдЕрдк рдХреЗ рдмрд╛рдж рд╕реЗрдЯрдЕрдк рдХреЛ рдЕрдм рднреА setup-api рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

uiHints рд╕рдВрджрд░реНрдн

uiHints рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝реАрд▓реНрдб рдирд╛рдореЛрдВ рд╕реЗ рдЫреЛрдЯреЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдВрдХреЗрддреЛрдВ рддрдХ рдХрд╛ рдореИрдк рд╣реИред

json
{  "uiHints": {    "apiKey": {      "label": "API key",      "help": "Used for OpenRouter requests",      "placeholder": "sk-or-v1-...",      "sensitive": true    }  }}

рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрд▓реНрдб рд╕рдВрдХреЗрдд рдореЗрдВ рдпреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
label string рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рджрд░реНрд╢рд┐рдд рдлрд╝реАрд▓реНрдб рд▓реЗрдмрд▓ред
help string рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╣рд╛рдпрдХ рдкрд╛рдаред
tags string[] рд╡реИрдХрд▓реНрдкрд┐рдХ UI рдЯреИрдЧред
advanced boolean рдлрд╝реАрд▓реНрдб рдХреЛ рдЙрдиреНрдирдд рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред
sensitive boolean рдлрд╝реАрд▓реНрдб рдХреЛ рдЧреБрдкреНрдд рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред
placeholder string рдлрд╝реЙрд░реНрдо рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдкрд╛рдаред

contracts рд╕рдВрджрд░реНрдн

contracts рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░ рдХреНрд╖рдорддрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдЬрд┐рд╕реЗ OpenClaw Plugin рд░рдирдЯрд╛рдЗрдо рдЖрдпрд╛рдд рдХрд┐рдП рдмрд┐рдирд╛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

json
{  "contracts": {    "agentToolResultMiddleware": ["openclaw", "codex"],    "trustedToolPolicies": ["workflow-budget"],    "externalAuthProviders": ["acme-ai"],    "embeddingProviders": ["openai-compatible"],    "speechProviders": ["openai"],    "realtimeTranscriptionProviders": ["openai"],    "realtimeVoiceProviders": ["openai"],    "memoryEmbeddingProviders": ["local"],    "mediaUnderstandingProviders": ["openai"],    "imageGenerationProviders": ["openai"],    "videoGenerationProviders": ["qwen"],    "webFetchProviders": ["firecrawl"],    "webSearchProviders": ["gemini"],    "migrationProviders": ["hermes"],    "gatewayMethodDispatch": ["authenticated-request"],    "tools": ["firecrawl_search", "firecrawl_scrape"]  }}

рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪреА рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
embeddedExtensionFactories string[] Codex app-server extension factory ids, рд╡рд░реНрддрдорд╛рди рдореЗрдВ codex-app-serverред
agentToolResultMiddleware string[] Runtime ids рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ Plugin tool-result middleware рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
trustedToolPolicies string[] Plugin-рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп pre-tool policy ids рдЬрд┐рдиреНрд╣реЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ Plugin рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugins рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд┐рдирд╛ policies рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
externalAuthProviders string[] Provider ids рдЬрд┐рдирдХреЗ external auth profile hook рдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
embeddingProviders string[] рд╕рд╛рдорд╛рдиреНрдп embedding provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп vector embedding рдЙрдкрдпреЛрдЧ, memory рд╕рд╣рд┐рдд, рдХреЗ рд▓рд┐рдП рд╣реИред
speechProviders string[] Speech provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
realtimeTranscriptionProviders string[] Realtime-transcription provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
realtimeVoiceProviders string[] Realtime-voice provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
memoryEmbeddingProviders string[] Deprecated memory-рд╡рд┐рд╢рд┐рд╖реНрдЯ embedding provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
mediaUnderstandingProviders string[] Media-understanding provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
transcriptSourceProviders string[] Transcript source provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
imageGenerationProviders string[] Image-generation provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
videoGenerationProviders string[] Video-generation provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
webFetchProviders string[] Web-fetch provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
webSearchProviders string[] Web-search provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
migrationProviders string[] openclaw migrate рдХреЗ рд▓рд┐рдП import provider ids рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред
gatewayMethodDispatch string[] рдкреНрд░рдорд╛рдгрд┐рдд Plugin HTTP routes рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд entitlement, рдЬреЛ Gateway methods рдХреЛ process рдХреЗ рднреАрддрд░ dispatch рдХрд░рддреЗ рд╣реИрдВред
tools string[] Agent tool names рдЬрд┐рдирдХрд╛ рд╕реНрд╡рд╛рдореА рдпрд╣ Plugin рд╣реИред

contracts.embeddedExtensionFactories рдХреЛ рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Codex рдХреЗрд╡рд▓ app-server extension factories рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП tool-result transforms рдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп contracts.agentToolResultMiddleware рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ api.registerAgentToolResultMiddleware(...) рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП Plugins рдЙрд╕реА middleware seam рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЙрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рдХреЗрд╡рд▓ рдЙрди runtimes рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ contracts.agentToolResultMiddleware рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЬрд┐рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП Plugins рдХреЛ host-trusted pre-tool policy tier рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ contracts.trustedToolPolicies рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдЬреАрдХреГрдд local id рдШреЛрд╖рд┐рдд рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugins рдореМрдЬреВрджрд╛ trusted-policy path рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП Plugins рдЬрд┐рдирдХреЗ policy ids рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдкрдВрдЬреАрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред Policy ids рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ Plugin рдХреЗ scope рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рджреЛ Plugins рджреЛрдиреЛрдВ workflow-budget рдШреЛрд╖рд┐рдд рдФрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдПрдХ рд╣реА Plugin рдЙрд╕реА local id рдХреЛ рджреЛ рдмрд╛рд░ рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

Runtime api.registerTool(...) registrations рдХреЛ contracts.tools рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Tool discovery рдЗрд╕ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди Plugin runtimes рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдзрд┐рдд tools рдХреЗ рд╕реНрд╡рд╛рдореА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

Provider Plugins рдЬреЛ resolveExternalAuthProfiles рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ contracts.externalAuthProviders рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; рдЕрдШреЛрд╖рд┐рдд external-auth hooks рдЕрдирджреЗрдЦреЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рд╕рд╛рдорд╛рдиреНрдп embedding providers рдХреЛ api.registerEmbeddingProvider(...) рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХреГрдд рдкреНрд░рддреНрдпреЗрдХ adapter рдХреЗ рд▓рд┐рдП contracts.embeddingProviders рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп vector generation рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп contract рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ memory search рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП providers рд╢рд╛рдорд┐рд▓ рд╣реИрдВред contracts.memoryEmbeddingProviders deprecated memory-рд╡рд┐рд╢рд┐рд╖реНрдЯ compatibility рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рддрдм рддрдХ рдмрдиреА рд░рд╣рддреА рд╣реИ рдЬрдм рддрдХ рдореМрдЬреВрджрд╛ providers generic embedding provider seam рдкрд░ migrate рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗред

contracts.gatewayMethodDispatch рд╡рд░реНрддрдорд╛рди рдореЗрдВ "authenticated-request" рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ native Plugin HTTP routes рдХреЗ рд▓рд┐рдП рдПрдХ API hygiene gate рд╣реИ, рдЬреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ Gateway control-plane methods рдХреЛ process рдХреЗ рднреАрддрд░ dispatch рдХрд░рддреЗ рд╣реИрдВ; рдпрд╣ malicious native Plugins рдХреЗ рд╡рд┐рд░реБрджреНрдз sandbox рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХрдбрд╝рд╛рдИ рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд┐рдП рдЧрдП рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП/operator surfaces рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ Gateway HTTP auth рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

mediaUnderstandingProviderMetadata рд╕рдВрджрд░реНрдн

mediaUnderstandingProviderMetadata рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХрд┐рд╕реА media-understanding provider рдХреЗ рдкрд╛рд╕ default models, auto-auth fallback priority, рдпрд╛ native document support рд╣реЛ рдЬрд┐рд╕рдХреА generic core helpers рдХреЛ runtime loads рд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред Keys рдХреЛ contracts.mediaUnderstandingProviders рдореЗрдВ рднреА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

json
{  "contracts": {    "mediaUnderstandingProviders": ["example"]  },  "mediaUnderstandingProviderMetadata": {    "example": {      "capabilities": ["image", "audio"],      "defaultModels": {        "image": "example-vision-latest",        "audio": "example-transcribe-latest"      },      "autoPriority": {        "image": 40      },      "nativeDocumentInputs": ["pdf"]    }  }}

рдкреНрд░рддреНрдпреЗрдХ provider entry рдореЗрдВ рдпреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
capabilities ("image" | "audio" | "video")[] рдЗрд╕ provider рджреНрд╡рд╛рд░рд╛ рдЙрдЬрд╛рдЧрд░ рдХреА рдЧрдИ media capabilitiesред
defaultModels Record<string, string> рдЬрдм config рдХреЛрдИ model рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛, рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ capability-to-model defaultsред
autoPriority Record<string, number> automatic credential-based provider fallback рдХреЗ рд▓рд┐рдП рдХрдо рд╕рдВрдЦреНрдпрд╛рдПрдВ рдкрд╣рд▓реЗ sort рд╣реЛрддреА рд╣реИрдВред
nativeDocumentInputs "pdf"[] provider рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд native document inputsред

channelConfigs рд╕рдВрджрд░реНрдн

channelConfigs рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдХрд┐рд╕реА channel Plugin рдХреЛ runtime loads рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╕реНрддреА config metadata рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред Read-only channel setup/status discovery рдЗрд╕ metadata рдХрд╛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ configured external channels рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрдм рдХреЛрдИ setup entry рдЙрдкрд▓рдмреНрдз рди рд╣реЛ, рдпрд╛ рдЬрдм setup.requiresRuntime: false setup runtime рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

channelConfigs Plugin manifest metadata рд╣реИ, рдХреЛрдИ рдирдпрд╛ top-level user config section рдирд╣реАрдВред Users рдЕрднреА рднреА channel instances рдХреЛ channels.<channel-id> рдХреЗ рдЕрдВрддрд░реНрдЧрдд configure рдХрд░рддреЗ рд╣реИрдВред OpenClaw manifest metadata рдкрдврд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рддрдп рдХрд░ рд╕рдХреЗ рдХрд┐ Plugin runtime code execute рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕ configured channel рдХрд╛ рд╕реНрд╡рд╛рдореА рдХреМрди рд╕рд╛ Plugin рд╣реИред

рдХрд┐рд╕реА channel Plugin рдХреЗ рд▓рд┐рдП, configSchema рдФрд░ channelConfigs рдЕрд▓рдЧ paths рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:

  • configSchema plugins.entries.<plugin-id>.config рдХреЛ validate рдХрд░рддрд╛ рд╣реИ
  • channelConfigs.<channel-id>.schema channels.<channel-id> рдХреЛ validate рдХрд░рддрд╛ рд╣реИ

Non-bundled Plugins рдЬреЛ channels[] рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ matching channelConfigs entries рднреА рдШреЛрд╖рд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрдирдХреЗ рдмрд┐рдирд╛, OpenClaw рдЕрднреА рднреА Plugin load рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди cold-path config schema, setup, рдФрд░ Control UI surfaces Plugin runtime execute рд╣реЛрдиреЗ рддрдХ channel-owned option shape рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗред

channelConfigs.<channel-id>.commands.nativeCommandsAutoEnabled рдФрд░ nativeSkillsAutoEnabled command config checks рдХреЗ рд▓рд┐рдП static auto defaults рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ channel runtime loads рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддреЗ рд╣реИрдВред рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП channels рднреА рдЕрдкрдиреЗ рдЕрдиреНрдп package-owned channel catalog metadata рдХреЗ рд╕рд╛рде package.json#openclaw.channel.commands рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╣реА defaults publish рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

json
{  "channelConfigs": {    "matrix": {      "schema": {        "type": "object",        "additionalProperties": false,        "properties": {          "homeserverUrl": { "type": "string" }        }      },      "uiHints": {        "homeserverUrl": {          "label": "Homeserver URL",          "placeholder": "https://matrix.example.com"        }      },      "label": "Matrix",      "description": "Matrix homeserver connection",      "commands": {        "nativeCommandsAutoEnabled": true,        "nativeSkillsAutoEnabled": true      },      "preferOver": ["matrix-legacy"]    }  }}

рдкреНрд░рддреНрдпреЗрдХ channel entry рдореЗрдВ рдпреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
schema object channels.<id> рдХреЗ рд▓рд┐рдП JSON Schemaред рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рд┐рдд channel config entry рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХред
uiHints Record<string, object> рдЙрд╕ channel config section рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ UI labels/placeholders/sensitive hintsред
label string рдЬрдм runtime metadata рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛, рддрдм picker рдФрд░ inspect surfaces рдореЗрдВ merge рдХрд┐рдпрд╛ рдЧрдпрд╛ channel labelред
description string inspect рдФрд░ catalog surfaces рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд╖рд┐рдкреНрдд channel descriptionред
commands object pre-runtime config checks рдХреЗ рд▓рд┐рдП static native command рдФрд░ native skill auto-defaultsред
preferOver string[] Legacy рдпрд╛ lower-priority Plugin ids рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ channel рдХреЛ selection surfaces рдореЗрдВ рдкреАрдЫреЗ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд┐рд╕реА рдЕрдиреНрдп channel Plugin рдХреЛ рдмрджрд▓рдирд╛

preferOver рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХрд╛ Plugin рдХрд┐рд╕реА channel id рдХреЗ рд▓рд┐рдП preferred owner рд╣реЛ рдЬрд┐рд╕реЗ рдХреЛрдИ рджреВрд╕рд░рд╛ Plugin рднреА provide рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп cases рд╣реИрдВ renamed Plugin id, standalone Plugin рдЬреЛ рдХрд┐рд╕реА bundled Plugin рдХреЛ supersede рдХрд░рддрд╛ рд╣реИ, рдпрд╛ maintained fork рдЬреЛ config compatibility рдХреЗ рд▓рд┐рдП рд╡рд╣реА channel id рд░рдЦрддрд╛ рд╣реИред

json
{  "id": "acme-chat",  "channels": ["chat"],  "channelConfigs": {    "chat": {      "schema": {        "type": "object",        "additionalProperties": false,        "properties": {          "webhookUrl": { "type": "string" }        }      },      "preferOver": ["chat"]    }  }}

рдЬрдм channels.chat configured рд╣реЛрддрд╛ рд╣реИ, OpenClaw channel id рдФрд░ preferred Plugin id рджреЛрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ lower-priority Plugin рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП selected рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ bundled рд╣реИ рдпрд╛ default рд░реВрдк рд╕реЗ enabled рд╣реИ, рддреЛ OpenClaw рдЙрд╕реЗ effective runtime config рдореЗрдВ disabled рдХрд░ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдХ Plugin channel рдФрд░ рдЙрд╕рдХреЗ tools рдХрд╛ рд╕реНрд╡рд╛рдореА рд╣реЛред Explicit user selection рдЕрднреА рднреА рдЬреАрддрддрд╛ рд╣реИ: рдпрджрд┐ user рджреЛрдиреЛрдВ Plugins рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ enable рдХрд░рддрд╛ рд╣реИ, рддреЛ OpenClaw рдЙрд╕ choice рдХреЛ preserve рдХрд░рддрд╛ рд╣реИ рдФрд░ requested Plugin set рдХреЛ silently рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп duplicate channel/tool diagnostics report рдХрд░рддрд╛ рд╣реИред

preferOver рдХреЛ рдЙрди Plugin ids рддрдХ scoped рд░рдЦреЗрдВ рдЬреЛ рд╕рдЪ рдореЗрдВ рд╡рд╣реА channel provide рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреЛрдИ general priority field рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ user config keys рдХреЛ rename рдирд╣реАрдВ рдХрд░рддрд╛ред

modelSupport рд╕рдВрджрд░реНрдн

рдЬрдм OpenClaw рдХреЛ plugin runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ gpt-5.5 рдпрд╛ claude-sonnet-4.6 рдЬреИрд╕реЗ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдореЙрдбрд▓ id рд╕реЗ рдЖрдкрдХреЗ provider plugin рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╣реЛ, рддрдм modelSupport рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

json
{  "modelSupport": {    "modelPrefixes": ["gpt-", "o1", "o3", "o4"],    "modelPatterns": ["^computer-use-preview"]  }}

OpenClaw рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:

  • рд╕реНрдкрд╖реНрдЯ provider/model refs рдорд╛рд▓рд┐рдХрд╛рдирд╛ providers manifest metadata рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
  • modelPatterns, modelPrefixes рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ
  • рдЕрдЧрд░ рдПрдХ non-bundled plugin рдФрд░ рдПрдХ bundled plugin, рджреЛрдиреЛрдВ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ non-bundled plugin рдЬреАрддрддрд╛ рд╣реИ
  • рдмрд╛рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рддрдм рддрдХ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ user рдпрд╛ config рдХреЛрдИ provider рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛

рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
modelPrefixes string[] рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдореЙрдбрд▓ ids рдХреЗ рд╡рд┐рд░реБрджреНрдз startsWith рд╕реЗ рдорд┐рд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ prefix.
modelPatterns string[] profile suffix removal рдХреЗ рдмрд╛рдж рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдореЙрдбрд▓ ids рдХреЗ рд╡рд┐рд░реБрджреНрдз рдорд┐рд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ regex sources.

modelPatterns entries рдХреЛ compileSafeRegex рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ compile рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ nested repetition рд╡рд╛рд▓реЗ patterns рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (a+)+$)ред safety check рдореЗрдВ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ patterns рдХреЛ рдЪреБрдкрдЪрд╛рдк рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдареАрдХ рд╡реИрд╕реЗ рд╣реА рдЬреИрд╕реЗ syntactically invalid regexред patterns рдХреЛ рд╕рд░рд▓ рд░рдЦреЗрдВ рдФрд░ nested quantifiers рд╕реЗ рдмрдЪреЗрдВред

modelCatalog reference

рдЬрдм OpenClaw рдХреЛ plugin runtime рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ provider model metadata рдЬрд╛рдирдирд╛ рд╣реЛ, рддрдм modelCatalog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ fixed catalog rows, provider aliases, suppression rules, рдФрд░ discovery mode рдХреЗ рд▓рд┐рдП manifest-owned source рд╣реИред Runtime refresh рдЕрднреА рднреА provider runtime code рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди manifest core рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ runtime рдХрдм рдЖрд╡рд╢реНрдпрдХ рд╣реИред

json
{  "providers": ["openai"],  "modelCatalog": {    "providers": {      "openai": {        "baseUrl": "https://api.openai.com/v1",        "api": "openai-responses",        "models": [          {            "id": "gpt-5.4",            "name": "GPT-5.4",            "input": ["text", "image"],            "reasoning": true,            "contextWindow": 256000,            "maxTokens": 128000,            "cost": {              "input": 1.25,              "output": 10,              "cacheRead": 0.125            },            "status": "available",            "tags": ["default"]          }        ]      }    },    "aliases": {      "azure-openai-responses": {        "provider": "openai",        "api": "azure-openai-responses"      }    },    "suppressions": [      {        "provider": "azure-openai-responses",        "model": "gpt-5.3-codex-spark",        "reason": "not available on Azure OpenAI Responses"      }    ],    "discovery": {      "openai": "static"    }  }}

рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
providers Record<string, object> рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ provider ids рдХреЗ рд▓рд┐рдП catalog rows. keys рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп providers рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред
aliases Record<string, object> Provider aliases рдЬрд┐рдиреНрд╣реЗрдВ catalog рдпрд╛ suppression planning рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА owned provider рдореЗрдВ resolve рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
suppressions object[] рдХрд┐рд╕реА рджреВрд╕рд░реЗ source рд╕реЗ model rows рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╣ plugin provider-specific рдХрд╛рд░рдг рд╕реЗ suppress рдХрд░рддрд╛ рд╣реИред
discovery Record<string, "static" | "refreshable" | "runtime"> рдХреНрдпрд╛ provider catalog рдХреЛ manifest metadata рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, cache рдореЗрдВ refresh рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ runtime рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
runtimeAugment boolean рдХреЗрд╡рд▓ рддрдм true рдкрд░ set рдХрд░реЗрдВ рдЬрдм provider runtime рдХреЛ manifest/config planning рдХреЗ рдмрд╛рдж catalog rows append рдХрд░рдиреА рд╣реЛрдВред

aliases model-catalog planning рдХреЗ рд▓рд┐рдП provider ownership lookup рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реИред Alias targets рдЙрд╕реА plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп providers рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЬрдм рдХреЛрдИ provider-filtered list alias рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рддреЛ OpenClaw owning manifest рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ provider runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ alias API/base URL overrides рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред Aliases unfiltered catalog listings рдХреЛ expand рдирд╣реАрдВ рдХрд░рддреЗ; broad lists рдХреЗрд╡рд▓ owning canonical provider rows emit рдХрд░рддреЗ рд╣реИрдВред

suppressions рдкреБрд░рд╛рдиреЗ provider runtime suppressBuiltInModel hook рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред Suppression entries рдХреЛ рдХреЗрд╡рд▓ рддрдм рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм provider plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рд╣реЛ рдпрд╛ modelCatalog.aliases key рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рд╣реЛ рдЬреЛ рдХрд┐рд╕реА owned provider рдХреЛ target рдХрд░рддреА рд╣реИред Runtime suppression hooks рдХреЛ рдЕрдм model resolution рдХреЗ рджреМрд░рд╛рди call рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред

Provider рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
baseUrl string рдЗрд╕ provider catalog рдореЗрдВ models рдХреЗ рд▓рд┐рдП optional default base URL.
api ModelApi рдЗрд╕ provider catalog рдореЗрдВ models рдХреЗ рд▓рд┐рдП optional default API adapter.
headers Record<string, string> optional static headers рдЬреЛ рдЗрд╕ provider catalog рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
models object[] рдЖрд╡рд╢реНрдпрдХ model rows. id рдХреЗ рдмрд┐рдирд╛ rows рдХреЛ ignored рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Model рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
id string Provider-local model id, provider/ prefix рдХреЗ рдмрд┐рдирд╛ред
name string optional display name.
api ModelApi optional per-model API override.
baseUrl string optional per-model base URL override.
headers Record<string, string> optional per-model static headers.
input Array<"text" | "image" | "document" | "audio" | "video"> model рдЬрд┐рди modalities рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
reasoning boolean рдХреНрдпрд╛ model reasoning behavior expose рдХрд░рддрд╛ рд╣реИред
contextWindow number native provider context window.
contextTokens number optional effective runtime context cap, рдЬрдм рдпрд╣ contextWindow рд╕реЗ рдЕрд▓рдЧ рд╣реЛред
maxTokens number рдЬреНрдЮрд╛рдд рд╣реЛрдиреЗ рдкрд░ maximum output tokens.
cost object optional USD per million token pricing, рдЬрд┐рд╕рдореЗрдВ optional tieredPricing рд╢рд╛рдорд┐рд▓ рд╣реИред
compat object OpenClaw model config compatibility рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ optional compatibility flags.
status "available" | "preview" | "deprecated" | "disabled" listing status. рдХреЗрд╡рд▓ рддрднреА suppress рдХрд░реЗрдВ рдЬрдм row рдмрд┐рд▓реНрдХреБрд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред
statusReason string non-available status рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ optional reason.
replaces string[] рдкреБрд░рд╛рдиреЗ provider-local model ids рдЬрд┐рдиреНрд╣реЗрдВ рдпрд╣ model supersede рдХрд░рддрд╛ рд╣реИред
replacedBy string deprecated rows рдХреЗ рд▓рд┐рдП replacement provider-local model id.
tags string[] pickers рдФрд░ filters рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ stable tags.

Suppression рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
provider string suppress рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП upstream row рдХрд╛ provider id. рдпрд╣ рдЗрд╕ plugin рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ owned alias рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
model string suppress рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП provider-local model id.
reason string suppressed row рдХреЛ рд╕реАрдзреЗ request рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ optional message.
when.baseUrlHosts string[] suppression рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ effective provider base URL hosts рдХреА optional list.
when.providerConfigApiIn string[] suppression рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ exact provider-config api values рдХреА optional list.

modelCatalog рдореЗрдВ runtime-only data рди рдбрд╛рд▓реЗрдВред static рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддрдм рдХрд░реЗрдВ рдЬрдм manifest rows provider-filtered list рдФрд░ picker surfaces рдХреЗ рд▓рд┐рдП registry/runtime discovery рдЫреЛрдбрд╝рдиреЗ рд╣реЗрддреБ рдХрд╛рдлрд╝реА рдкреВрд░реНрдг рд╣реЛрдВред refreshable рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм manifest rows рдЙрдкрдпреЛрдЧреА listable seeds рдпрд╛ supplements рд╣реЛрдВ, рд▓реЗрдХрд┐рди refresh/cache рдмрд╛рдж рдореЗрдВ рдФрд░ rows рдЬреЛрдбрд╝ рд╕рдХреЗ; refreshable rows рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ authoritative рдирд╣реАрдВ рд╣реЛрддреЗред runtime рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм OpenClaw рдХреЛ list рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП provider runtime рд▓реЛрдб рдХрд░рдирд╛ рд╣реА рд╣реЛред

modelIdNormalization reference

modelIdNormalization рдХрд╛ рдЙрдкрдпреЛрдЧ cheap provider-owned model-id cleanup рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдЬрд┐рд╕реЗ provider runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ short model names, provider-local legacy ids, рдФрд░ proxy prefix rules рдЬреИрд╕реЗ aliases рдХреЛ core model-selection tables рдХреЗ рдмрдЬрд╛рдп owning plugin manifest рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред

json
{  "providers": ["anthropic", "openrouter"],  "modelIdNormalization": {    "providers": {      "anthropic": {        "aliases": {          "sonnet-4.6": "claude-sonnet-4-6"        }      },      "openrouter": {        "prefixWhenBare": "openrouter"      }    }  }}

Provider рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
aliases Record<string,string> case-insensitive exact model-id aliases. values рдЬреИрд╕реЗ рд▓рд┐рдЦреЗ рд╣реИрдВ рд╡реИрд╕реЗ рд╣реА рд▓реМрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
stripPrefixes string[] alias lookup рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ prefixes, legacy provider/model duplication рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред
prefixWhenBare string рдЬрдм normalized model id рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ / рди рд╣реЛ, рддрдм рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ prefix.
prefixWhenBareAfterAliasStartsWith object[] alias lookup рдХреЗ рдмрд╛рдж conditional bare-id prefix rules, modelPrefix рдФрд░ prefix рджреНрд╡рд╛рд░рд╛ keyed.

providerEndpoints reference

generic request policy рдХреЛ provider runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд┐рд╕ endpoint classification рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛ, рдЙрд╕рдХреЗ рд▓рд┐рдП providerEndpoints рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Core рдЕрднреА рднреА рдкреНрд░рддреНрдпреЗрдХ endpointClass рдХрд╛ рдЕрд░реНрде own рдХрд░рддрд╛ рд╣реИ; plugin manifests host рдФрд░ base URL metadata own рдХрд░рддреЗ рд╣реИрдВред

рдПрдВрдбрдкреЙрдЗрдВрдЯ рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
endpointClass string рдЬреНрдЮрд╛рдд рдХреЛрд░ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд░реНрдЧ, рдЬреИрд╕реЗ openrouter, moonshot-native, рдпрд╛ google-vertexред
hosts string[] рд╡реЗ рд╕рдЯреАрдХ рд╣реЛрд╕реНрдЯрдирд╛рдо рдЬреЛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд░реНрдЧ рд╕реЗ рдореИрдк рд╣реЛрддреЗ рд╣реИрдВред
hostSuffixes string[] рд╡реЗ рд╣реЛрд╕реНрдЯ рдкреНрд░рддреНрдпрдп рдЬреЛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд░реНрдЧ рд╕реЗ рдореИрдк рд╣реЛрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдбреЛрдореЗрди-рдкреНрд░рддреНрдпрдп рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП . рдЙрдкрд╕рд░реНрдЧ рд▓рдЧрд╛рдПрдБред
baseUrls string[] рд╡реЗ рд╕рдЯреАрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд HTTP(S) рдЖрдзрд╛рд░ URL рдЬреЛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╡рд░реНрдЧ рд╕реЗ рдореИрдк рд╣реЛрддреЗ рд╣реИрдВред
googleVertexRegion string рд╕рдЯреАрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ Google Vertex рдХреНрд╖реЗрддреНрд░ред
googleVertexRegionHostSuffix string рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддреНрдпрдп, рддрд╛рдХрд┐ Google Vertex рдХреНрд╖реЗрддреНрд░ рдЙрдкрд╕рд░реНрдЧ рдЙрдЬрд╛рдЧрд░ рд╣реЛ рд╕рдХреЗред

providerRequest рд╕рдВрджрд░реНрдн

рд╕рд╕реНрддреЗ рдЕрдиреБрд░реЛрдз-рд╕рдВрдЧрддрддрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП providerRequest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд░реЛрдз рдиреАрддрд┐ рдХреЛ provider runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ payload rewriting рдХреЛ provider runtime hooks рдпрд╛ рд╕рд╛рдЭрд╛ provider-family helpers рдореЗрдВ рд░рдЦреЗрдВред

json
{  "providers": ["vllm"],  "providerRequest": {    "providers": {      "vllm": {        "family": "vllm",        "openAICompletions": {          "supportsStreamingUsage": true        }      }    }  }}

Provider рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
family string рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрд░реЛрдз-рд╕рдВрдЧрддрддрд╛ рдирд┐рд░реНрдгрдпреЛрдВ рдФрд░ рдирд┐рджрд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ provider family рд▓реЗрдмрд▓ред
compatibilityFamily "moonshot" рд╕рд╛рдЭрд╛ рдЕрдиреБрд░реЛрдз helpers рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ provider-family рд╕рдВрдЧрддрддрд╛ bucketред
openAICompletions object OpenAI-рд╕рдВрдЧрдд completions рдЕрдиреБрд░реЛрдз flags, рд╡рд░реНрддрдорд╛рди рдореЗрдВ supportsStreamingUsageред

secretProviderIntegrations рд╕рдВрджрд░реНрдн

рдЬрдм рдХреЛрдИ plugin рдкреБрди: рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп SecretRef exec provider preset рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддрдм secretProviderIntegrations рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред OpenClaw plugin runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ, secrets.providers.<alias>.pluginIntegration рдореЗрдВ plugin ownership рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ secret resolution рдХреЛ SecretRef runtime рдкрд░ рдЫреЛрдбрд╝рддрд╛ рд╣реИред Presets рдХреЗрд╡рд▓ bundled plugins рдФрд░ managed plugin install roots рд╕реЗ рдЦреЛрдЬреЗ рдЧрдП installed plugins рдХреЗ рд▓рд┐рдП рдЙрдЬрд╛рдЧрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ git рдФрд░ ClawHub installsред

json
{  "secretProviderIntegrations": {    "secret-store": {      "providerAlias": "team-secrets",      "displayName": "Team secrets",      "source": "exec",      "command": "${node}",      "args": ["./bin/resolve-secrets.mjs"]    }  }}

map key integration id рд╣реИред рдпрджрд┐ providerAlias рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ OpenClaw integration id рдХреЛ SecretRef provider alias рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Provider aliases рдХреЛ рд╕рд╛рдорд╛рдиреНрдп SecretRef provider alias pattern рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП team-secrets рдпрд╛ onepassword-workред

рдЬрдм рдХреЛрдИ operator preset рдЪреБрдирддрд╛ рд╣реИ, рддреЛ OpenClaw рдЗрд╕ рддрд░рд╣ provider reference рд▓рд┐рдЦрддрд╛ рд╣реИ:

json
{  "secrets": {    "providers": {      "team-secrets": {        "source": "exec",        "pluginIntegration": {          "pluginId": "acme-secrets",          "integrationId": "secret-store"        }      }    }  }}

startup/reload рдкрд░, OpenClaw рд╡рд░реНрддрдорд╛рди plugin manifest metadata рд▓реЛрдб рдХрд░рдХреЗ, owning plugin installed рдФрд░ active рд╣реИ рдпрд╣ рдЬрд╛рдБрдЪрдХрд░, рдФрд░ manifest рд╕реЗ exec command materialize рдХрд░рдХреЗ рдЙрд╕ provider рдХреЛ resolve рдХрд░рддрд╛ рд╣реИред plugin рдХреЛ disable рдпрд╛ remove рдХрд░рдиреЗ рд╕реЗ active SecretRefs рдХреЗ рд▓рд┐рдП provider revoked рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЛ operators standalone exec configuration рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрднреА рднреА manual command/args providers рд╕реАрдзреЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ source: "exec" presets рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред command рдХреЛ ${node} рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ args[0] рдХреЛ ./ plugin-root-relative resolver script рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред OpenClaw рдЗрд╕реЗ startup/reload рдкрд░ рд╡рд░реНрддрдорд╛рди Node executable рдФрд░ absolute in-plugin script path рдореЗрдВ materialize рдХрд░рддрд╛ рд╣реИред Node options рдЬреИрд╕реЗ --require, --import, --loader, --env-file, --eval, рдФрд░ --print manifest preset contract рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИрдВред рдЬрд┐рди operators рдХреЛ non-Node commands рдЪрд╛рд╣рд┐рдП, рд╡реЗ standalone manual exec providers рд╕реАрдзреЗ configure рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

OpenClaw manifest presets рдХреЗ рд▓рд┐рдП trustedDirs рдХреЛ plugin root рд╕реЗ рдФрд░, ${node} presets рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди Node executable directory рд╕реЗ derive рдХрд░рддрд╛ рд╣реИред Manifest-authored trustedDirs рдЕрдирджреЗрдЦреЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдиреНрдп exec provider options рдЬреИрд╕реЗ timeoutMs, maxOutputBytes, jsonOnly, env, passEnv, рдФрд░ allowInsecurePath рд╕рд╛рдорд╛рдиреНрдп SecretRef exec provider config рддрдХ pass through рд╣реЛрддреЗ рд╣реИрдВред

modelPricing рд╕рдВрджрд░реНрдн

рдЬрдм рдХрд┐рд╕реА provider рдХреЛ runtime load рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ control-plane pricing behavior рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддрдм modelPricing рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Gateway pricing cache provider runtime code import рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╣ metadata рдкрдврд╝рддрд╛ рд╣реИред

json
{  "providers": ["ollama", "openrouter"],  "modelPricing": {    "providers": {      "ollama": {        "external": false      },      "openrouter": {        "openRouter": {          "passthroughProviderModel": true        },        "liteLLM": false      }    }  }}

Provider рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
external boolean local/self-hosted providers рдХреЗ рд▓рд┐рдП false рд╕реЗрдЯ рдХрд░реЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдХрднреА OpenRouter рдпрд╛ LiteLLM pricing fetch рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
openRouter false | object OpenRouter pricing lookup mappingред false рдЗрд╕ provider рдХреЗ рд▓рд┐рдП OpenRouter lookup disable рдХрд░рддрд╛ рд╣реИред
liteLLM false | object LiteLLM pricing lookup mappingред false рдЗрд╕ provider рдХреЗ рд▓рд┐рдП LiteLLM lookup disable рдХрд░рддрд╛ рд╣реИред

Source рдлрд╝реАрд▓реНрдб:

рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдЕрд░реНрде
provider string External catalog provider id, рдЬрдм рдпрд╣ OpenClaw provider id рд╕реЗ рдЕрд▓рдЧ рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП zai provider рдХреЗ рд▓рд┐рдП z-aiред
passthroughProviderModel boolean slash-containing model ids рдХреЛ nested provider/model refs рдХреА рддрд░рд╣ рдорд╛рдиреЗрдВ, рдЬреЛ OpenRouter рдЬреИрд╕реЗ proxy providers рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред
modelIdTransforms "version-dots"[] рдЕрддрд┐рд░рд┐рдХреНрдд external catalog model-id variantsред version-dots claude-opus-4.6 рдЬреИрд╕реЗ dotted version ids рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реИред

OpenClaw Provider Index

OpenClaw Provider Index рдЙрди providers рдХреЗ рд▓рд┐рдП OpenClaw-owned preview metadata рд╣реИ рдЬрд┐рдирдХреЗ plugins рдЕрднреА installed рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдпрд╣ plugin manifest рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред Plugin manifests installed-plugin authority рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред Provider Index рд╡рд╣ internal fallback contract рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд╡рд┐рд╖реНрдп рдХреЗ installable-provider рдФрд░ pre-install model picker surfaces рддрдм рдХрд░реЗрдВрдЧреЗ рдЬрдм рдХреЛрдИ provider plugin installed рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

Catalog authority order:

  1. User configред
  2. Installed plugin manifest modelCatalogред
  3. Explicit refresh рд╕реЗ model catalog cacheред
  4. OpenClaw Provider Index preview rowsред

Provider Index рдореЗрдВ secrets, enabled state, runtime hooks, рдпрд╛ live account-specific model data рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ preview catalogs рд╡рд╣реА modelCatalog provider row shape рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ plugin manifests рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдиреНрд╣реЗрдВ stable display metadata рддрдХ рд╕реАрдорд┐рдд рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ runtime adapter fields рдЬреИрд╕реЗ api, baseUrl, pricing, рдпрд╛ compatibility flags рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ installed plugin manifest рдХреЗ рд╕рд╛рде aligned рди рд░рдЦрд╛ рдЧрдпрд╛ рд╣реЛред Live /models discovery рд╡рд╛рд▓реЗ providers рдХреЛ рд╕рд╛рдорд╛рдиреНрдп listing рдпрд╛ onboarding рдХреЗ рджреМрд░рд╛рди provider APIs call рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп explicit model catalog cache path рдХреЗ рдЬрд░рд┐рдП refreshed rows рд▓рд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдПред

Provider Index entries рдЙрди providers рдХреЗ рд▓рд┐рдП installable-plugin metadata рднреА рд░рдЦ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдирдХрд╛ plugin core рд╕реЗ рдмрд╛рд╣рд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЕрдиреНрдпрдерд╛ рдЕрднреА installed рдирд╣реАрдВ рд╣реИред рдпрд╣ metadata channel catalog pattern рдХреЛ mirror рдХрд░рддрд╛ рд╣реИ: package name, npm install spec, expected integrity, рдФрд░ cheap auth-choice labels рдХрд┐рд╕реА installable setup option рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред Plugin installed рд╣реЛ рдЬрд╛рдиреЗ рдкрд░, рдЙрд╕рдХрд╛ manifest рдЬреАрддрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ provider рдХреЗ рд▓рд┐рдП Provider Index entry рдЕрдирджреЗрдЦреА рдХреА рдЬрд╛рддреА рд╣реИред

Legacy top-level capability keys deprecated рд╣реИрдВред speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, рдФрд░ webSearchProviders рдХреЛ contracts рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП openclaw doctor --fix рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рд╕рд╛рдорд╛рдиреНрдп manifest loading рдЕрдм рдЙрди top-level fields рдХреЛ capability ownership рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирддреАред

Manifest рдмрдирд╛рдо package.json

рджреЛрдиреЛрдВ files рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ:

File рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
openclaw.plugin.json Discovery, config validation, auth-choice metadata, рдФрд░ UI hints рдЬреЛ plugin code рдЪрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
package.json npm metadata, dependency installation, рдФрд░ entrypoints, install gating, setup, рдпрд╛ catalog metadata рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ openclaw block

рдпрджрд┐ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ metadata рдХрд╛ рдХреЛрдИ рд╣рд┐рд╕реНрд╕рд╛ рдХрд╣рд╛рдБ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдпрд╣ рдирд┐рдпрдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  • рдпрджрд┐ OpenClaw рдХреЛ plugin code load рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ openclaw.plugin.json рдореЗрдВ рд░рдЦреЗрдВ
  • рдпрджрд┐ рдпрд╣ packaging, entry files, рдпрд╛ npm install behavior рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ package.json рдореЗрдВ рд░рдЦреЗрдВ

package.json fields рдЬреЛ discovery рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ

рдХреБрдЫ pre-runtime plugin metadata рдЬрд╛рдирдмреВрдЭрдХрд░ openclaw.plugin.json рдХреЗ рдмрдЬрд╛рдп package.json рдореЗрдВ openclaw block рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд░рд╣рддрд╛ рд╣реИред openclaw.bundle рдФрд░ openclaw.bundle.json OpenClaw plugin contracts рдирд╣реАрдВ рд╣реИрдВ; native plugins рдХреЛ openclaw.plugin.json рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рдорд░реНрдерд┐рдд package.json#openclaw fields рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг:

рдлрд╝реАрд▓реНрдб рдЗрд╕рдХрд╛ рдЕрд░реНрде
openclaw.extensions рдиреЗрдЯрд┐рд╡ Plugin рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред Plugin рдкреИрдХреЗрдЬ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╣реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
openclaw.runtimeExtensions рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ JavaScript runtime рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред Plugin рдкреИрдХреЗрдЬ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╣реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
openclaw.setupEntry onboarding, рд╕реНрдердЧрд┐рдд channel startup, рдФрд░ read-only channel status/SecretRef discovery рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣рд▓реНрдХрд╛ setup-only рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯред Plugin рдкреИрдХреЗрдЬ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╣реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
openclaw.runtimeSetupEntry рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ JavaScript setup рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред setupEntry рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ Plugin рдкреИрдХреЗрдЬ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╣реА рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред
openclaw.channel labels, docs paths, aliases, рдФрд░ selection copy рдЬреИрд╕реЗ рд╕рд╕реНрддреЗ channel catalog metadataред
openclaw.channel.commands channel runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ config, audit, рдФрд░ command-list surfaces рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ static native command рдФрд░ native skill auto-default metadataред
openclaw.channel.configuredState рд╣рд▓реНрдХрд╛ configured-state checker metadata рдЬреЛ рдкреВрд░рд╛ channel runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ "рдХреНрдпрд╛ env-only setup рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ?" рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИред
openclaw.channel.persistedAuthState рд╣рд▓реНрдХрд╛ persisted-auth checker metadata рдЬреЛ рдкреВрд░рд╛ channel runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ "рдХреНрдпрд╛ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ signed in рд╣реИ?" рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИред
openclaw.install.clawhubSpec / openclaw.install.npmSpec / openclaw.install.localPath bundled рдФрд░ externally published Plugins рдХреЗ рд▓рд┐рдП install/update рд╕рдВрдХреЗрддред
openclaw.install.defaultChoice рдЬрдм рдХрдИ install sources рдЙрдкрд▓рдмреНрдз рд╣реЛрдВ, рддрдм рдкрд╕рдВрджреАрджрд╛ install pathред
openclaw.install.minHostVersion рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерд┐рдд OpenClaw host version, >=2026.3.22 рдпрд╛ >=2026.5.1-beta.1 рдЬреИрд╕реЗ semver floor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред
openclaw.compat.pluginApi рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо OpenClaw plugin API range, >=2026.5.27 рдЬреИрд╕реЗ semver floor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред
openclaw.install.expectedIntegrity рдЕрдкреЗрдХреНрд╖рд┐рдд npm dist integrity string рдЬреИрд╕реЗ sha512-...; install рдФрд░ update flows fetched artifact рдХреЛ рдЗрд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз verify рдХрд░рддреЗ рд╣реИрдВред
openclaw.install.allowInvalidConfigRecovery config рдЕрдорд╛рдиреНрдп рд╣реЛрдиреЗ рдкрд░ рдПрдХ рд╕рдВрдХреАрд░реНрдг bundled-plugin reinstall recovery path рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
openclaw.install.requiredPlatformPackages npm package aliases рдЬрд┐рдиреНрд╣реЗрдВ рддрдм materialize рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЙрдирдХреЗ lockfile platform constraints рдореМрдЬреВрджрд╛ host рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реЛрдВред
openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen setup-runtime channel surfaces рдХреЛ listen рд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рд╣реЛрдиреЗ рджреЗрддрд╛ рд╣реИ, рдлрд┐рд░ рдкреВрд░реЗ configured channel Plugin рдХреЛ post-listen activation рддрдХ defer рдХрд░рддрд╛ рд╣реИред

Manifest metadata рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ runtime рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ onboarding рдореЗрдВ рдХреМрди-рд╕реЗ provider/channel/setup рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрддреЗ рд╣реИрдВред package.json#openclaw.install onboarding рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм user рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреБрдирддрд╛ рд╣реИ рддреЛ рдЙрд╕ Plugin рдХреЛ рдХреИрд╕реЗ fetch рдпрд╛ enable рдХрд░рдирд╛ рд╣реИред install hints рдХреЛ openclaw.plugin.json рдореЗрдВ рди рд▓реЗ рдЬрд╛рдПрдВред

openclaw.install.minHostVersion non-bundled Plugin sources рдХреЗ рд▓рд┐рдП install рдФрд░ manifest registry loading рдХреЗ рджреМрд░рд╛рди enforce рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдорд╛рдиреНрдп values reject рдХреА рдЬрд╛рддреА рд╣реИрдВ; newer-but-valid values рдкреБрд░рд╛рдиреЗ hosts рдкрд░ external Plugins рдХреЛ skip рдХрд░рддреА рд╣реИрдВред Bundled source Plugins рдХреЛ host checkout рдХреЗ рд╕рд╛рде co-versioned рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

openclaw.install.requiredPlatformPackages рдЙрди npm packages рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ optional, platform-specific aliases рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рд╢реНрдпрдХ native binaries expose рдХрд░рддреЗ рд╣реИрдВред рд╣рд░ supported platform alias рдХреЗ рд▓рд┐рдП bare npm package name list рдХрд░реЗрдВред npm install рдХреЗ рджреМрд░рд╛рди, OpenClaw рдХреЗрд╡рд▓ рдЙрд╕ declared alias рдХреЛ verify рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ lockfile constraints рдореМрдЬреВрджрд╛ host рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ npm success report рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╣ alias omit рдХрд░рддрд╛ рд╣реИ, рддреЛ OpenClaw fresh cache рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ retry рдХрд░рддрд╛ рд╣реИ рдФрд░ alias рдлрд┐рд░ рднреА missing рд╣реЛ рддреЛ install рдХреЛ roll back рдХрд░рддрд╛ рд╣реИред

openclaw.compat.pluginApi non-bundled Plugin sources рдХреЗ рд▓рд┐рдП package install рдХреЗ рджреМрд░рд╛рди enforce рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдЙрд╕ OpenClaw plugin SDK/runtime API floor рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рд╡рд┐рд░реБрджреНрдз package рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ minHostVersion рд╕реЗ stricter рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА Plugin package рдХреЛ newer API рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ flows рдХреЗ рд▓рд┐рдП lower install hint рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред Official OpenClaw release sync default рд░реВрдк рд╕реЗ existing official Plugin API floors рдХреЛ OpenClaw release version рддрдХ bump рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди plugin-only releases lower floor рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм package рдЬрд╛рдирдмреВрдЭрдХрд░ older hosts рдХреЛ support рдХрд░рддрд╛ рд╣реЛред compatibility contract рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ package version рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред peerDependencies.openclaw npm package metadata рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ; OpenClaw install compatibility decisions рдХреЗ рд▓рд┐рдП openclaw.compat.pluginApi contract рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

Official install-on-demand metadata рдХреЛ clawhubSpec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм Plugin ClawHub рдкрд░ published рд╣реЛ; onboarding рдЙрд╕реЗ preferred remote source рдорд╛рдирддрд╛ рд╣реИ рдФрд░ install рдХреЗ рдмрд╛рдж ClawHub artifact facts record рдХрд░рддрд╛ рд╣реИред npmSpec рдЙрди packages рдХреЗ рд▓рд┐рдП compatibility fallback рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдЬреЛ рдЕрднреА ClawHub рдкрд░ move рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВред

Exact npm version pinning рдкрд╣рд▓реЗ рд╕реЗ npmSpec рдореЗрдВ рд░рд╣рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "npmSpec": "@wecom/wecom-openclaw-plugin@1.2.3"ред Official external catalog entries рдХреЛ exact specs рдХреЗ рд╕рд╛рде expectedIntegrity pair рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ update flows fail closed рд╣реЛрдВ рдпрджрд┐ fetched npm artifact рдЕрдм pinned release рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ред Interactive onboarding compatibility рдХреЗ рд▓рд┐рдП trusted registry npm specs рдЕрдм рднреА offer рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ bare package names рдФрд░ dist-tags рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Catalog diagnostics exact, floating, integrity-pinned, missing-integrity, package-name mismatch, рдФрд░ invalid default-choice sources рдореЗрдВ рдЕрдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рддрдм рднреА warn рдХрд░рддреЗ рд╣реИрдВ рдЬрдм expectedIntegrity рдореМрдЬреВрдж рд╣реЛ рд▓реЗрдХрд┐рди рдХреЛрдИ valid npm source рдирд╣реАрдВ рд╣реЛ рдЬрд┐рд╕реЗ рд╡рд╣ pin рдХрд░ рд╕рдХреЗред рдЬрдм expectedIntegrity рдореМрдЬреВрдж рд╣реЛ, install/update flows рдЙрд╕реЗ enforce рдХрд░рддреЗ рд╣реИрдВ; рдЬрдм рд╡рд╣ omitted рд╣реЛ, registry resolution integrity pin рдХреЗ рдмрд┐рдирд╛ record рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Channel Plugins рдХреЛ openclaw.setupEntry рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм status, channel list, рдпрд╛ SecretRef scans рдХреЛ рдкреВрд░рд╛ runtime рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ configured accounts identify рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реЛред setup entry рдХреЛ channel metadata рдХреЗ рд╕рд╛рде setup-safe config, status, рдФрд░ secrets adapters expose рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП; network clients, gateway listeners, рдФрд░ transport runtimes рдХреЛ main extension entrypoint рдореЗрдВ рд░рдЦреЗрдВред

Runtime entrypoint fields source entrypoint fields рдХреЗ рд▓рд┐рдП package-boundary checks рдХреЛ override рдирд╣реАрдВ рдХрд░рддреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, openclaw.runtimeExtensions рдХрд┐рд╕реА escaping openclaw.extensions path рдХреЛ loadable рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ред

openclaw.install.allowInvalidConfigRecovery рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕рдВрдХреАрд░реНрдг рд╣реИред рдпрд╣ arbitrary broken configs рдХреЛ installable рдирд╣реАрдВ рдмрдирд╛рддрд╛ред рдЖрдЬ рдпрд╣ рдХреЗрд╡рд▓ install flows рдХреЛ specific stale bundled-plugin upgrade failures рд╕реЗ recover рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ missing bundled Plugin path рдпрд╛ рдЙрд╕реА bundled Plugin рдХреЗ рд▓рд┐рдП stale channels.<id> entryред Unrelated config errors рдЕрдм рднреА install block рдХрд░рддреЗ рд╣реИрдВ рдФрд░ operators рдХреЛ openclaw doctor --fix рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред

openclaw.channel.persistedAuthState рдПрдХ tiny checker module рдХреЗ рд▓рд┐рдП package metadata рд╣реИ:

json
{  "openclaw": {    "channel": {      "id": "whatsapp",      "persistedAuthState": {        "specifier": "./auth-presence",        "exportName": "hasAnyWhatsAppAuth"      }    }  }}

рдЗрд╕реЗ рддрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм setup, doctor, status, рдпрд╛ read-only presence flows рдХреЛ рдкреВрд░рд╛ channel Plugin рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ cheap yes/no auth probe рдЪрд╛рд╣рд┐рдПред Persisted auth state configured channel state рдирд╣реАрдВ рд╣реИ: рдЗрд╕ metadata рдХрд╛ рдЙрдкрдпреЛрдЧ Plugins рдХреЛ auto-enable рдХрд░рдиреЗ, runtime dependencies repair рдХрд░рдиреЗ, рдпрд╛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рди рдХрд░реЗрдВ рдХрд┐ channel runtime load рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред target export рдПрдХ small function рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ persisted state рдкрдврд╝рддрд╛ рд╣реЛ; рдЗрд╕реЗ full channel runtime barrel рдХреЗ through route рди рдХрд░реЗрдВред

openclaw.channel.configuredState cheap env-only configured checks рдХреЗ рд▓рд┐рдП рд╡рд╣реА shape follow рдХрд░рддрд╛ рд╣реИ:

json
{  "openclaw": {    "channel": {      "id": "telegram",      "configuredState": {        "specifier": "./configured-state",        "exportName": "hasTelegramConfiguredState"      }    }  }}

рдЗрд╕реЗ рддрдм рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм рдХреЛрдИ channel env рдпрд╛ рдЕрдиреНрдп tiny non-runtime inputs рд╕реЗ configured-state рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реЛред рдпрджрд┐ check рдХреЛ full config resolution рдпрд╛ real channel runtime рдЪрд╛рд╣рд┐рдП, рддреЛ рдЙрд╕ logic рдХреЛ Plugin config.hasConfiguredState hook рдореЗрдВ рд╣реА рд░рдЦреЗрдВред

Discovery precedence (duplicate plugin ids)

OpenClaw рдХрдИ roots рд╕реЗ Plugins discover рдХрд░рддрд╛ рд╣реИред raw filesystem scan order рдХреЗ рд▓рд┐рдП, Plugin scan order рджреЗрдЦреЗрдВред рдпрджрд┐ рджреЛ discoveries рдХрд╛ рд╕рдорд╛рди id рд╣реИ, рддреЛ рдХреЗрд╡рд▓ highest-precedence manifest рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ; lower-precedence duplicates рдХреЛ рд╕рд╛рде рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп drop рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Precedence, highest to lowest:

  1. Config-selected тАФ plugins.entries.<id> рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ pinned path
  2. Bundled тАФ OpenClaw рдХреЗ рд╕рд╛рде shipped Plugins
  3. Global install тАФ global OpenClaw Plugin root рдореЗрдВ installed Plugins
  4. Workspace тАФ рдореМрдЬреВрджрд╛ workspace рдХреЗ relative discover рдХрд┐рдП рдЧрдП Plugins

Implications:

  • workspace рдореЗрдВ рдкрдбрд╝реА bundled Plugin рдХреА forked рдпрд╛ stale copy bundled build рдХреЛ shadow рдирд╣реАрдВ рдХрд░реЗрдЧреАред
  • bundled Plugin рдХреЛ local one рд╕реЗ рд╕рдЪ рдореЗрдВ override рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ plugins.entries.<id> рдХреЗ рдЬрд░рд┐рдП pin рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡рд╣ workspace discovery рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рдХреЗ рдмрдЬрд╛рдп precedence рд╕реЗ рдЬреАрддреЗред
  • Duplicate drops log рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ Doctor рдФрд░ startup diagnostics discarded copy рдХреА рдУрд░ point рдХрд░ рд╕рдХреЗрдВред
  • Config-selected duplicate overrides diagnostics рдореЗрдВ explicit overrides рдХреЗ рд░реВрдк рдореЗрдВ word рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА warn рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ stale forks рдФрд░ accidental shadows visible рд░рд╣реЗрдВред

JSON Schema requirements

  • рд╣рд░ Plugin рдХреЛ JSON Schema рдХреЗ рд╕рд╛рде рд╢рд┐рдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рд╡рд╣ рдХреЛрдИ рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╕реНрд╡реАрдХрд╛рд░ рди рдХрд░рддрд╛ рд╣реЛред
  • рдЦрд╛рд▓реА рд╕реНрдХреАрдорд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, { "type": "object", "additionalProperties": false })ред
  • рд╕реНрдХреАрдорд╛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдордп рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдирдП рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugin рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдпрд╛ рдлрд╝реЛрд░реНрдХ рдХрд░рддреЗ рд╕рдордп, рдЙрд╕реА рд╕рдордп рдЙрд╕ Plugin рдХреЗ openclaw.plugin.json configSchema рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП Plugin рд╕реНрдХреАрдорд╛ рд╕рдЦреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП configSchema.properties рдореЗрдВ myNewKey рдЬреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореЗрдВ plugins.entries.<id>.config.myNewKey рдЬреЛрдбрд╝рдирд╛ Plugin рд░рдирдЯрд╛рдЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреАрдорд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди:

json
{  "configSchema": {    "type": "object",    "additionalProperties": false,    "properties": {      "myNewKey": {        "type": "string"      }    }  }}

рд╕рддреНрдпрд╛рдкрди рд╡реНрдпрд╡рд╣рд╛рд░

  • рдЕрдЬреНрдЮрд╛рдд channels.* рдХреБрдВрдЬрд┐рдпрд╛рдБ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реИрдВ, рдЬрдм рддрдХ рдЪреИрдирд▓ id рдХреЛ рдХрд┐рд╕реА Plugin рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдШреЛрд╖рд┐рдд рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
  • plugins.entries.<id>, plugins.allow, plugins.deny, рдФрд░ plugins.slots.* рдХреЛ рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ Plugin ids рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЬреНрдЮрд╛рдд ids рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реИрдВред
  • рдпрджрд┐ рдХреЛрдИ Plugin рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИ рд▓реЗрдХрд┐рди рдЙрд╕рдХрд╛ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдпрд╛ рд╕реНрдХреАрдорд╛ рдЯреВрдЯрд╛ рд╣реБрдЖ рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Doctor Plugin рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред
  • рдпрджрд┐ Plugin рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореМрдЬреВрдж рд╣реИ рд▓реЗрдХрд┐рди Plugin рдЕрдХреНрд╖рдо рд╣реИ, рддреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ Doctor + рд▓реЙрдЧ рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИред

рдкреВрд░реНрдг plugins.* рд╕реНрдХреАрдорд╛ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрджрд░реНрдн рджреЗрдЦреЗрдВред

рдиреЛрдЯреНрд╕

  • рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореВрд▓ OpenClaw Plugin рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдб рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд░рдирдЯрд╛рдЗрдо рдлрд┐рд░ рднреА Plugin рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ; рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдХреЗрд╡рд▓ рдЦреЛрдЬ + рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╣реИред
  • рдореВрд▓ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ JSON5 рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, trailing commas, рдФрд░ unquoted keys рддрдм рддрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдЕрдВрддрд┐рдо рдорд╛рди рдЕрднреА рднреА рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛред
  • рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рд▓реЛрдбрд░ рдХреЗрд╡рд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝рд┐рдд рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдкрдврд╝рддрд╛ рд╣реИред рдХрд╕реНрдЯрдо рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдмрдЪреЗрдВред
  • рдЬрдм рдХрд┐рд╕реА Plugin рдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ, рддреЛ channels, providers, cliBackends, рдФрд░ skills рд╕рднреА рдЫреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
  • providerCatalogEntry рд╣рд▓реНрдХрд╛ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░рдирдЯрд╛рдЗрдо рдХреЛрдб рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; рдЗрд╕реЗ рд╕реНрдерд┐рд░ provider catalog рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдпрд╛ рд╕рдВрдХреАрд░реНрдг рдЦреЛрдЬ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, request-time execution рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
  • рд╡рд┐рд╢рд┐рд╖реНрдЯ Plugin рдкреНрд░рдХрд╛рд░ plugins.slots.* рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪреБрдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ: plugins.slots.memory рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ kind: "memory", plugins.slots.contextEngine рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ kind: "context-engine" (рдбрд┐рдлрд╝реЙрд▓реНрдЯ legacy)ред
  • рдЗрд╕ рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ Plugin рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред Runtime-entry OpenClawPluginDefinition.kind deprecated рд╣реИ рдФрд░ рдкреБрд░рд╛рдиреЗ Plugin рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ compatibility fallback рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред
  • Env-var рдореЗрдЯрд╛рдбреЗрдЯрд╛ (setup.providers[].envVars, deprecated providerAuthEnvVars, рдФрд░ channelEnvVars) рдХреЗрд╡рд▓ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╣реИред Status, audit, Cron delivery validation, рдФрд░ рдЕрдиреНрдп read-only surfaces рдЕрднреА рднреА рдХрд┐рд╕реА env var рдХреЛ configured рдорд╛рдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ Plugin trust рдФрд░ effective activation policy рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
  • provider code рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ runtime wizard metadata рдХреЗ рд▓рд┐рдП, Provider runtime hooks рджреЗрдЦреЗрдВред
  • рдпрджрд┐ рдЖрдкрдХрд╛ Plugin native modules рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ build steps рдФрд░ рдХрд┐рд╕реА рднреА package-manager allowlist рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, pnpm allow-build-scripts + pnpm rebuild <package>)ред

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

Was this useful?
On this page

On this page