Skip to main content
Плагины расширяют OpenClaw без изменения ядра. Плагин может добавить канал обмена сообщениями, провайдера моделей, локальный бэкенд CLI, инструмент агента, хук, медиапровайдера или другую возможность, принадлежащую плагину. Внешний плагин не нужно добавлять в репозиторий OpenClaw. Опубликуйте пакет в ClawHub, после чего пользователи смогут установить его командой:
Во время перехода при запуске спецификации пакетов без префикса по-прежнему устанавливаются из npm. Используйте префикс clawhub:, если требуется разрешение через ClawHub.

Требования

  • Node 22.22.3+, Node 24.15+ или Node 25.9+, а также npm или pnpm.
  • Модули TypeScript ESM.
  • Для работы со встроенным плагином внутри репозитория клонируйте репозиторий и выполните pnpm install. Разработка плагинов из исходного кода поддерживает только pnpm, поскольку OpenClaw обнаруживает встроенные плагины среди пакетов рабочей области extensions/*.

Выберите тип плагина

Плагин канала

Подключите OpenClaw к платформе обмена сообщениями.

Плагин провайдера

Добавьте провайдера моделей, мультимедиа, поиска, загрузки данных, речи или взаимодействия в реальном времени.

Плагин бэкенда CLI

Запускайте локальный CLI для ИИ через резервный механизм моделей OpenClaw.

Плагин инструментов

Регистрируйте инструменты агента.

Быстрый старт

Создайте минимальный плагин инструментов, зарегистрировав один обязательный инструмент агента. Это простейший полезный тип плагина, охватывающий пакет, манифест, точку входа и локальную проверку.
1

Создайте метаданные пакета

Опубликованные внешние плагины должны указывать в качестве исполняемых точек входа собранные файлы JavaScript. Полный контракт точки входа см. в разделе Точки входа SDK.Каждому плагину нужен манифест, даже если у него нет конфигурации. Инструменты среды выполнения должны быть указаны в contracts.tools, чтобы OpenClaw мог определять владельца без упреждающей загрузки среды выполнения каждого плагина. Задавайте activation.onStartup осознанно; в этом примере загрузка происходит при запуске Gateway.Доверенные хостом поверхности плагинов также контролируются манифестом и требуют явного объявления для установленных плагинов: для api.registerAgentToolResultMiddleware(...) каждая целевая среда выполнения должна быть указана в contracts.agentToolResultMiddleware, а для api.registerTrustedToolPolicy(...) каждый идентификатор политики должен быть указан в contracts.trustedToolPolicies. Эти объявления обеспечивают согласованность проверки при установке и регистрации во время выполнения.Все поля манифеста описаны в разделе Манифест плагина.
2

Зарегистрируйте инструмент

index.ts
Используйте definePluginEntry для плагинов, не являющихся плагинами каналов. Вместо этого плагины каналов используют defineChannelPluginEntry из openclaw/plugin-sdk/core.
3

Протестируйте среду выполнения

Для установленного или внешнего плагина проверьте загруженную среду выполнения:
Если плагин регистрирует команду CLI, также выполните эту команду и проверьте результат, например openclaw demo-plugin ping.Для встроенного плагина в этом репозитории OpenClaw обнаруживает пакеты плагинов из исходного кода в рабочей области extensions/*. Запустите ближайший целевой тест:
4

Протестируйте установку пакета

Перед публикацией готового пакета плагина протестируйте тот же способ установки, который получат пользователи. Сначала добавьте этап сборки, укажите для исполняемых точек входа, таких как openclaw.extensions, собранный JavaScript, например ./dist/index.js, и убедитесь, что npm pack включает этот результат dist/. Точки входа из исходного кода TypeScript предназначены только для работы с исходным кодом и локальной разработки.Затем упакуйте плагин и установите tar-архив с помощью npm-pack::
npm-pack: использует управляемый OpenClaw отдельный npm-проект для каждого плагина, поэтому он выявляет ошибки зависимостей среды выполнения, которые могут быть скрыты при тестировании из исходного кода. Он подтверждает структуру пакета и зависимостей, но не официальный статус доверия, связанный с каталогом. Импорты среды выполнения должны находиться в dependencies или optionalDependencies; зависимости, оставленные только в devDependencies, не будут установлены для управляемого проекта среды выполнения.Не используйте установку непосредственно из архива или по пути как окончательное подтверждение официального или привилегированного поведения плагина. Исходный код полезен для локальной отладки, но он не подтверждает тот же путь разрешения зависимостей, что и установка из npm или ClawHub. Если ваш плагин зависит от доверенного статуса официального плагина, добавьте вторую проверку посредством официальной установки из каталога или пути опубликованного пакета, который фиксирует официальный статус доверия. Подробности о корне установки и владельце зависимостей см. в разделе Разрешение зависимостей плагинов.
5

Опубликуйте

Проверьте пакет перед публикацией:
Канонические фрагменты пакетов ClawHub находятся в docs/snippets/plugin-publish/.
6

Установите

Установите опубликованный пакет через ClawHub:

Регистрация инструментов

Инструменты могут быть обязательными или необязательными. Обязательные инструменты всегда доступны, когда плагин включен. Необязательные инструменты требуют явного согласия пользователя, прежде чем OpenClaw загрузит среду выполнения плагина-владельца. Фабрики инструментов получают доверенный контекст среды выполнения, включая deliveryContext, nativeChannelId для активного диалога на платформе, если он доступен, и requesterSenderId.
Каждый инструмент, зарегистрированный с помощью api.registerTool(...), также должен быть объявлен в манифесте плагина:
Пользователи включают их с помощью tools.allow:
Необязательные инструменты определяют, предоставляется ли инструмент модели. Используйте запросы разрешений плагина, если инструмент или хук должен запросить подтверждение после выбора моделью, но до выполнения действия. Используйте необязательные инструменты для побочных эффектов, нестандартных исполняемых файлов или возможностей, которые не должны предоставляться по умолчанию. Имена инструментов не должны конфликтовать с именами инструментов ядра; конфликтующие регистрации пропускаются и отображаются в диагностике плагинов. Некорректные регистрации пропускаются и отображаются аналогичным образом: отсутствующий непустой name, значение execute, не являющееся функцией, или дескриптор инструмента без объекта parameters. Фабрики инструментов получают объект контекста, предоставляемый средой выполнения. Используйте ctx.activeModel, если инструменту требуется регистрировать в журнале, отображать или адаптировать активную модель для текущего хода; он может включать provider, modelId и modelRef. Рассматривайте его как информационные метаданные среды выполнения, а не как границу безопасности от локального оператора, кода установленного плагина или измененной среды выполнения OpenClaw. Для конфиденциальных локальных инструментов по-прежнему следует требовать явного включения плагином или оператором и отказывать в выполнении, если метаданные активной модели отсутствуют или непригодны. Манифест объявляет владельца и обеспечивает обнаружение; при выполнении по-прежнему вызывается актуальная зарегистрированная реализация инструмента. Поддерживайте соответствие toolMetadata.<tool>.optional: true и api.registerTool(..., { optional: true }), чтобы OpenClaw мог не загружать среду выполнения этого плагина, пока инструмент явно не будет добавлен в список разрешенных.

Соглашения об импортах

Импортируйте из специализированных подпутей SDK:
Не импортируйте из устаревшего корневого barrel-файла:
Внутри пакета плагина используйте локальные barrel-файлы, например api.ts и runtime-api.ts, для внутренних импортов. Не импортируйте собственный плагин через путь SDK. Вспомогательные средства конкретного провайдера должны оставаться в пакете провайдера, если только интерфейс не является действительно универсальным. Пользовательские методы RPC Gateway — это расширенная точка входа. Используйте для них префикс, относящийся к конкретному плагину; административные пространства имен ядра, такие как config.*, exec.approvals.*, operator.admin.*, wizard.* и update.*, остаются зарезервированными и разрешаются в operator.admin. Мост openclaw/plugin-sdk/gateway-method-runtime зарезервирован для HTTP-маршрутов плагинов, объявляющих contracts.gatewayMethodDispatch: ["authenticated-request"]. Полную карту импортов см. в разделе Обзор SDK плагинов.

Контрольный список перед отправкой

В package.json указаны правильные метаданные openclaw
Манифест openclaw.plugin.json присутствует и корректен
Точка входа использует defineChannelPluginEntry или definePluginEntry
Все импорты используют специализированные пути plugin-sdk/<subpath>
Внутренние импорты используют локальные модули, а не самоимпорты SDK
Тесты проходят (pnpm test <bundled-plugin-root>/my-plugin/)
Проверка pnpm check проходит (для плагинов внутри репозитория)

Тестирование с бета-версиями

  1. Следите за выпусками openclaw/openclaw (Watch > Releases). Бета-теги выглядят как v2026.3.N-beta.1. Также можно подписаться на @openclaw в X, чтобы получать объявления о выпусках.
  2. Протестируйте свой плагин с бета-тегом сразу после его появления. До стабильного выпуска обычно остаётся всего несколько часов.
  3. После тестирования напишите в ветке своего плагина в канале Discord plugin-forum (discord.gg/clawd), указав либо all good, либо описание возникшей неполадки. Если ветки ещё нет, создайте её.
  4. Если что-то не работает, создайте или обновите задачу с заголовком Beta blocker: <plugin-name> - <summary> и назначьте метку beta-blocker. Добавьте ссылку на задачу в свою ветку.
  5. Откройте PR в main с заголовком fix(<plugin-id>): beta blocker - <summary> и добавьте ссылку на задачу как в PR, так и в свою ветку Discord. Участники не могут назначать метки PR, поэтому заголовок служит сигналом для сопровождающих и автоматизации со стороны PR. Блокирующие проблемы с PR будут исправлены до выпуска; без PR выпуск может состояться несмотря на них.
  6. Отсутствие сообщений означает, что всё работает. Если пропустить это окно, исправление обычно попадёт в следующий цикл.

Дальнейшие действия

Плагины каналов

Создайте плагин канала обмена сообщениями

Плагины провайдеров

Создайте плагин провайдера моделей

Плагины бэкендов CLI

Зарегистрируйте локальный бэкенд CLI для ИИ

Обзор SDK

Справочник по карте импорта и API регистрации

Вспомогательные средства среды выполнения

TTS, поиск и субагент через api.runtime

Тестирование

Утилиты и шаблоны тестирования

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

Полный справочник по схеме манифеста

Связанные материалы