ИИ / Автоматизация 13 мая 2026 г.

2026-05-13 мультиагентный OpenClaw agents.json: разделение ролей на безголовом арендованном Apple Silicon облачном Mac (HK / JP / KR / SG / US)

MacXCode Engineering Team 13 мая 2026 г. около 21 мин чтения

Один шлюз, один характер ответов, одна история случайного удаления — пока вы не разделите OpenClaw на явные мультиагентные профили. На арендованных Mac mini M4 в Гонконге, Токио, Сеуле, Сингапуре и США один и тот же UID часто совмещает полосы xcodebuild, деревья подписи и ассистента в корпоративном мессенджере. Этот материал от 2026-05-13 трактует agents.json как эксплуатационный контракт: какие корни разрешены, какой OPENCLAW_STATE_DIR владеет чекпоинтами, как входящие события сопоставляются ровно с одной идентичностью агента. Он опирается на белые списки рабочей области, чекпоинты сессии и перезапуск шлюза и onboard с triage doctor, чтобы получить воспроизводимое разделение разработка против эксплуатации, устойчивое к перезапускам launchd.

Зачем мультиагентная схема на общих арендованных билдерах

Ассистент, который может читать репозитории, не равнозначен автоматизации, перезапускающей демоны или ротирующей токены. Общий каталог состояния смешивает дедуп-кэши, манифесты плагинов и частично записанный JSON при всплесках webhook — особенно после обновлений npm или серий launchctl kickstart. В центре проектирования — радиус поражения: сужать набор инструментов по роли, разделять префиксы логов, требовать человеческое ревью перед расширением области. agents.json ведите как инфраструктурный код: ревью коллег, контрольная сумма в пакете выката, канареечные регионы.

Базовая политика эксплуатации: если входящее событие нельзя однозначно сопоставить с персоной, отказ с логированием — те же корреляционные идентификаторы, что в логах nginx; не угадывайте персону по свободному тексту чата в продакшене.

Слои: agents.json и модель процесса шлюза

Три уровня: транспорт (HTTP, Slack, Telegram), шлюз (маршрутизация, аутентификация, ограничения скорости), рантайм агента (инструменты, вызовы моделей, политика ФС). agents.json относится к рантайму: именованные агенты, модели по умолчанию, наборы навыков, поля политики. Шлюз читает при старте; горячие правки без контролируемого перезапуска оставляют в памяти полустарую политику. Зафиксируйте для вашей сборки OpenClaw, какие поля допускают горячую перезагрузку, а какие требуют порядка остановки из руководства по чекпоинтам.

  • Идентичность — стабильные id для маршрутизаторов и метрик.
  • Область — корни, согласованные с ограждениями монорепо.
  • Инструменты — явные списки разрешения и запрета; персона эксплуатации может включать управление сервисами, персона разработки — нет.

Разработка и эксплуатация: что не должно наследоваться

Ассистент разработки ориентирован на навигацию с упором на чтение, мелкие правки, удобные для diff, и тестовые команды внутри CI checkout. Автоматизация эксплуатации может расширять интроспекцию хоста, но избегает интерактивных запросов и неограниченной оболочки. Секреты не вшивайте во встроенные подсказки — загрузка из связки ключей macOS или запечатанных env-файлов, на которые ссылается plist. «Временное» размытие границ приводит к тому, что поток чата наследует инструменты эксплуатации и трогает plists launchd, пока человек всё ещё думает, что это только чтение.

Ограждение: однострочная миссия на агента в JSON с ревью в Git, чтобы при инцидентах сравнивать намерения, а не только таблицу инструментов.

Раздельные OPENCLAW_STATE_DIR для нескольких агентов на одном Mac

Используйте предсказуемые префиксы вроде ~/Library/Application Support/OpenClaw/state-dev и .../state-ops; при нескольких продуктовых линиях добавьте подкаталоги арендатора. Не связывайте одно дерево состояния симлинком с другим: firmlink APFS и резервное копирование могут стереть границу. Экспортируйте отдельный TMPDIR на агента, чтобы параллельные задания не удаляли чужие частичные загрузки. После переноса выполните проверки из раздела doctor для неинтерактивной оболочки.

# пример обёртки launchd #!/bin/bash set -euo pipefail export OPENCLAW_STATE_DIR="$HOME/.openclaw-state/ops" exec /usr/local/bin/openclaw gateway --config "$HOME/.openclaw/ops-gateway.json"

Маршрутизация: ключи корреляции, каналы, избежание коллизий

В webhook передавайте стабильные идентификаторы — полное имя репозитория плюс id доставки, команда Slack плюс канал плюс ts ветки, или подписанный внутренний токен задания. Каждый шаблон сопоставляется ровно с одним id; не используйте regex-запасной вариант, который отправит эксплуатационный трафик к ассистенту по умолчанию. При двух шлюзах можно повторно использовать идею upstream-меток, но маршрутизацию персон держите ортогональной к A/B разделению трафика. На этапе выката логируйте решения на уровне info, затем понижайте уровень после стабилизации бюджета ошибок.

Матрица: один агент, раздельный agents.json или раздельные процессы шлюза

Сигнал Склонность к одному агенту Склонность к раздельному agents.json Склонность к раздельным шлюзам
Пересечение инструментов Высокое, тот же класс риска Низкое, та же аутентификация шлюза Разные домены аутентификации или TLS-сертификаты
Ритм релизов Только еженедельная подстройка промптов Разные команды владеют JSON Независимые SLO или окна обслуживания
Конкуренция за каталог состояния Мало записей, малые кэши Тяжёлые чекпоинты или IO плагинов Аудит соответствия требует жёсткой изоляции
Операционные затраты Минимум движущихся частей Средне: больше каталогов и тестов маршрутов Высоко: двойной launchd и health-пробы

Восемь шагов развёртывания мультиагентного OpenClaw на арендованном Apple Silicon

  1. За 30 дней перечислите все человеческие и автоматические входы в шлюз.
  2. Составьте agents.json с профилями разработки и эксплуатации; корни по руководству по белым спискам.
  3. Создайте соседние OPENCLAW_STATE_DIR с владельцем и квотами.
  4. Реализуйте детерминированные правила маршрутизации и unit-тесты на примерных полезных нагрузках.
  5. Разверните plists или обёртки по персонам; проверьте launchctl kickstart в препродакшене.
  6. Запустите синтетические задания, которые обязаны падать при неверной маршрутизации.
  7. Снимите метрики до и после: отказы инструментов и p95 шлюза.
  8. Опишите откат: tarball состояния и прежний JSON с git-тегом.

Сигналы SLO для мультиагентных шлюзов

Сигнал Порог Действие
Доля неоднозначной маршрутизации > 0,1 % запросов Заморозить изменения маршрутов; добавить явные сопоставители
Перекрёстные записи вне объявленных корней Любая фиксация Остановить шлюз; восстановиться из снимка чекпоинта
Расхождение JSON в Git и файлов на хосте Любое необнаруженное ручное изменение Откат хоста; только поток через pull request

Вопросы и ответы

Вопрос Практический ответ (2026-05-13)
Должны ли разработка и эксплуатация делить один список разрешённых моделей? Список провайдеров можно общий при централизованном учёте стоимости; раздельные списки запрета, если эксплуатации нужны более дешёвые или офлайн-конечные точки.
Можно ли по SSH горячо править agents.json во время инцидента? Только с парным планом перезапуска и git-тегом; иначе предпочтительны флаги на стороне маршрутизатора с меньшим радиусом.

Почему аренда Mac mini M4 упрощает мультиагентный OpenClaw

Быстрый NVMe и предсказуемая unified memory позволяют держать несколько деревьев состояния, параллельные кэши моделей и одновременные проверки здоровья без давления на swap — это важно, когда вы репетируете смену маршрутов, а CI всё ещё выполняет полную сборку. Сравните регионы на странице цены; перед расширением инструментов направьте коллег к руководствам SSH и VNC.

Арендуйте билдеры, где мультиагентную политику можно реально закрепить на диске

HK / JP / KR / SG / US · SSH / опционально VNC