Команды с OpenClaw на шлюзе macOS в 2026 уже настроили маршрутизацию моделей и 429—но один неверно классифицированный инструмент всё равно может удалить репозитории, постить в клиентский Slack или запускать shell с прод-секретами. Одобрение выполнения инструментов и gates human-in-the-loop приостанавливают destructive вызовы до явного согласия человека, с таймаутами и аудитом. В этом руководстве — классификация инструментов в ~/.openclaw/openclaw.json и учения hold на staging-порту до promotion LaunchAgent. Читайте вместе с диагностикой doctor, JSON и профилями окружения, профилями staging/production, апстрим circuit breaker и отказом модели (для деградации провайдера, не вместо одобрения).
Вы получите модель угроз, шаблон матрицы политик, ограничения (120 с макс. ожидание, deny-on-timeout, отдельный staging-канал) и чеклист rollout на арендованном Apple Silicon Mac mini около $16.9 в день (цена MacHTML).
Зачем нужно одобрение выполнения
Большие языковые модели убедительны, но не несут ответственности. Если шлюз открывает write, shell или browser, один галлюцинированный путь может удалить workspace, утечь API-ключи из ~/.openclaw/.env или постить в клиентский Slack. Gates одобрения вставляют решение человека до необратимых эффектов; при таймауте — явный deny, чтобы боты не висели молча.
Одобрение — не анти-автоматизация, а ступенчатый контроль риска: read-only автоматически, destructive уровни — tap в Slack, Telegram или UI macOS. Уровни фиксируйте в матрице, которую on-call прочитает в 3 ночи без исходников.
Модель угроз для agent tools
Начните с того, что шлюз реально делает на macOS: читает пути пользователя LaunchAgent, пишет в git, shell с переменными окружения, браузер с cookies. Угрозы: prompt-injection через HTML, скомпрометированные webhooks, вставка прод .env в staging-чаты.
Каждому инструменту — радиус поражения: read (утечка), write (целостность), shell (хост), browser (сессия). read с листингом home без allow-list — уровень write.
Матрица по каналу и инструменту
| Класс | По умолчанию | Заметки |
|---|---|---|
| read / grep | Авто | Без allow-list — переклассифицировать |
| write / patch | Человек | Diff в треде Slack |
| shell | Всегда одобрение | В production без авто |
| browser | Одобрение + домены | Блок file:// и внутренних IP |
| DM / приват | Строже #general | Высокая чувствительность |
Матрицу публикуйте рядом с runbook. Запрос «auto write ради скорости» — только с именованным владельцем и датой снятия, иначе каждый релиз стирает gate.
Скелет одобрения openclaw.json
Политика одобрения в ~/.openclaw/openclaw.json рядом с маршрутизацией моделей, не в HTML в git. Ключи в ~/.openclaw/.env, chmod 600. Структура: классы инструментов, overrides каналов, таймауты.
{
"tools": {
"approval": {
"default": "auto",
"classes": {
"read": "auto",
"write": "human",
"shell": "human",
"browser": "human"
},
"pendingTimeoutMs": 120000,
"onTimeout": "deny"
},
"channels": {
"slack:#ops-alerts": { "write": "auto" },
"slack:#customer-support": { "shell": "deny" }
}
}
}
Имена полей меняются между версиями OpenClaw — diff release notes перед деплоем. Затем openclaw doctor и hold по каждому классу в staging.
Staging без риска для production
Привяжите учения к staging-порту шлюза и профилю без прод-секретов. Фиксированные промпты на shell и write; карта одобрения до согласия. Проверьте deny и таймаут — «отклонено через 120 с», не бесконечное «думает…»
Согласуйте с профилями LaunchAgent staging/production. Не тренируйте destructive одобрения на клиентских БД с ноутбука, который подписывает прод plists.
Проверки doctor и аудит-логи
После каждого изменения политики — openclaw doctor --json в тикет. Middleware здоров, webhooks доступны, нет orphan pending после крашей. correlation id на approve/deny.
Несовпадение регистрации инструментов — сначала JSON, потом LaunchAgent; одобрение несуществующего инструмента учит слепым кликам.
Чеклист production rollout
- Отпечатки
openclaw.json(без секретов) в git-ignore. - Классифицировать каждый инструмент; обновить матрицу в wiki.
- Staging holds для write, shell, browser со скриншотами.
- Человеческое одобрение в production, deny-on-timeout 120 с.
- Мониторить глубину pending; алерт при > 5 одновременных holds.
- Rollback: JSON +
launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway.
FAQ
Read-only без одобрения?
Да с allow-list путей; широкие листинги — повысить уровень.
Одобрение замедляет Slack?
Батч на ход; 120 с с явным deny.
Тест без production?
Staging-профили и синтетические вызовы — без прод-секретов на ноутбуке.
Аренда Apple Silicon Mac mini через MacHTML — те же WebKit, Keychain и Node, что у руководства, не Linux-контейнер вместо macOS. SSH для логов, VNC для GUI-кнопок. Idle часто 6–12 Вт; неделя HITL дешевле одного shell-инцидента с веткой релиза.
Цена около $16.9 в день. После учений — стоп инстанса; матрица остаётся в документации, без 36 месяцев CapEx на железо.
Учения по одобрению инструментов OpenClaw на реальном macOS
Арендуйте облачный Mac mini, чтобы проверить HITL-gates, таймауты и doctor до promotion политики одобрения в production LaunchAgents.