openclaw.plugin.json を 必ず 含める必要があります。OpenClaw はこの manifest を使って、プラグイン コードを実行せずに 設定を検証します。manifest が欠落している、または不正な場合は plugin error として扱われ、設定検証は失敗します。
完全なプラグイン システムの説明は Plugins を参照してください。
必須フィールド
id(string): 正式な plugin idconfigSchema(object): プラグイン設定用の JSON Schema(inline)
kind(string): plugin kind(例:"memory"、"context-engine")channels(array): このプラグインが登録する channel id(例:["matrix"])providers(array): このプラグインが登録する provider idskills(array): 読み込む skill ディレクトリ(plugin root からの相対パス)name(string): 表示名description(string): 短い概要uiHints(object): UI 描画用の label / placeholder / sensitive flagversion(string): プラグイン バージョン(参考情報)
JSON Schema の要件
- すべてのプラグインは JSON Schema を同梱する必要があります。 設定を一切受け取らない場合でも必須です。
- 空の schema でも構いません。例:
{ "type": "object", "additionalProperties": false } - schema の検証は runtime ではなく、設定の読み書き時に行われます。
検証時の挙動
- プラグイン manifest で宣言されていない channel id に対する
channels.*キーは エラー です。 plugins.entries.<id>、plugins.allow、plugins.deny、plugins.slots.*は、発見可能な plugin id を参照していなければならず、不明な id は エラー になります。- plugin がインストールされていても、manifest または schema が壊れている、あるいは欠落している場合、validation は失敗し、Doctor が plugin error を報告します。
- plugin 設定が存在していても、その plugin が 無効 であれば、設定自体は保持され、Doctor とログには warning が出ます。
補足
- manifest は、ローカル filesystem から読み込む plugin を含め、すべてのプラグインで必須 です。
- runtime はプラグイン モジュールを別途読み込みます。manifest は discovery と validation のためだけに使われます。
- 排他的な plugin kind は
plugins.slots.*で選択します。kind: "memory"はplugins.slots.memoryで選択します。kind: "context-engine"はplugins.slots.contextEngineで選択します。 既定値は組み込みのlegacyです。
- plugin が native module に依存する場合は、build 手順と、必要な package manager の allowlist 要件(例: pnpm の
allow-build-scripts、pnpm rebuild <package>)を明記してください。