Plugins в OpenClaw
Plugins (расширения) в OpenClaw — это TypeScript-модули, загружаемые в runtime через jiti, которые расширяют функциональность платформы без необходимости модифицировать ядро. По сути, это in-process extensions, работающие внутри Gateway-процесса.Что можно зарегистрировать через плагин
Плагины могут регистрировать: Gateway RPC-методы, HTTP-хендлеры, агентные инструменты (tools), CLI-команды, фоновые сервисы, валидацию конфигурации, скиллы (через директорииskills в манифесте), а также auto-reply команды, которые выполняются без вызова AI-агента.
Архитектура и Discovery
Плагин экспортирует либо функцию(api) => { ... }, либо объект с полями { id, name, configSchema, register(api) }.
OpenClaw сканирует плагины в строгом порядке приоритета: сначала пути из plugins.load.paths, затем workspace-расширения (<workspace>/.openclaw/extensions/), далее глобальные расширения (~/.openclaw/extensions/), и наконец bundled-расширения, которые поставляются с OpenClaw, но отключены по умолчанию. Если несколько плагинов резолвятся в один и тот же id, побеждает первый найденный — остальные игнорируются.
Конфигурация
Конфигурация плагинов живёт в общем конфиге OpenClaw:entries, allow, deny или slots трактуются как ошибки. Конфиг плагина валидируется по JSON Schema из манифеста openclaw.plugin.json.
Plugin Slots (эксклюзивные категории)
Некоторые категории плагинов являются эксклюзивными — только один плагин может быть активен в слоте одновременно. Например, для memory-слота можно выбрать междуmemory-core и memory-lancedb, либо отключить слот через "none". Это важно, если ты, скажем, хочешь подключить свой vector store для long-term memory агента.
Ключевые возможности
Agent Tools — плагин может регистрировать инструменты, которые агент вызывает в ходе inference. Это аналог function calling: агент видит описание tool’а и может его дёрнуть. Messaging Channels — можно зарегистрировать собственный канал (аналог WhatsApp/Telegram-интеграции). Нужно реализовать адаптеры:config.listAccountIds, config.resolveAccount, capabilities, outbound.sendText. Конфигурация канала живёт под channels.<id>, а не под plugins.entries.
Provider Plugins — позволяют добавлять OAuth/API-key авторизацию для модельных провайдеров прямо внутри OpenClaw (через api.registerProvider(...)).
Background Services — регистрация долгоживущих сервисов через api.registerService({ id, start, stop }).
Plugin Hooks — плагин может поставлять event-driven хуки, которые регистрируются в runtime и видны в openclaw hooks list.
Дистрибуция
Плагины распространяются как отдельные npm-пакеты (рекомендуемый namespace —@openclaw/*). Установка через openclaw plugins install <npm-spec> использует npm pack, извлекает в ~/.openclaw/extensions/<id>/ и включает плагин в конфиге. При этом зависимости устанавливаются с флагом --ignore-scripts из соображений безопасности.
Безопасность
Плагины работают in-process с Gateway, поэтому их нужно рассматривать как trusted code. Рекомендуется использовать allowlist’ы (plugins.allow) и устанавливать только проверенные расширения.