Расширения

Манифест плагина

Каждый плагин обязан содержать файл openclaw.plugin.json в корне плагина. OpenClaw использует этот манифест для валидации конфигурации без выполнения кода плагина. Отсутствующие или невалидные манифесты считаются ошибками плагина и блокируют валидацию конфигурации. Смотрите полное руководство по системе плагинов: Плагины.

Обязательные поля

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

Обязательные ключи:

  • id (строка): канонический идентификатор плагина.
  • configSchema (объект): JSON Schema для конфигурации плагина (встроенная).

Опциональные ключи:

  • kind (строка): тип плагина (примеры: "memory", "context-engine").
  • channels (массив): идентификаторы каналов, регистрируемых этим плагином (пример: ["matrix"]).
  • providers (массив): идентификаторы провайдеров, регистрируемых этим плагином.
  • skills (массив): директории навыков для загрузки (относительно корня плагина).
  • name (строка): отображаемое имя плагина.
  • description (строка): краткое описание плагина.
  • uiHints (объект): подписи/плейсхолдеры/флаги конфиденциальности для полей конфигурации при рендеринге UI.
  • version (строка): версия плагина (информационная).

Требования к JSON Schema

  • Каждый плагин должен содержать JSON Schema, даже если он не принимает конфигурацию.
  • Пустая схема допустима (например, { "type": "object", "additionalProperties": false }).
  • Схемы валидируются во время чтения/записи конфигурации, а не во время выполнения.

Поведение валидации

  • Неизвестные ключи в channels.* являются ошибками, если идентификатор канала не объявлен в манифесте плагина.
  • plugins.entries.<id>, plugins.allow, plugins.deny и plugins.slots.* должны ссылаться на обнаруживаемые идентификаторы плагинов. Неизвестные идентификаторы являются ошибками.
  • Если плагин установлен, но имеет повреждённый или отсутствующий манифест или схему, валидация завершается неудачей, и Doctor сообщает об ошибке плагина.
  • Если конфигурация плагина существует, но плагин отключён, конфигурация сохраняется, а предупреждение выводится в Doctor и логи.

Примечания

  • Манифест обязателен для всех плагинов, включая загрузку из локальной файловой системы.
  • Среда выполнения по-прежнему загружает модуль плагина отдельно; манифест используется только для обнаружения и валидации.
  • Эксклюзивные типы плагинов выбираются через plugins.slots.*.
    • kind: "memory" выбирается через plugins.slots.memory.
    • kind: "context-engine" выбирается через plugins.slots.contextEngine (по умолчанию: встроенный legacy).
  • Если ваш плагин зависит от нативных модулей, задокументируйте шаги сборки и любые требования к разрешённому списку менеджера пакетов (например, allow-build-scripts для pnpm
    • pnpm rebuild <package>).

Плагин Zalo PersonalИнструменты агента плагина