プラグインマニフェスト(openclaw.plugin.json)
すべてのプラグインは、プラグインルート に openclaw.plugin.json ファイルを同梱する 必要があります。 OpenClaw は、このマニフェストを使用して、プラグインコードを実行せずに 設定を検証します。マニフェストが欠落しているか無効な場合、プラグインエラーとして扱われ、設定検証がブロックされます。
完全なプラグインシステムガイドを参照してください: プラグイン。
必須フィールド
{
"id": "voice-call",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
必須キー:
- id(文字列): 正規のプラグイン id。
- configSchema(オブジェクト): プラグイン設定用の JSON Schema(インライン)。
オプションキー:
- kind(文字列): プラグインの種類(例: "memory")。
- channels(配列): このプラグインによって登録されたチャンネル id(例: ["matrix"])。
- providers(配列): このプラグインによって登録されたプロバイダー id。
- skills(配列): ロードするスキルディレクトリ(プラグインルートからの相対パス)。
- name(文字列): プラグインの表示名。
- description(文字列): 短いプラグインの概要。
- uiHints(オブジェクト): UI レンダリング用の設定フィールドラベル/プレースホルダー/機密フラグ。
- version(文字列): プラグインバージョン(情報提供)。
JSON Schema 要件
- すべてのプラグインは JSON Schema を同梱する必要があります。設定を受け入れない場合でも。
- 空のスキーマは許容されます(例: { "type": "object", "additionalProperties": false })。
- スキーマは、設定の読み取り/書き込み時に検証され、実行時には検証されません。
検証動作
- プラグインマニフェストでチャンネル id が宣言されていない限り、未知の channels.* キーは エラー です。
- plugins.entries.<id>、plugins.allow、plugins.deny、および plugins.slots.* は、検出可能な プラグイド id を参照する必要があります。未知の id は エラー です。
- プラグインがインストールされているが、マニフェストまたはスキーマが壊れているか欠落している場合、検証は失敗し、Doctor がプラグインエラーを報告します。
- プラグイン設定が存在するがプラグインが 無効 の場合、設定は保持され、Doctor + ログで 警告 が表示されます。
注記
- マニフェストは、ローカルファイルシステムロードを含む すべてのプラグインに必須 です。
- ランタイムは引き続きプラグインモジュールを個別にロードします。マニフェストは検出 + 検証のためだけです。
- プラグインがネイティブモジュールに依存している場合は、ビルドステップとパッケージマネージャーの許可リスト要件をドキュメント化してください(例: pnpm allow-build-scripts + pnpm rebuild <package>)。