外掛 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.allowplugins.denyplugins.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-scriptspnpm rebuild <package>)。