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