Три ошибочных трактовки, которые тормозят каждую субсессию
Ошибка A: «Модель молчит — значит пропал sessions_spawn.» При неверной аутентификации провайдера, исчерпанной квоте или неверном alias модели шлюз может не дойти до фазы согласования инструментов, хотя health зелёный. Начните с openclaw models status и минимального диалога, прежде чем массово переписывать JSON.
Ошибка B: allowAgents висит на agents.defaults или общем узле, тогда как субагенты ждут собственных политик. Типичный симптом — allowed: none в диагностике при «нормально выглядящем» файле. Перенесите политику на нужную запись subagents, сохраните, перезапустите процесс шлюза и сравните хеш развёрнутого файла с редакторским артефактом.
Ошибка C: в прод выведена модель без надёжного function calling. UI не показывает spawn при корректных правах. Введите контрольную модель с известным tool API, зафиксируйте результат и пометьте неподдерживаемые маршруты во внутренней матрице, чтобы закупки и разработка читали одно и то же.
Порядок слоёв совпадает с гайдом по шлюзу: сначала процесс и локальный порт, затем API провайдера, затем каналы и прокси. Перемешивание порядка сжигает часы на diff JSON, пока истинная причина — просроченный ключ.
Включите эти три ловушки в онбординг: до тикета отметить модель, узел политики, трафик прокси. Это сокращает время до первой полезной гипотезы, убирая шум параллельных экспериментов.
Для аудита фиксируйте в инциденте, какой слой исключили первым и чем подтвердили. Без следа постмортемы повторяют одни графики, хотя прокси уже был чист в первый час.
Болевые точки: релизы, прокси, hardening и дрейф установки
Миграция схемы: крупные линии OpenClaw двигают поля в openclaw.json. Обновив только тег образа, можно тихо игнорировать старые ключи. Читайте release notes, делайте структурные diff и гоняйте openclaw doctor на staging с тем же файлом, что в проде, а не с «упрощёнкой».
TLS-терминация и WebSocket: за Nginx или Caddy тот же шлюз то стабилен, то дёргается, если Upgrade, таймауты или буферизация расходятся. Симптом — редкие падения субсессий при успешных локальных тестах. Сопоставьте curl -N на loopback и публичное имя с общими request id на периметре и в приложении.
Слишком жёсткий прод: SSRF-списки, исходящие фильтры и секреты webhook могут резать легитимные tool-callbacks, пока doctor зелёный, потому что пробы идут другими путями. Ведите явные правила для хостов callback, документируйте их рядом с объектами фаервола и крутите секреты без окна «дырявой» политики.
Смешанная установка: глобальный npm CLI, Compose и LaunchAgents на одном удалённом Mac дают расхождение which openclaw и реального бинарника. Унифицируйте путь по гайду установки, прежде чем отлаживать субагентов — иначе «лечите» файлы, которые активный процесс не читает.
Неструктурированные логи: без хеша конфигурации, имени модели, результата перечисления инструментов и кода отказа постмортемы размыты. Задайте обязательные поля для саппорта и автоэкспорта, чтобы видеть повторяющиеся паттерны.
Несколько команд на одной машине: планируйте окна для правок прокси, шлюза и токенов бота синхронно. Параллельные правки часто дают полувалидный JSON с хвостами merge, которые парсер молча пропускает.
Квартальный game-day: сломанный allowAgents, протухший API-ключ и душимый webhook; замерьте время до корня по runbook. Подкручивайте дашборды по данным, а не по интуиции.
На горизонте нарисуйте маршрутизацию инструментов: какие каналы наследуют какие политики субагентов и где исключения PDF/Teams из мультиканального гайда. Без схемы исключения дублируются и усугубляют инциденты.
Если команда растёт, введите ротацию «доктора недели»: один инженер отвечает за актуальность чек-листов doctor и ссылок на прокси-документацию, остальные присылают диффы только через ревью этого роли. Так ссылки в runbook не протухают между крупными релизами OpenClaw и меняющимися политиками облака.
Для регулируемых отраслей сохраняйте артефакты: кто менял allowAgents, какой тикет, какой хеш конфигурации до и после. Эти три поля часто спрашивают аудиторы быстрее, чем полные дампы логов, и снижают время на разбор после инцидента.
Куда класть allowAgents относительно subagents
Субагенты моделируют делегированные ветки с собственными границами инструментов. Политики вроде allowAgents действуют по записи, а не как голый default верхнего уровня — смотрите схему вашей версии, а не старые gist.
При нескольких субагентах избегайте копипаста без правки имён; опечатка выбрасывает блок из парсера. Добавьте проверку схемы в CI, если доступно, и версионируйте примеры конфигурации.
После правок одного reload может не хватить: задокументируйте поддерживаемый рестарт (systemd, LaunchAgent, Compose). Без рестарта конфиг «наполовину» и даёт гейзенбаги под нагрузкой.
Мультитенант: отдельные файлы или изолированные Unix-пользователи; общий openclaw.json на хосте повышает риск прочитать чужую политику. Автотесты должны поднимать минимум два синтетических арендатора параллельно.
Персональные данные: субагенты могут видеть чувствительный контекст. Опишите, какие инструменты разрешены кому и как соблюдаются сроки удаления — как в правилах SFTP, если та же инфраструктура несёт артефакты и ботов.
Security review: высокорисковые инструменты — на субагентах с более жёсткими сетевыми профилями; allow-all на главном агенте подрывает последующий hardening на периметре.
Function calling, выбор модели и видимость tools
Function calling — предпосылка появления sessions_spawn в протоколе согласования. Дешёвые или специализированные endpoint без tool API намеренно дают короткие списки; это не баг конфигурации, а граница продукта.
Ведите внутреннюю таблицу: ID модели, поддержка tools, стоимость, регион, fallback при сбое. Обновляйте при каждом изменении цен или API, чтобы FinOps и дежурства опирались на одни данные.
Смешанная нагрузка — vision PDF из мультиканального гайда плюс spawn — требует раздельных пулов, чтобы тяжёлые задачи не откладывали согласование инструментов. Измеряйте очереди отдельно и задайте shedding.
Feature flags: не переключайте только основной чат без ветки субагента; расходящиеся alias дают spawn локально ок и в канале нет.
QA: короткий автотест с ожидаемым списком tools ловит регрессии провайдера лучше разового клика в UI раз в квартал.
Многослойный triage: status, models status, doctor, логи
Старт с openclaw status: процесс жив, порт открыт, версия ожидаемая. Затем openclaw models status: ключ валиден, endpoint доступен, модель существует. Потом openclaw doctor с JSON для машин; затем openclaw logs с выравниванием часового пояса к прокси.
Зафиксируйте критерий pass/fail на шаг в runbook, чтобы ночная смена не гадала. Вставьте ссылки на статьи установки и шлюза в шаблон тикета.
Если модели и doctor зелёные, а канал висит, осознанно переходите к слою прокси: те же пути, те же заголовки, та же цепочка TLS. Нужны correlation id, которые пишут и edge, и шлюз, иначе срезы логов бессмысленны.
Для повторяющихся инцидентов добавьте визуальное дерево решений в wiki; визуальные якоря снижают число параллельных экспериментов, которые друг друга отменяют.
Следите за фрагментацией памяти на долгоживущих процессах при потоке коротких субсессий; планируйте мягкие rolling-рестарты в окнах обслуживания без обрыва пользовательских сценариев.
Обучите саппорт сперва спрашивать alias модели, канал и последний изменённый блок allowAgents; многие тикеты закрываются там без глубоких трейсов.
Когда шлюз работает в связке с CI, добавьте в pipeline шаг «dry-run doctor» на копии конфигурации: он ловит опечатки в JSON до выката и предотвращает ситуацию, когда прод принимает трафик с политикой, которую локальный редактор ещё не сохранил в репозиторий.
Обратный прокси: WebSocket, таймауты, буфер
Публичные точки за обратным прокси требуют явных правил Upgrade и достаточно длинных read-timeout для стриминга и каналов. Короткие дефолты рвут сессии, похожие на ошибки инструментов.
Проверьте, не ломает ли буферизация стриминг; сравните с терминацией TLS и без. Dual-stack IPv4/IPv6 может иметь разные таймауты — опишите оба пути.
Ротацию сертификатов ведите в том же change-board, что и апгрейды шлюза; просроченные промежуточные дают рандомные handshake, бьющие только часть регионов.
Несколько окружений: жёстко разделите server_name или хосты; перекрёст staging/prod — частая причина «случайных» списков tools.
CDN добавляют кеш-правила; динамические пути чата и tools должны быть явно без кеша.
Hardening: webhook, SSRF и минимальные привилегии
Материал прод-ужесточения подчёркивает исходящий контроль и целостность webhook. Callbacks инструментов на внутренние сервисы должны попадать в те же allow-list, что и прочий egress; иначе файрвол режет валидные spawn.
Крутите секреты с коротким перекрытием двух валидных версий, пока все края не обновятся. Автоматизируйте через secret manager, а не тикеты с plaintext.
Scopes Graph/bot держите минимальными; избыточные права увеличивают ущерб при утечке токена. Связывайте ревью scopes с мультиканальным гайдом Teams/Telegram.
Аудит-логи админских правок allowAgents объясняют регрессии после срочного хотфикса. Без них неясно, человек или deploy-скрипт сдвинул политику.
Пентесты должны пробовать эскалацию маршрутов субагентов; задокументированные находки оправдывают будущие ограничения перед продуктом, которому «надо просто расширить» tools.
Матрица решений
Используйте таблицу на архитектурных ревью и храните выбранную строку рядом с правилами фаервола и хранилищем секретов.
| Симптом | Вероятный слой | Первое действие | Углубление |
|---|---|---|---|
Нет sessions_spawn в списке | Модель/endpoint | models status; контрольная модель | Матрица function calling |
allowed: none | Узел JSON | Проверить allowAgents под subagents | Бэкап JSON установки |
| Падает только снаружи | Прокси/WebSocket | curl loopback vs домен | Гайд Nginx/Caddy |
| Таймауты callback | Egress/SSRF | Расширить allow-list, аудит | Статья hardening |
| Расхождение версий | CLI vs сервис | Выровнять пути | Гайд установки |
Задайте SLO на долю успешных spawn, медиану до первого ответа инструмента и ошибки webhook; свяжите с error budget помимо общей доступности API.
Обновляйте матрицу после каждого крупного релиза — меняются схема и дефолтные политики. Архивируйте старые версии с датой для аудиторов.
В ревью затрат: каждая новая семья разрешённых tools может грузить GPU или очереди; оцените до открытия новых сценариев субагентов.
Семь шагов (иллюстрация)
Подстройте под среду; секреты не класть в тикеты и чаты.
# 1) Версии (CLI == сервис)
openclaw status
# 2) Провайдер и модель
openclaw models status
# 3) Конфиг и doctor
openclaw doctor --json
# 4) Проверить allowAgents под agents.list[].subagents
# 5) Перезапуск шлюза (LaunchAgent/systemd/Compose)
# 6) Прокси: curl -N https://ваш.домен/health vs loopback
# 7) Логи с request id
openclaw logs --follow
Зафиксируйте зависимости прокси и hardening в тех же репозиториях, что и конфиг шлюза, чтобы «оптимизации» не отрезали callbacks тихо.
Наблюдаемость, откат и культура эксплуатации
Метрики: счётчики сбоев регистрации tools, латентность spawn, повторы webhook и отклонённые callbacks. Алерты на рост за 15 минут, не только на абсолютные пики.
Порядок отката: сначала alias модели на последнюю стабильную связку, затем откат diff allowAgents, потом правки прокси, в конце секреты каналов. Так меньше одновременных переменных.
Добавьте синтетику, которая бьёт безопасный путь spawn без утечки прод-данных; храните ожидаемые отпечатки ответа.
Runbook держите на языке дежурной смены; краткие переводы рядом с длинным техтекстом снижают стресс ночью.
Свяжите дашборды с мультиканальным гайдом, если PDF/Teams делят тех же воркеров; общие узкие места мешают командам оптимизировать друг против друга.
FAQ и управляемый удалённый Mac
Почему пропал sessions_spawn после апдейта?
Часто миграция схемы, сдвинутый allowAgents или модель без tools; release notes, models status и иерархия JSON.
Что делать при allowAgents allowed:none?
Повесить политику на правильный узел subagents, валидировать файл, перезапустить шлюз, сверить хеши.
doctor зелёный, spawn всё равно падает?
Вебхуки канала, буфер прокси или фильтр hardening; скоррелируйте id на edge и шлюзе.
Итог: видимость sessions_spawn — произведение возможностей модели, места allowAgents и чистой инфраструктуры. Многослойный triage экономит часы против хаотичного JSON.
Ограничение: self-hosted требует постоянной синхронизации с roadmap провайдера, сертификатами и базовыми линиями безопасности. Арендуемые удалённые Mac собирают стабильные шлюзы и предсказуемые траектории Apple Silicon.
SFTPMAC даёт ёмкость удалённого Mac для долгоживущих процессов OpenClaw, изолированных входов артефактов и повторяемых выкладок без своей colocation.
При субагент-флоу 7×24 управляемые хосты быстрее окупаются, чем ночные охоты за конфигами и железом.
CI должна линтить JSON-схемы и сниппеты прокси до выката на управляемые хосты — документация остаётся равна продакшену.
Рассмотрите SFTPMAC, если нужны удалённые Mac для шлюзов OpenClaw с ясными политиками tools и отдельным SFTP.
