插件清单(openclaw.plugin.json)
每个插件必须在插件根目录中提供一个 openclaw.plugin.json 文件。OpenClaw 使用此清单来验证配置,而无需执行插件代码。缺失或无效的清单会被视为插件错误,并阻止配置验证。
查看完整的插件系统指南:插件(Plugins)。
必需字段
{
"id": "voice-call",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
必需键:
- id(string):规范插件 ID。
- configSchema(object):插件配置的 JSON Schema(内联)。
可选键:
- kind(string):插件类型(例如:"memory")。
- channels(array):此插件注册的频道 ID(例如:["matrix"])。
- providers(array):此插件注册的提供者 ID。
- skills(array):要加载的技能目录(相对于插件根目录)。
- name(string):插件的显示名称。
- description(string):插件简短摘要。
- uiHints(object):用于 UI 渲染的配置字段标签/占位符/敏感标志。
- version(string):插件版本(信息性)。
JSON Schema 要求
- 每个插件都必须提供 JSON Schema,即使它不接受配置。
- 可以使用空 schema(例如,{ "type": "object", "additionalProperties": false })。
- Schema 在配置读取/写入时验证,而非在运行时验证。
验证行为
- 未知的 channels.* 键是错误,除非频道 ID 由插件清单声明。
- plugins.entries.<id>、plugins.allow、plugins.deny 和 plugins.slots.* 必须引用可发现的插件 ID。未知 ID 是错误。
- 如果插件已安装但清单或 schema 损坏或缺失,验证将失败,Doctor 会报告插件错误。
- 如果插件配置存在但插件已禁用,配置将保留,并在 Doctor + 日志中显示警告。
注意事项
- 所有插件都需要清单,包括本地文件系统加载的插件。
- 运行时仍会单独加载插件模块;清单仅用于发现 + 验证。
- 如果你的插件依赖原生模块,请记录构建步骤和任何包管理器白名单要求(例如,pnpm 的 allow-build-scripts + pnpm rebuild <package>)。