Доставка 1–5 мин

Выделенный облачный Mac
с песочницей OpenClaw

$21.8 / день · физическая машина
Настроить облачный Mac
Изоляция песочницы Аудит операций Zero-trust доступ Apple M4

OpenClaw за 5 минут: изолированная среда AI Agent на облачном Mac

Запуск AI Agent прямо на «голом» macOS даёт те же границы прав, что и ваш вход в терминал — Agent может читать всё, что доступно вам. OpenClaw без потери мощности M4 задаёт политику доступа для каждой задачи Agent: превышение прав блокируется, всё записывается в журнал аудита. Эта инструкция следует порядку реальных действий — от переключателя в консоли до первой записи аудита; цель — за пять минут пройти полный цикл read-only песочницы.

Потребности Agent и человека в правах доступа принципиально различаются

Человеку с SSH-доступом понятно, какие ресурсы нужны; у AI Agent с теми же правами картина иная. Фреймворки Agent (LangGraph, AutoGen, Cursor Background Agent и др.) при вызове инструментов по умолчанию наследуют все права пользователя ОС. Agent с задачей «найти все TODO в репозитории и оформить Markdown-таблицу» для выполнения нужно только читать /workspace и записать файл, на деле он одновременно может обращаться к ~/Library/Keychains, читать каталог SSH-ключей или отправлять данные через curl. Agent сам этого не сделает, но встроенный shell-инструмент фреймворка или внешний плагин может — и вы не обязательно будете у экрана.

Архитектура Apple M4 делает этот вопрос важнее, а не второстепеннее. Neural Engine 38 TOPS резко снижает стоимость локального inference — Agent на Mac запускаются на порядок чаще, чем год назад, и окно риска растёт пропорционально. Идея OpenClaw: Agent не нужна изоляция Docker (теряется полный Xcode toolchain), и не нужна пересборка VM после каждой задачи (слишком дорого) — на реальном macOS движок политик перехватывает превышения на уровне системных вызовов; файл политики — обычный YAML, версионируется в Git вместе с кодом.

Тестовая среда статьи

Железо: Mac mini M4 · 10-ядерный CPU · 16 GB unified memory · 256 GB NVMe SSD · выделенная полоса 1 Gbps (узел VPSRox Сингапур).
Система: macOS 15 Sequoia. OpenClaw CLI 0.9.x, формат политики v2.
Демо-задача: в песочнице клонировать публичный GitHub-репозиторий → rg для TODO → Markdown-отчёт; только чтение/запись /workspace, без исходящей сети.
Всё через SSH, VNC не требуется.

Перед началом: четыре обязательных предварительных условия

Для локальной системы нет требований — ноутбук на Windows, Linux или macOS с SSH-клиентом достаточно. Однако все четыре пункта ниже должны быть готовы до начала, иначе процесс остановится на одном из шагов.

1 шт. Доставленный экземпляр
VPSRox M4
SSH Учётные данные и порт
из консоли
Token OpenClaw
instance-token
YAML Хотя бы один файл политики
(шаблон в разделе 4)

Экземпляр M4: ещё не арендовали? Перейдите на страницу заказа, выберите узел и срок; после оплаты экземпляр готов за 1–5 мин, учётные данные SSH появятся в консоли в разделе «Доступ». Пять узлов (Сингапур, Токио, Сеул, Гонконг, US East) имеют одинаковые характеристики и цены — выбирайте ближе к целевой сети по задержке.

instance-token: создаётся при первом включении OpenClaw на странице «Безопасность и песочница» в консоли, показывается один раз; сразу сохраните в корпоративное хранилище секретов (1Password, Bitwarden и т. п.). После ухода со страницы исходный token недоступен — можно только инициировать ротацию на той же странице (старый token сразу недействителен).

Включение OpenClaw в консоли

OpenClaw не включён по умолчанию — каждый экземпляр управляется отдельно, чтобы сценарии без аудита не несли лишних накладных расходов. Путь в консоли короткий: цель — увидеть на экране статус «Включено» перед следующим шагом.

  1. 01
    Открыть страницу экземпляра

    Войдите в консоль VPSRox и нажмите имя целевого экземпляра для перехода на страницу деталей. На вкладке «Безопасность и песочница» найдите переключатель OpenClaw.

  2. 02
    Включить и сохранить instance-token

    Нажмите переключатель включения; появится instance-token (формат oct-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Скопируйте token в хранилище секретов до закрытия окна, подтвердите сохранение и нажмите «Я сохранил, продолжить».

  3. 03
    Убедиться, что статус «Включено»

    После закрытия окна в разделе OpenClaw должен отображаться зелёный значок «Включено». Если через 30 секунд всё ещё «Включение…», обновите страницу и проверьте снова. Это единственный шаг, который выполняется в браузере.

Установка CLI и три проверки работоспособности

После входа по SSH установите OpenClaw CLI одной командой. Скрипт установки автоматически определяет версию macOS и архитектуру CPU; на M4 установка обычно занимает не более 30 секунд.

Установка и аутентификация (в SSH-сессии)

curl -fsSL https://api.vpsrox.com/openclaw/install.sh | bash

openclaw auth login --token <instance-token>

openclaw status

openclaw status должен вернуть состояние трёх компонентов; все три должны быть healthy, чтобы продолжить:

Компонент Назначение Ожидаемое состояние
Policy Engine Разбор YAML-политики, принятие решений до системных вызовов healthy
Sandbox Runtime Управление жизненным циклом песочницы, изоляцией процессов и сопоставлением файлов healthy
Audit Bus Асинхронная запись всех событий решений в постоянный журнал без блокировки основного потока healthy

Три зелёных статуса — необходимое, но не достаточное условие: Policy Engine healthy лишь означает, что процесс работает, а не что YAML синтаксически верен. Проверка политики — отдельный следующий шаг. Если что-то degraded или unavailable, выполните openclaw doctor — частая причина: расширение ядра ждёт одобрения пользователя; на экземпляре откройте «Системные настройки → Конфиденциальность и безопасность» (через SSH это не сделать — нужен краткий вход по VNC).

YAML с минимальными правами: построчный разбор полей политики

Файл политики определяет, что Agent может и не может в песочнице. Принцип — сначала строго, потом ослаблять: первый YAML открывает только минимальный набор путей для задачи, смотрите deny в журнале аудита, затем постепенно расширяйте по необходимости — не начинайте с широкой политики и не ужимайте потом. Ниже шаблон read-only для сценария «клонировать публичный репозиторий → статический анализ → отчёт»; сохраните его в ~/policies/quickstart-readonly.yaml.

quickstart-readonly.yaml — построчные комментарии

apiVersion: openclaw.vpsrox.com/v2

kind: SandboxPolicy

metadata:

  name: quickstart-readonly

spec:

  filesystem:

    allow:

      - path: /workspace

        access: [read, write] # Agent writes scan report here

    deny:

      - path: "**/Keychains/**" # block signing certificates

      - path: "**/.ssh/**" # block private keys

      - path: "**/Library/Cookies/**" # block browser session data

  process:

    allow: [git, rg, python3, zsh, bash]

  network:

    egress: deny-all # no outbound in quickstart mode

Несколько решений в дизайне. filesystem.deny важнее allow: даже при полном read/write на /workspace пути из списка deny всё равно блокируются — порядок не меняет приоритет, сначала deny, потом allow. process.allow — белый список имён процессов: запускаются только перечисленные исполняемые файлы; если в toolchain Agent есть node или npm, добавьте их, иначе будет E_POLICY_DENY: process. network.egress: deny-all блокирует даже DNS — в первой демонстрации это намеренно, чтобы увидеть deny в журнале аудита и убедиться, что движок политик работает.

После написания YAML выполните проверку, чтобы обнаружить синтаксические ошибки до создания песочницы:

Проверка файла политики

openclaw policy validate -f ~/policies/quickstart-readonly.yaml

Ожидаемый вывод: policy valid (0 warnings). При конфликте путей или опечатке в имени поля validate укажет конкретный номер строки.

Первый Agent-задача: создание песочницы и выполнение

Перед интеграцией с LangGraph или собственным фреймворком рекомендуем прогнать полный цикл на детерминированном shell-скрипте. Преимущество: поведение скрипта предсказуемо, вы чётко разделяете «решения политики» и «логику Agent», а при ошибке понимаете, что менять — политику или код Agent.

  1. 01
    Создать песочницу

    openclaw sandbox create --name quickstart --policy ~/policies/quickstart-readonly.yaml
    При успехе возвращаются ID песочницы и статус ready. Создание идемпотентно — повтор с тем же именем сообщит, что уже существует, без ошибки.

  2. 02
    В другом терминале — потоковый журнал аудита

    openclaw audit tail --sandbox quickstart --follow
    Не закрывайте это окно — нужно одновременно наблюдать выполнение Agent и записи аудита. Каждое событие решения обычно появляется через 50–200 ms после действия Agent.

  3. 03
    В первом терминале запустить скрипт входа Agent

    Сначала поместите пример скрипта ниже в /workspace/agent-entry.sh (создайте на хосте — песочница смонтирует автоматически), затем выполните в песочнице:
    openclaw sandbox exec quickstart -- /bin/zsh /workspace/agent-entry.sh

  4. 04
    Остановить песочницу после задачи

    openclaw sandbox stop quickstart
    После остановки данные рабочей области остаются на хосте в /workspace и автоматически монтируются при следующем sandbox create. Для полной очистки добавьте параметр --rm.

Минимальный скрипт входа Agent (сохранить как /workspace/agent-entry.sh)

#!/bin/zsh

set -euo pipefail

cd /workspace

# Attempt network — will be denied by policy (intentional demo)

git clone --depth 1 https://github.com/apple/swift-sample-code.git repo 2>/dev/null || echo "clone blocked (expected)"

rg -rn "TODO|FIXME" . --glob '*.swift' > scan-report.txt 2>/dev/null || true

echo "Scan complete: $(wc -l < scan-report.txt | tr -d ' ') matches" > summary.txt

cat summary.txt

Из-за network.egress: deny-all git clone блокируется сетевой политикой; скрипт выводит "clone blocked (expected)" — это ожидаемо, чтобы в журнале аудита появилось событие network с decision: deny для проверки структуры журнала в следующем разделе. Если скрипт доходит до rg, права файловой системы /workspace настроены верно. На узле M4 Сингапур полный скрипт (с перехваченным clone) ~ 2,3 с; суммарные накладные расходы движка политик не более 80 ms.

Разбор журнала аудита: что означает каждая строка

Журнал аудита — ключевое отличие OpenClaw от других решений песочницы. Это не отчёт постфактум, а поток событий в реальном времени, синхронный с решениями политики: можно смотреть во время задачи или экспортировать позже. Каждая запись содержит фиксированный набор полей; понимание их значений помогает находить проблемы в журнале.

Типичная запись allow (чтение файла) имеет следующий формат:

Пример события allow (filesystem read)

ts=2026-07-24T08:03:12.481Z

sandbox=quickstart

pid=8231

syscall=open

resource=filesystem

path=/workspace/agent-entry.sh

access=read

decision=allow

policy_rule=filesystem.allow[0]

latency_us=34

latency_us — время в микросекундах, которое движок политик потратил на решение; policy_rule указывает на конкретный индекс правила YAML, чтобы быстро определить, какое правило allow или deny сработало.

Запись deny (сеть заблокирована) имеет следующий формат:

Пример события deny (network egress)

ts=2026-07-24T08:03:12.512Z

sandbox=quickstart

pid=8233

syscall=connect

resource=network

dst=140.82.113.4:443

decision=deny

policy_rule=network.egress.deny-all

latency_us=19

Эта запись соответствует перехваченному в скрипте Agent git clone. dst=140.82.113.4:443 — IP GitHub; по нему можно добавить точный whitelist в политику: измените network.egress на allow-list и добавьте github.com:443, снова validate и обновите политику песочницы (openclaw sandbox update --name quickstart --policy ...) — пересоздавать песочницу не нужно.

Часто используемые команды запроса журнала:

Все deny за последний час: openclaw audit query --decision deny --since 1h.
Фильтр по пути: openclaw audit query --resource filesystem --path "/workspace/**".
Экспорт в JSON (для SIEM или скриптов): openclaw audit export --sandbox quickstart --since 24h --format json > audit.json.

Шесть типичных ошибок и подход к диагностике

При первом запуске почти каждый сталкивается хотя бы с одной из перечисленных ошибок. Таблица отсортирована по частоте; для каждой указаны корневая причина и кратчайший путь исправления — без просмотра полной документации.

Симптом ошибки Корневая причина Кратчайшее исправление
auth login сообщает, что token недействителен Пробелы до или после при копировании, или token уже был ротирован Снова скопируйте на странице «Безопасность и песочница» в консоли; проверьте содержимое буфера обмена через pbpaste на лишние символы
openclaw status показывает unavailable для одного из пунктов Ожидание одобрения расширения ядра пользователем (при первой установке) Войдите через VNC → Системные настройки → Конфиденциальность и безопасность → одобрите системное расширение OpenClaw → перезапустите CLI-сервис
policy validate выдаёт unknown field Опечатка в имени поля YAML или использование устаревших полей формата v1 Проверьте, что apiVersion равен openclaw.vpsrox.com/v2; см. шаблон в разделе 5
E_POLICY_DENY: filesystem Agent обратился к пути вне списка allow в YAML openclaw audit query --decision deny --since 1h — найдите целевой путь и при необходимости добавьте его в filesystem.allow
E_POLICY_DENY: process Agent вызвал исполняемый файл вне белого списка process.allow Найдите в журнале аудита deny-записи с resource=process и добавьте соответствующее имя процесса в белый список
git clone в песочнице истекает по таймауту, но deny-записей нет DNS-запрос заблокирован, но connect истёк по таймауту до deny Добавьте --verbose для вывода git; в YAML добавьте в список разрешённых сетей 8.8.8.8:53 или используйте режим белого списка доменов
Предупреждение безопасности

instance-token эквивалентен учётным данным экземпляра с высокими правами — не помещайте его в комментарии кода, .env или Git-коммиты. В production при доступе нескольких человек настройте в консоли отдельные zero-trust сертификаты устройств и роли с минимальными правами (viewer / operator / admin), а не делитесь одним instance-token.

От быстрого эксперимента к стабильному рабочему процессу Agent

Пятиминутный read-only цикл — лишь проверка среды; production-сценарии сложнее: Agent вызывает xcodebuild (нужны дополнительные процессы и временные каталоги), npm или PyPI (точный whitelist исходящей сети), автоматическое создание и удаление песочницы на каждый pull request в CI (нужны REST API или интеграция с GitHub Actions). Общий путь расширения: итерация политики по deny-записям в журнале аудита, а не угадывание с широкой политики.

По замерам на одном Mac mini M4 · 16 GB unified memory стабильно параллельно работают 2 песочницы xcodebuild с кэшем DerivedData, при этом ~4 GB остаётся для процессов аудита OpenClaw и системных служб. При росте нагрузки Agent сервис Thunderbolt 5 от VPSRox объединяет несколько Mac mini в кластер 80 Gbps; политики по-прежнему управляются на каждом экземпляре отдельно, журналы аудита OpenClaw изолированы по экземплярам.

Командам без выделенного облачного Mac стоит заранее знать ограничения альтернатив. Локальная машина 7×24 с фоновым Agent мешает повседневной разработке; при постоянной нагрузке особенно заметны проблемы охлаждения; публичные macOS VM (например, managed macOS Runner в GitHub Actions) делят пул ресурсов, без нативной интеграции OpenClaw, а очереди в пиковые часы сильно бьют по интерактивным Agent-процессам; свой Mac mini в офисе — амортизация, обслуживание и настройка статического публичного IP.

VPSRox предоставляет выделенный физический Mac mini M4 (10-ядерный CPU · 16 GB unified memory · 256 GB NVMe · Neural Engine 38 TOPS), OpenClaw встроен в стандартный экземпляр без дополнительной настройки; пять узлов (Сингапур, Токио, Сеул, Гонконг, US East) с независимым публичным IPv4 и выделенной полосой 1 Gbps, доставка за 1–5 мин после оплаты, от $21.8 в день. На этапе экспериментов с Agent — посуточно; после стабилизации — $109.1/мес., без контракта, срок можно менять в любой момент.

Выделенный физический сервер · доставка за 1–5 мин

Выделенный облачный Mac со встроенным OpenClaw для AI Agent

Выделенный узел VPSRox Mac mini M4 со встроенным OpenClaw: движок политик + среда песочницы + шина аудита — готово к работе без самостоятельного развёртывания. 16 GB unified memory и Neural Engine 38 TOPS позволяют параллельно запускать Agent и macOS toolchain; пять узлов с независимым IPv4, посуточная аренда без контракта.

Стандартная конфигурация
ЧипApple M4 · 38 TOPS
CPU10 ядер, выделенные
Память16 GB unified
Пропускная способность1 Gbps, выделенный
SLA99.9%
Доставка1–5 мин