外掛 manifest(openclaw.plugin.json)
每個外掛必須在外掛根目錄中附帶一個 openclaw.plugin.json 檔案。OpenClaw 使用此 manifest 來驗證設定,無需執行外掛程式碼。缺少或無效的 manifest 會被視為外掛錯誤並阻擋設定驗證。
完整的外掛系統指南:外掛。
必要欄位
{
"id": "voice-call",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
必要鍵值:
id(字串):外掛的正式 id。configSchema(物件):外掛設定的 JSON Schema(內嵌)。
可選鍵值:
kind(字串):外掛類型(例如:"memory"、"context-engine")。channels(陣列):此外掛註冊的頻道 id(例如:["matrix"])。providers(陣列):此外掛註冊的 provider id。skills(陣列):要載入的技能目錄(相對於外掛根目錄)。name(字串):外掛的顯示名稱。description(字串):外掛的簡短說明。uiHints(物件):設定欄位的標籤/佔位符/敏感旗標,供 UI 呈現。version(字串):外掛版本(僅供參考)。
JSON Schema 需求
- 每個外掛都必須附帶 JSON Schema,即使不接受任何設定。
- 空 schema 可以接受(例如
{ "type": "object", "additionalProperties": false })。 - Schema 在設定讀寫時驗證,不在 runtime 驗證。
驗證行為
- 未知的
channels.*鍵值為錯誤,除非頻道 id 由外掛 manifest 宣告。 plugins.entries.<id>、plugins.allow、plugins.deny和plugins.slots.*必須參考可發現的外掛 id。未知 id 為錯誤。- 如果外掛已安裝但 manifest 或 schema 損壞或缺失,驗證失敗,Doctor 會回報外掛錯誤。
- 如果外掛設定存在但外掛已停用,設定會保留並在 Doctor + 記錄中顯示警告。
注意事項
- manifest 是所有外掛的必要條件,包括本機檔案系統載入的外掛。
- Runtime 仍然獨立載入外掛模組;manifest 僅用於發現 + 驗證。
- 獨佔式外掛類型透過
plugins.slots.*選擇。kind: "memory"由plugins.slots.memory選擇。kind: "context-engine"由plugins.slots.contextEngine選擇(預設:內建legacy)。
- 如果你的外掛依賴原生模組,請記錄建構步驟及任何套件管理器允許建構需求(例如 pnpm 的
allow-build-scripts—pnpm rebuild <package>)。