После обновления или смены конфигурации OpenClaw: Telegram/Slack отвечает, но exec/read/write/browser «not found» или агент выводит только текст вызовов инструментов? Статья даёт: ① какой слой проверять первым; ② матрица tools.profile и порядок для tools.deny и overrides agent; ③ шесть шагов runbook и лестница верификации. Дополняет runbook Gateway без ответа — там каналы и модели, здесь контракт allowlist инструментов.
tools.profile на messaging / minimal: обновление или мастер сузили поверхность инструментов — чат плавный, exec → not found.tools.deny побочный ущерб: временный deny exec / browser для compliance; тикет закрыт, правило осталось.agents.list[].tools.profile перекрывает глобальный: глобально coding, prod-агент всё ещё messaging.Поверхность инструментов OpenClaw — не «установил = всё открыто», а пересечение глобальный profile → deny → override agent. Документация 2026 задаёт tools.profile как базовый allowlist. Многие команды при первом upgrade упираются в контракт от неявно открыто к явному разрешению без «restart + минимальная проба» в change-тикете.
На спящем ноутбуке добавляется «config изменён, launchd/контейнер не reload». Авторитетный Gateway на постоянно включённом выделенном удалённом Mac с SSH local forward: приёмка на стороне Gateway, не только success в CLI.
| Симптом | Подозреваемый слой | Первое действие |
|---|---|---|
| Ответ есть, exec/read tool not found | tools.profile узкий или override agent | Экспорт эффективного profile; openclaw config set tools.profile coding; gateway restart |
| Один инструмент мёртв, остальные OK | tools.deny | Поиск deny; официальная документация tools |
| Один agent | agents.list[].tools.profile | Выровнять agent и global |
| JSON-подобный текст tool call | Tool-calling модели | Модель с function calling; меньше параллельных tools |
| Канал молчит | Канал / token / маршрутизация | Статья без ответа; отложить шаги здесь |
tools.profile: coding или full?Большинство automation/dev-агентов → coding: файлы, shell, web, sessions, memory — проще для security review, чем full. Вместе с Agents / Skills / memory_search — surface и лимит контекста в одном change.
При старте сессии Gateway строит эффективный реестр инструментов; без exec — отказ или текст. Сначала исключить «нет ответа».
| profile | Возможности | Сценарий |
|---|---|---|
| minimal | session_status | Мониторинг без FS |
| messaging | Каналы, sessions | Маршрутизация support |
| coding | filesystem, runtime, web, memory… | Dev (рекомендуемый default) |
| full | Без среза на уровне profile | Prod с аудитом |
Примечание: после tools.profile — перезапуск Gateway. openclaw doctor не перезагружает allowlist в процессе. Docker: production runbook.
tools.deny и overrides agent: порядок трёх слоёв① эффективный profile Gateway → ② tools.deny → ③ agents.list[].tools.profile → ④ глобальный config. После upgrade канала — миграция default profile? Откат: runbook плохого релиза.
В тикете: имя agent и канал; пробы CLI и Telegram/Slack. Временные deny: срок и владелец.
tools.profile, список agents, request id.coding; причина и rollback в тикете.read / exec echo → channels status --probe.openclaw --version openclaw config get tools.profile 2>/dev/null || true openclaw config set tools.profile coding openclaw gateway restart openclaw doctor openclaw gateway status
POC: день 1 — целевой profile и пустой deny в acceptance — матрица KPI POC.
Смена prompt без restart не аудируется. Gateway на выделенном удалённом Mac + документированный profile: MTTR в минутах. MACCOME Mac mini M4 / M4 Pro — мультирегиональное руководство.
FAQ
Нужен ли full после обновления?
coding часто достаточно. Restart и минимальная проба. Ставки аренды и поддержка.
Пересечение с Gateway без ответа?
Там каналы/модели; здесь allowlist. Полная тишина → другая статья; tool not found → эта.
Всё ещё текст tool call?
Модель с function calling A/B; откат.