Расширения
Манифест плагина
Каждый плагин обязан содержать файл 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для pnpmpnpm rebuild <package>).