Руководство по развёртыванию 2026-05-06 · 10 мин

2026: плагины OpenClaw — fail-closed и обязательный manifest на удалённом физическом Mac‑шлюзе 7×24: аудит openclaw doctor, переключатели ACP dispatch и контролируемый откат (grep + FAQ)

Платформенным и security‑инженерам, которые держат безголовый удалённый Mac как неконтролируемый шлюз, быстро становится ясно: каждый плагин — это цепочка поставок. Здесь — связка обязательного manifest (без валидного manifest — не грузим) и fail-closed (ошибка валидации запрещает исполнение вместо тихого allow). Вы получите две матрицы решений, семишаговый runbook отката, готовые grep для приёмки и FAQ. Для выравнивания резолверов на том же классе узлов см. staging и split-horizon DNS на мультирегиональном удалённом Mac; про корпоративный egress и долгие сессии на шлюзе — OpenClaw + Feishu/Lark/Teams и egress на удалённом Mac (фрагмент openclaw.json + FAQ).

2026: OpenClaw fail-closed, manifest и ACP dispatch на удалённом Mac‑шлюзе

Введение и границы

На безголовом Mac в удалённой стойке плагины — часть поверхности атаки. В 2026 году нормой становится обязательный manifest (нет соответствующего manifest — не загружаем) плюс fail-closed (сбой валидации запрещает исполнение вместо тихого разрешения).

Этот материал переводит эту постуру в пункты чек-листа, подкреплённые doctor, и в grep, которые можно приложить к заявке на изменение; ACP (Agent Client Protocol) dispatch трактуется как главный рубильник для вопроса кто может попасть в планировщик плагинов. Держите снимки парой «конфиг + дерево плагинов», чтобы RTO отката укладывался в окно обслуживания. Вне области: контракты к вендорским моделям; предполагается, что launchd закрепляет пользователя сервиса и WorkingDirectory. Для базовой установки агентов 7×24 см. также OpenClaw v2026.4: руководство по установке 24/7 AI‑агентов на ZoneMac.

Три класса боли

  1. Ограничение: неявные полномочия и «запустилось — в прод». Возможности вроде fs, network или subprocess, не попавшие в manifest, в режиме fail-open часто разрешаются молча — аудит не докажет, что именно было дозволено.
  2. Скрытая стоимость: doctor зелёный ≠ политика реально включена. openclaw doctor может закрывать рантайм и порты, тогда как hot reload так и не подхватил новые флаги enforcement manifest — снаружи остаётся legacy‑поведение.
  3. Стабильность и аудит: откат без парных снимков — фикция. Агрессивный fail-closed ломает легитимную автоматизацию ночью; без снимков конфигурации и бандла плагина вы окажетесь с правкой JSON под дежурство, нарушая SLO 7×24.

Матрицы fail-closed × manifest

Первая таблица отвечает на вопрос «насколько жёстко». Вторая — на сигналы изменений и проверки.

Среда Manifest Fail-closed ACP dispatch
Продакшен, шлюз 7×24 Обязателен Вкл. Только allow list clientId / workspace
Staging интеграция Обязателен Вкл. (shadow на плагин допустим) Ослабление по тенанту команды + полный JSONL
Ноутбук разработчика Обязателен (рекоменд.), зеркало прода По желанию выкл. для скорости Локально all-open или loopback
Сигнал изменения Рекомендуемое действие Доп. приёмка
Новый плагин или крупное обновление Канареечный узел + двойной diff manifest doctor + grep на объявленную версию схемы
Больше внешних ACP / агент‑клиентов Ужесточить allow list и rate limits Трассировка plugin spans по requestId
Всплеск ошибок с denied в логах Сначала shadow-count, затем решение об откате Diff пятиминутных окон до/после отката

Чек-лист аудита openclaw doctor

Считайте doctor доказательством того, что политика реально загружена — отмечайте каждый пункт в тикете (ключи сопоставляйте с openclaw.json или переменными окружения по документации вашей поставки).

  • Рантайм и PATH: соответствуют пользователю launchd; which openclaw совпадает с бинарником из plist.
  • Разрешение manifest: печатает эффективные корни плагинов; отклоняет каталоги без manifest при включённом enforcement.
  • Флаги fail-closed: doctor печатает boolean и файл-источник; WARN для релиза — блокер.
  • ACP dispatch: состояние переключателя и мощность allow list; пустой allow list при включённом dispatch должен предупреждать, что ни один клиент не войдёт.
  • Внешнее здоровье: пара curl на localhost и /ready (если есть), чтобы не получить «самопроверка зелёная, reverse proxy красный».

Переключатели ACP dispatch

ACP dispatch здесь означает, могут ли запросы от агент‑клиентов (IDE, CLI, внешние оркестраторы) попасть в планировщик плагинов. При fail-closed порядок операций: сначала валидация набора плагинов по manifest, затем dispatch как охрана входной двери, чтобы скомпрометированный клиент не прыгнул сразу в high-risk hook.

Иллюстративный JSON (замените ключи на схему вашего релиза перед продом):

{
  "plugins": {
    "requireManifest": true,
    "failClosed": true,
    "manifestSchemaVersion": "2026-05"
  },
  "acp": {
    "dispatchEnabled": true,
    "allowedClientIds": ["ci-runner-prod", "vscode-workspace-ops"],
    "denyByDefault": true
  }
}

Согласуйте allowedClientIds с внутренним OAuth или субъектами mTLS и логируйте декартово произведение clientId × pluginId в JSONL для криминалистики.

Фрагменты grep для приёмки

Запускайте из архива или живого workspace (пути подставьте свои):

# Явные флаги fail-closed / requireManifest
grep -RniE 'failClosed|fail_closed|requireManifest|require_manifest' \
  ~/.config/openclaw ./openclaw.json 2>/dev/null

# У каждого каталога плагина должен быть manifest (нет = не грузим)
find "$OPENCLAW_PLUGIN_ROOT" -maxdepth 2 -type f \( -name 'manifest.json' -o -name 'plugin.yaml' \) | wc -l

# В проде allow list ACP dispatch не должен быть пустым
grep -Rni 'dispatchEnabled|allowedClientIds|denyByDefault' ~/.config/openclaw ./openclaw.json 2>/dev/null

Если первый grep ничего не находит, вы, вероятно, всё ещё на неявном fail-open — не подписывайте прод «на память».

Семь шагов контролируемого отката

  1. Заморозка: объявите обслуживание; приостановите cron, расширяющий поверхность вызовов.
  2. Снимок: tar openclaw.json, деревьев плагинов, plist launchd и stdout doctor.
  3. Обязательные manifest: reload, проверка grep, счётчики «отказ в загрузке».
  4. Fail-closed: единые коды ошибок для необъявленных capabilities; пятиминутный базовый JSONL.
  5. Ужесточение ACP dispatch: сначала shadow (только лог), затем deny-by-default.
  6. Триггер отката: при нарушении SLO восстановите парные снимки, launchctl kickstart, повторите doctor.
  7. RCA: обновите grep-чек-лист и тикет; назначьте следующую канарейку.

Ориентиры для сносок

  • Окно наблюдения: смотрите минимум пятиминутное скользящее окно после правок политики прежде чем решать «оставить / откатить» — пики при старте не инцидент.
  • Хранение снимков: держите в проде три восстановимые ревизии конфигурации, каждая с checksum tarball плагинов.
  • Аудит: полный вывод doctor и захваты grep храните с тикетом ≥30 дней под типичные внутренние выборочные проверки комплаенса.

FAQ

В manifest есть capabilities — откуда «undeclared»?

Сравните разрешённый путь, который печатает doctor, с файлом, который вы правили; проверьте версию схемы и регистр полей. При необходимости прогоните тот же бандл на staging с полными логами загрузки.

После выключения dispatch старые сессии всё ещё дергают плагины?

Зависит от очередей и реализации: сделайте reload, при необходимости сбросьте неподтверждённую работу, если SLO позволяет, затем read-only smoke по критическим путям.

Совместимы ли fail-closed и shadow mode?

Да — shadow увеличивает счётчики «отказали бы» без смены HTTP статуса; переводите в жёсткий deny, когда метрики стабилизируются.

Китайская версия: OpenClaw 插件 fail-closed 与 manifest(简体).

Итог: почему Mac mini подходит под эту нагрузку

Управление плагинами переносит доверие с «устной традиции» на машинно проверяемую политику: manifest ограничивает capabilities, fail-closed задаёт поведение при сбое, ACP dispatch сужает вход, а doctor с grep даёт цепочку доказательств, которую ждут аудиторы.

На macOS это стыкуется с launchd, Unified Logging, Gatekeeper и SIP. Apple Silicon Mac mini M4 в простое держится порядка 4 Вт — удобно для шлюзов 7×24 и побочных проб; по сравнению с универсальными mini‑ПК за те же деньги длинные сессии OpenClaw, экспортёров здоровья и лёгкого CI runner на одной удалённой физической машине обычно ведут себя ровнее.

Если нужен выделенный хостинговый узел вместо своей стойки, Mac mini M4 в 2026 году остаётся одним из лучших стартов по цене/качеству — арендуйте удалённый физический Mac и превратите enforcement manifest и откат в повторяемую процедуру.

Узел под политику плагинов

Нужен выделенный удалённый Mac под OpenClaw и жёсткие manifest?

Облачные Mac mini для шлюзов 7×24, усиления manifest и аудируемых откатов на ZoneMac.

По требованию Быстрый старт Надёжно
Облачная аренда macOS Ограниченное предложение по низкой цене
Получить сейчас