扩展

插件清单

每个插件(plugin)必须在其根目录下包含一个 openclaw.plugin.json 文件。OpenClaw 通过这份清单来验证配置——无需执行插件代码。如果清单缺失或无效,将被视为插件错误并阻止配置验证。完整插件系统指南请参阅:插件

必需字段

{
  "id": "voice-call",
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {}
  }
}

必需字段:

  • id(字符串):规范的插件 ID
  • configSchema(对象):插件配置的 JSON Schema(内联定义)

可选字段:

  • kind(字符串):插件类型(例如 "memory""context-engine"
  • channels(数组):此插件注册的频道 ID 列表(例如 ["matrix"]
  • providers(数组):此插件注册的提供商 ID 列表
  • skills(数组):要加载的技能目录(相对于插件根目录)
  • name(字符串):插件的显示名称
  • description(字符串):插件的简短描述
  • uiHints(对象):用于 UI 渲染的配置字段标签、占位符、敏感标记等
  • version(字符串):插件版本(仅供参考)

JSON Schema 要求

  • 每个插件都必须提供 JSON Schema,即使它不接受任何配置
  • 空模式也是可接受的(例如 { "type": "object", "additionalProperties": false }
  • Schema 在配置读写时验证,而非运行时验证

验证行为

  • 未知的 channels.* 键会报错误,除非该频道 ID 已在插件清单中声明
  • plugins.entries.<id>plugins.allowplugins.denyplugins.slots.* 必须引用可被发现的插件 ID,未知 ID 会报错误
  • 如果插件已安装但清单或 Schema 损坏或缺失,验证将失败,Doctor 会报告插件错误
  • 如果插件配置存在但插件被禁用,配置会被保留,Doctor 和日志中会显示警告

注意事项

  • 清单对所有插件都是必需的,包括从本地文件系统加载的插件
  • 运行时仍会单独加载插件模块;清单仅用于发现和验证
  • 独占型插件通过 plugins.slots.* 选择:
    • kind: "memory"plugins.slots.memory 选择
    • kind: "context-engine"plugins.slots.contextEngine 选择(默认:内置 legacy
  • 如果你的插件依赖原生模块,请记录构建步骤和任何包管理器允许列表要求(例如 pnpm allow-build-scriptspnpm rebuild <package>

Zalo 个人插件插件代理工具