Plugin Manifest(openclaw.plugin.json)

每个 Plugin 必须Plugin 根目录提供一个 openclaw.plugin.json 文件。OpenClaw 用这个清单文件来验证配置,无需执行 Plugin 代码。缺失或无效的清单文件会被视为 Plugin 错误,并阻止配置验证。

查看完整的 Plugin 系统指南:Plugins

必填字段

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

必填的键:

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

可选的键:

  • kind(字符串):Plugin 类型(例如:"memory")。
  • channels(数组):此 Plugin 注册的 Channel ID(例如:["matrix"])。
  • providers(数组):此 Plugin 注册的 Provider ID。
  • skills(数组):要加载的 Skill 目录(相对于 Plugin 根目录的路径)。
  • name(字符串):Plugin 的显示名称。
  • description(字符串):Plugin 的简短描述。
  • uiHints(对象):配置字段的标签/占位符/敏感标记,用于 UI 渲染。
  • version(字符串):Plugin 版本(仅供参考)。

JSON Schema 要求

  • 每个 Plugin 都必须提供 JSON Schema,即使它不接受任何配置。
  • 空 Schema 也是可以的(例如:{ "type": "object", "additionalProperties": false })。
  • Schema 在配置读取/写入时验证,而不是在运行时验证。

验证行为

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

注意事项

  • 清单文件对所有 Plugin 都是必需的,包括从本地文件系统加载的 Plugin。
  • Runtime 仍然会单独加载 Plugin 模块;清单文件仅用于发现和验证。
  • 如果你的 Plugin 依赖原生模块,请记录构建步骤和任何包管理器白名单要求(例如:pnpm 的 allow-build-scriptspnpm rebuild <package>)。