Урок 4. Создание плагинов#
Зачем это нужно#
Плагин — это «дополнение» для OpenClaw, которое добавляет новые возможности: инструменты, каналы связи, команды. Если базовых функций не хватает, можно установить готовый плагин или создать свой. Это как приложения на телефоне — базовые функции есть, но App Store делает телефон по-настоящему полезным.
Что умеют плагины#
Плагины могут добавлять:
- Инструменты для ассистента (например, голосовые звонки)
- Каналы связи (новые мессенджеры)
- Команды CLI (новые текстовые команды)
- Фоновые службы (работают постоянно)
- Навыки (skills — инструкции для ассистента)
- Авто-ответы на слэш-команды (без вызова AI)
Установка готовых плагинов#
Посмотреть установленные#
openclaw plugins listУстановить из npm#
openclaw plugins install @openclaw/voice-callВключить/выключить#
openclaw plugins enable voice-call
openclaw plugins disable voice-callПосле изменений нужно перезапустить Gateway:
openclaw gateway restartОфициальные плагины#
| Плагин | Что делает |
|---|---|
@openclaw/voice-call |
Голосовые звонки через Twilio |
@openclaw/matrix |
Подключение к Matrix |
@openclaw/msteams |
Microsoft Teams |
@openclaw/nostr |
Децентрализованная сеть Nostr |
@openclaw/zalouser |
Мессенджер Zalo |
Манифест плагина#
Каждый плагин обязан иметь файл openclaw.plugin.json в корневой папке. Это «паспорт» плагина, который описывает, что он из себя представляет.
Минимальный манифест:
{
"id": "my-plugin",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}Расширенный вариант:
{
"id": "my-plugin",
"name": "Мой плагин",
"description": "Добавляет полезные функции",
"version": "1.0.0",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"apiKey": { "type": "string" }
}
},
"uiHints": {
"apiKey": { "label": "API Ключ", "sensitive": true }
}
}Обязательные поля:
id— уникальное имя плагинаconfigSchema— JSON Schema для настроек (даже если настроек нет)
Необязательные поля:
name— отображаемое имяdescription— краткое описаниеkind— тип плагина (например,"memory")channels— какие каналы регистрируетskills— папки с навыками
Структура простого плагина#
my-plugin/
├── openclaw.plugin.json ← манифест (обязательно)
├── index.ts ← код плагина
└── package.json ← зависимости (если нужны)Пример кода (index.ts)#
Самый простой плагин — добавляет команду:
export default function(api) {
// Регистрируем слэш-команду
api.registerCommand({
name: "ping",
description: "Проверка работы плагина",
handler: () => ({
text: "Pong! Плагин работает 🎉"
})
});
}Плагин с инструментом для ассистента#
export default function(api) {
// Регистрируем RPC-метод (удалённый вызов)
api.registerGatewayMethod("myplugin.weather", ({ respond }) => {
respond(true, { temperature: 22, city: "Moscow" });
});
}Плагин с фоновой службой#
export default function(api) {
api.registerService({
id: "my-monitor",
start: () => api.logger.info("Мониторинг запущен"),
stop: () => api.logger.info("Мониторинг остановлен")
});
}Как добавить плагин в OpenClaw#
Вариант 1: Локальный плагин#
Положите файлы в папку расширений:
~/.openclaw/extensions/my-plugin/
├── openclaw.plugin.json
└── index.tsOpenClaw найдёт его автоматически.
Вариант 2: Через конфигурацию#
{
plugins: {
enabled: true,
load: {
paths: ["~/Projects/my-plugin"]
},
entries: {
"my-plugin": {
enabled: true,
config: {
apiKey: "ваш-ключ"
}
}
}
}
}Вариант 3: Установка из файла#
openclaw plugins install ./path/to/my-plugin
openclaw plugins install ./plugin.zipПорядок поиска плагинов#
OpenClaw ищет плагины в таком порядке (первый найденный побеждает):
- Пути из
plugins.load.paths <workspace>/.openclaw/extensions/~/.openclaw/extensions/- Встроенные расширения (выключены по умолчанию)
Безопасность плагинов#
⚠️ Плагины работают внутри Gateway — у них полный доступ. Устанавливайте только те, которым доверяете.
Для ограничения используйте списки:
{
plugins: {
allow: ["voice-call", "my-plugin"], // только эти
deny: ["untrusted-plugin"] // эти запрещены
}
}Диагностика#
openclaw plugins list # что установлено
openclaw plugins info my-plugin # детали плагина
openclaw plugins doctor # проверка на ошибкиИтоги урока#
- Плагин — это модуль, расширяющий возможности OpenClaw
- Каждый плагин обязан иметь манифест
openclaw.plugin.json - Плагины могут добавлять команды, инструменты, каналы и фоновые службы
- Устанавливайте через
openclaw plugins installили кладите в папку расширений - Плагины работают внутри Gateway — доверяйте только проверенным
- Используйте
openclaw plugins doctorдля проверки проблем