Манифест плагина (openclaw.plugin.json)
Каждый плагин должен поставлять файл openclaw.plugin.json в корне плагина. OpenClaw использует этот манифест для валидации конфигурации без выполнения кода плагина. Отсутствующие или недействительные манифесты рассматриваются как ошибки плагина и блокируют валидацию конфигурации.
См. полное руководство по системе плагинов: Плагины.
Обязательные поля
{
"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, даже если он не принимает конфигурацию.
- Пустая схема допустима (например, \{ "type": "object", "additionalProperties": false \}).
- Схемы валидируются во время чтения/записи конфигурации, а не во время выполнения.
Поведение валидации
- Неизвестные ключи channels.* являются ошибками, если id канала не объявлен манифестом плагина.
- plugins.entries.<id>, plugins.allow, plugins.deny и plugins.slots.* должны ссылаться на обнаруживаемые id плагинов. Неизвестные id являются ошибками.
- Если плагин установлен, но имеет поврежденный или отсутствующий манифест или схему, валидация не проходит, и Doctor сообщает об ошибке плагина.
- Если конфигурация плагина существует, но плагин отключен, конфигурация сохраняется и выдается предупреждение в Doctor + логах.
Примечания
- Манифест обязателен для всех плагинов, включая загрузки из локальной файловой системы.
- Время выполнения все еще загружает модуль плагина отдельно; манифест только для обнаружения + валидации.
- Если ваш плагин зависит от нативных модулей, задокументируйте шаги сборки и любые требования к белому списку менеджера пакетов (например, pnpm allow-build-scripts + pnpm rebuild <package>).