clawhub:, когда вам нужно
разрешение через ClawHub.
Требования
- Используйте Node 22.19 или новее и менеджер пакетов, например
npmилиpnpm. - Будьте знакомы с TypeScript ESM-модулями.
- Для работы над встроенным Plugin внутри репозитория клонируйте репозиторий и
выполните
pnpm install. Разработка Plugin из исходного checkout поддерживает только pnpm, потому что OpenClaw загружает встроенные Plugins из workspace-пакетовextensions/*.
Выберите форму Plugin
Plugin канала
Подключите OpenClaw к платформе обмена сообщениями.
Plugin поставщика
Добавьте поставщика моделей, медиа, поиска, fetch, речи или realtime.
Plugin CLI-бэкенда
Запускайте локальный AI CLI через fallback моделей OpenClaw.
Plugin инструментов
Регистрируйте агентские инструменты.
Быстрый старт
Создайте минимальный Plugin инструментов, зарегистрировав один обязательный агентский инструмент. Это самая короткая полезная форма Plugin, которая показывает пакет, манифест, точку входа и локальное подтверждение.Создайте метаданные пакета
contracts.tools, чтобы OpenClaw
мог обнаруживать владельца без предварительной загрузки runtime каждого
Plugin. Задавайте activation.onStartup осознанно. Этот пример запускается
при запуске Gateway.Поверхности Plugin, доверенные host, также ограничиваются манифестом и
требуют явного включения для установленных Plugins. Если установленный
Plugin регистрирует api.registerAgentToolResultMiddleware(...), объявите
каждый целевой runtime в contracts.agentToolResultMiddleware. Если он
регистрирует api.registerTrustedToolPolicy(...), объявите каждый id
политики в contracts.trustedToolPolicies. Эти объявления синхронизируют
проверку при установке и регистрацию runtime.Все поля манифеста см. в манифесте Plugin.Зарегистрируйте инструмент
index.ts
definePluginEntry для Plugins, не являющихся каналами.
Plugins каналов используют defineChannelPluginEntry.Проверьте runtime
Для установленного или внешнего Plugin проверьте загруженный runtime:Если Plugin регистрирует CLI-команду, также запустите эту команду.
Например, demo-команда должна иметь подтверждение выполнения, такое как
openclaw demo-plugin ping.Для встроенного Plugin в этом репозитории OpenClaw обнаруживает пакеты
Plugin из исходного checkout в workspace extensions/*. Запустите ближайший
целевой тест:Опубликуйте
Проверьте пакет перед публикацией:Канонические фрагменты ClawHub находятся в
docs/snippets/plugin-publish/.Регистрация инструментов
Инструменты могут быть обязательными или опциональными. Обязательные инструменты всегда доступны, когда Plugin включен. Опциональные инструменты требуют явного согласия пользователя.api.registerTool(...), также
должен быть объявлен в манифесте Plugin:
tools.allow:
parameters, пропускаются и отображаются
так же. Зарегистрированные инструменты являются типизированными функциями,
которые модель может вызывать после прохождения проверок политик и allowlist.
Фабрики инструментов получают объект контекста, предоставленный runtime.
Используйте ctx.activeModel, когда инструменту нужно логировать, отображать
или адаптироваться к активной модели для текущего хода. Объект может включать
provider, modelId и modelRef. Рассматривайте его как информационные
runtime-метаданные, а не как границу безопасности против локального оператора,
кода установленного Plugin или измененного runtime OpenClaw. Чувствительные
локальные инструменты всё равно должны требовать явного согласия Plugin или
оператора и завершаться закрытым отказом, когда метаданные активной модели
отсутствуют или неподходят.
Манифест объявляет владение и обнаружение; выполнение всё равно вызывает
живую зарегистрированную реализацию инструмента. Держите
toolMetadata.<tool>.optional: true согласованным с
api.registerTool(..., { optional: true }), чтобы OpenClaw мог не загружать
runtime этого Plugin, пока инструмент не будет явно добавлен в allowlist.
Соглашения об импорте
Импортируйте из специализированных подпутей SDK:api.ts и runtime-api.ts, для внутренних импортов. Не импортируйте собственный
Plugin через путь SDK. Хелперы, специфичные для поставщика, должны оставаться в
пакете поставщика, если граница не является действительно общей.
Пользовательские методы Gateway RPC являются продвинутой точкой входа.
Держите их на префиксе, специфичном для Plugin; core-пространства имен
администрирования, такие как config.*, exec.approvals.*,
operator.admin.*, wizard.* и update.*, остаются зарезервированными и
разрешаются в operator.admin. Мост
openclaw/plugin-sdk/gateway-method-runtime зарезервирован для HTTP-маршрутов
Plugin, которые объявляют contracts.gatewayMethodDispatch: ["authenticated-request"].
Полную карту импортов см. в обзоре Plugin SDK.
Чеклист перед отправкой
package.json содержит корректные метаданные
openclawМанифест openclaw.plugin.json присутствует и валиден
Точка входа использует
defineChannelPluginEntry или definePluginEntryВсе импорты используют специализированные пути
plugin-sdk/<subpath>Внутренние импорты используют локальные модули, а не self-imports SDK
Тесты проходят (
pnpm test -- <bundled-plugin-root>/my-plugin/)pnpm check проходит (Plugins внутри репозитория)Тестирование на beta-релизах
- Следите за тегами релизов GitHub в openclaw/openclaw и подпишитесь через
Watch>Releases. Beta-теги выглядят какv2026.3.N-beta.1. Также можно включить уведомления для официального X-аккаунта OpenClaw @openclaw, чтобы получать объявления о релизах. - Протестируйте свой Plugin на beta-теге сразу после его появления. Окно до stable обычно составляет всего несколько часов.
- После тестирования напишите в ветке своего Plugin в Discord-канале
plugin-forumлибоall good, либо что сломалось. Если у вас еще нет ветки, создайте ее. - Если что-то сломалось, откройте или обновите issue с заголовком
Beta blocker: <plugin-name> - <summary>и примените labelbeta-blocker. Добавьте ссылку на issue в свою ветку. - Откройте PR в
mainс заголовкомfix(<plugin-id>): beta blocker - <summary>и свяжите issue как в PR, так и в вашей Discord-ветке. Contributors не могут назначать labels PR, поэтому заголовок является сигналом на стороне PR для maintainers и автоматизации. Blockers с PR будут смержены; blockers без PR могут быть выпущены всё равно. Maintainers следят за этими ветками во время beta-тестирования. - Молчание означает зеленый статус. Если вы пропустите окно, ваш fix, скорее всего, попадет в следующий цикл.
Следующие шаги
Plugins каналов
Создайте Plugin канала обмена сообщениями
Plugins поставщиков
Создайте Plugin поставщика моделей
Plugins CLI-бэкендов
Зарегистрируйте локальный AI CLI-бэкенд
Обзор SDK
Карта импортов и справочник API регистрации
Runtime-хелперы
TTS, поиск, subagent через api.runtime
Тестирование
Тестовые утилиты и паттерны
Манифест Plugin
Полный справочник схемы манифеста