Plugin manifest(openclaw.plugin.json)
每個 plugin 必須在 plugin 根目錄中提供openclaw.plugin.json 檔案。
OpenClaw 使用此清單無需執行 plugin 程式碼即可驗證設定。缺少或無效的清單會被視為 plugin 錯誤,並阻擋設定驗證。
完整 plugin 系統指南請見:Plugins。
必要欄位
id(字串):正式的 plugin id。configSchema(物件):plugin 設定的 JSON Schema(內嵌)。
kind(字串):plugin 類型(範例:"memory"、"context-engine")。channels(陣列):此 plugin 註冊的頻道 id(範例:["matrix"])。providers(陣列):此 plugin 註冊的提供商 id。skills(陣列):要載入的 skill 目錄(相對於 plugin 根目錄)。name(字串):plugin 的顯示名稱。description(字串):plugin 的簡短摘要。uiHints(物件):設定欄位的標籤/佔位符/敏感旗標,用於 UI 渲染。version(字串):plugin 版本(僅供參考)。
JSON Schema 需求
- 每個 plugin 必須提供 JSON Schema,即使它不接受任何設定。
- 空 schema 是可接受的(例如
{ "type": "object", "additionalProperties": false })。 - Schema 在設定讀取/寫入時驗證,而非在執行階段。
驗證行為
- 未知的
channels.*鍵是錯誤,除非頻道 id 由 plugin manifest 聲明。 plugins.entries.<id>、plugins.allow、plugins.deny和plugins.slots.*必須參考可探索的 plugin id。未知 id 是錯誤。- 若 plugin 已安裝但 manifest 或 schema 損壞或缺失,驗證失敗,Doctor 會回報 plugin 錯誤。
- 若 plugin 設定存在但 plugin 已停用,設定會保留,並在 Doctor + 記錄中顯示警告。
注意事項
- 清單所有 plugin 都必須提供,包括從本地檔案系統載入的 plugin。
- 執行階段仍會單獨載入 plugin 模組;manifest 僅用於探索 + 驗證。
- 排他性 plugin 類型透過
plugins.slots.*選擇。kind: "memory"由plugins.slots.memory選擇。kind: "context-engine"由plugins.slots.contextEngine選擇(預設:內建legacy)。
- 若你的 plugin 依賴原生模組,請記錄建置步驟和任何套件管理員允許清單需求(例如 pnpm
allow-build-scripts-pnpm rebuild <package>)。