Манифест плагина (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>).