2026 OpenClaw ClawHub навыки workspace minGatewayVersion удалённый Mac шлюз аудит

В 2026 году команды путают три поверхности: команду openclaw skills, которая отражает граф навыков работающего шлюза, CLI ClawHub как клиент реестра и записи plugins.entries, подгружающие код при старте. У каждого слоя свои корни на диске, свои переменные окружения и свои заголовки в выводе doctor. Когда пути расходятся — навык оказался в пользовательском кэше, а демон читает системное дерево — появляются «навык есть, а бинарника нет» без однострочного лечения. Ниже — воспроизводимый порядок: выровнять корни установки, зафиксировать приоритет workspace над глобальными импортами, удовлетворить minGatewayVersion до трогания каналов, затем отработать сценарий с ошибочным семейством плагинов, чтобы постмортем опирался на артефакты, а не на слухи. Базовую нарезку openclaw.json, ClawHub и doctor см. 2026: конфигурация OpenClaw и минимальные права — импорт навыков ClawHub в openclaw.json, обрезка plugins.entries, границы секретов и горячая перезагрузка; воспроизводимый разбор от onboard до doctor и fix --all; для сопоставления контуров Kubernetes и шлюза — материал 2026: OpenClaw на Kubernetes от нуля до продакшена — сравнение Helm и сценариев kubectl, пробы и ротация Secret, воспроизводимый разбор CrashLoopBackOff.

1. openclaw skills и ClawHub CLI: два установщика, один контракт

Считайте openclaw skills авторитетным представлением того, что шлюз реально разрешит: объявленные навыки, переопределения и битые симлинки, которые демон пропустит. CLI ClawHub — это клиент реестра: скачивает архивы, проверяет подписи или дайджесты и раскладывает файлы в собственной схеме кэша. Типичная ошибка — инженер запускает ClawHub под своим пользователем, а launchd поднимает OpenClaw под сервисной учёткой: CLI пишет «установлено», а у сервисного HOME битов нет. Исправление — один корень установки на хост (задокументируйте абсолютный путь), одинаковые PATH и токены реестра в интерактивной оболочке и в unit-файлах, печать whoami, echo $HOME и разрешённого пути к openclaw.json в начале каждого CI job, который трогает навыки.

Золотое правило: если openclaw skills не показывает навык, шлюз ему не доверяет — независимо от того, что напечатал ClawHub CLI.

2. Приоритет навыков в workspace: затенение, слияния и эффект «работает только в репозитории A»

Локальные каталоги навыков в workspace нужны, чтобы поставлять закреплённое в Git поведение без публикации в ClawHub. Обычно порядок разрешения отдаёт приоритет копии в workspace, затем пользовательской области, затем машинным импортам — но на стыке минорных версий остаются краевые случаи, когда частичное слияние оставило устаревшие метаданные в пользовательском дереве. При конфликте копий берите манифест workspace в репозитории как источник истины, удаляйте осиротевшие копии в пользовательском кэше после резервной копии и перезапускайте шлюз, чтобы in-memory реестры перечитались. В тикет прикладывайте архив обоих деревьев; сначала сравнивайте только манифесты, чтобы не утянуть секреты из примеров .env.

Зафиксируйте в README репозитория ожидаемый относительный путь к каталогу навыков и запретите «тихие» копии в домашнем каталоге через pre-commit или короткий скрипт в CI: если обнаружен дубликат имени пакета вне workspace, job падает с явным сообщением. Это дешевле расследований, где один разработчик случайно положил навык в ~/Library или в общий том NFS, а остальная команда видит другой порядок разрешения в зависимости от порядка монтирования.

3. minGatewayVersion: быстрый отказ до каналов и плагинов

Поле minGatewayVersion задаёт контракт «навык или плагин ожидает API не раньше релиза X». Когда бинарник шлюза отстаёт, старт должен завершаться сразу с semver-сообщением вместо частичной загрузки маршрутов; смешанные установки (Homebrew плюс глобальный npm или Docker с bind-mount старого бинарника) дают ситуацию «CLI новее, демон старше». Сверяйте один и тот же путь к openclaw version, который исполняет unit-файл, закрепите путь в runbook и поднимайте образы Gateway или бутылки в том же изменении, что и повышение minGatewayVersion. Не поднимайте поле в пятницу без тега отката; храните предыдущий digest образа Compose в инструкции дежурства.

4. Воспроизводимая диагностика «чужой» семьи плагинов

Семейства плагинов группируют HTTP-маршруты, прослойки авторизации и опциональные нативные помощники. Частая ошибка установки — slug community-форка, зеркалирующий апстрим, или мажорная ветка, где префиксы маршрутов сдвинулись в линии 2026.4.x. Сценарий воспроизведения: снимок openclaw.json, установка «не той» семьи на одноразовой ВМ, doctor, фиксация коллизий слушателей и предупреждений о дублях маршрутов, затем замена только записи семейства при неизменной версии шлюза — если сбои исчезли, причинность доказана. После учений откатите учётные данные и секреты вебхуков, чтобы журналы аудита оставались честными.

  • Один путь к бинарнику шлюза в launchd или Compose; никаких сюрпризов which openclaw.
  • minGatewayVersion ≤ развёрнутого semver; поднимайте оба вместе при новых транспортах.
  • plugins.entries перечисляет явные пути; без glob, который может подтянуть две семьи.

5. Удалённый высокопамятный Mac: закрепление версий и цикл безопасного аудита

Держите постоянный шлюз на выделенном Mac с большим ОЗУ, чтобы всплески Xcode и self-hosted runner на других хостах не отбирали пропускную способность памяти. Закрепите Node, пакет OpenClaw и дайджесты навыков ClawHub в lockfile рядом с openclaw.json; выводите в прод только после «зелёного» doctor на staging-launchd-plist, идентичном продакшену кроме секретов. Каденция аудита: еженедельный экспорт эффективной конфигурации только для чтения (токены редактируйте), сравнение plugins.entries с прошлой недельной allowlist, проверка полей происхождения ClawHub и приложение логов к тикету изменения. Ротируйте deploy-ключи в том же ритме, что и bump навыков, чтобы окно компрометации оставалось коротким.

Дополнительно ведите журнал «ожидаемых» версий шлюза и навыков рядом с тегом Git инфраструктуры: при расхождении между lockfile и фактическим бинарником дежурный сразу видит, что обновление ОС или brew upgrade обошло pin. Для удалённой ноды храните checksum образа или pkg и ссылку на артефакт CI, который его собрал — это ускоряет откат и снимает споры о том, какой именно бинарник крутился в момент инцидента.

Почему для такого контрольного контура уместны macOS и класс Mac mini

Шлюзовым процессам важнее стабильная память, тихие термалы и предсказуемый диск, чем гонка за максимальным числом ядер. Mac mini на Apple Silicon сочетает быстрый NVMe с унифицированной памятью для параллельных MCP и HTTP-обработчиков, а macOS даёт launchd, подпись кода и предсказуемую политику сна без самосборных Linux-образов. Gatekeeper, SIP и FileVault заметно снижают риск для сервера без постоянного присмотра по сравнению с разрозненными ПК, а энергопотребление в простое остаётся низким для круглогодичной службы. Если нужен высокопамятный удалённый шлюз без закупки стойки, откройте главную страницу Macstripe, сопоставьте регион и объём ОЗУ с профилем OpenClaw — Mac mini M4 удобен как якорь для описанной схемы закрепления и аудита.

Так вы связываете цепочку ClawHub и плагинов с железом, которое не требует ежедневного ручного ухода и даёт измеримый I/O для демонов и сокетов. Если хотите зафиксировать этот runbook на компактной тихой машине с разумной совокупной стоимостью владения, Mac mini M4 — сильная стартовая точка; оформите выделенную облачную Mac-ноду на Macstripe и вынесите шлюз из конкуренции с очередью CI.