Версия: 1.0.0
Дата: 17.07.2026
Задача: #1335
Связанные: Agent Files Template v3, Lifecycle v5, tool-usage.py, token-budget.py
Замер /context detail (Элис, 15.07): схемы инструментов — 80 311 симв.
(~20K токенов) на каждую сессию, 156+ тулзов, из которых роль реально
использует 15–25. Схемы невидимы в файлах, но оплачиваются всегда.
Роль = набор инструментов: co-CEO не нужен chrome-devtools, юристу —
video_generate. Это концепция «сотрудник + конвейер инструментов»,
применённая к конфигу.
agents.list[].tools.allow / .deny; deny всегда побеждает allow;* — wildcard, есть группы group:*.tools.subagents.tools.allow/deny.allow (полный явный список) + короткий deny опасного ядра.
Почему deny при непустом allow не избыточен: если после апдейта OpenClaw
имена в allow перестанут узнаваться, allowlist игнорируется целиком —
и deny остаётся последней линией обороны. В deny поэтому кладём только
опасное (а не «ненужное»): gateway, subagents, sessions_spawn, delete_work_package, create_user, browser, exec* — по роли.
MCP-серверы и плагины подключаются только в конфиг агентов, которым
нужны: их схемы тоже стоят контекста всем, кто их видит.
python3 ~/.openclaw/scripts/tool-usage.py --days 60 --agent <id> — что реально вызывалось.openclaw config set (руками openclaw.json не трогать —agents/tool-policy про ignored allowlist;/context detail в сессии агента: число тулзов и размер схемБазовый набор всем (BASE): read, write, edit, exec, process, memory_search, memory_get, message, session_status, sessions_send, add_comment, get_work_package, search_work_packages, create_work_package, update_work_package, search_wiki_pages, get_wiki_page — всё это реально используется ≥12 ролями.
| Агент | + к BASE (эмпирика) | Deny опасного ядра |
|---|---|---|
| Элис (main) | cron, sessions_list/history/spawn/yield, subagents, agents_list, gateway, browser, web_search, web_fetch, wiki (все), list_*, get_statuses/types, project_status_report, eval-тулзы | chrome-devtools*, image*, video*, tts, canvas, nodes, grafana_, delete_, create_user |
| Всеволод | russian-law__* (13 тулзов MCP), web_search, web_fetch, wiki_apply, cron |
как сейчас (deny 46 позиций можно сократить до опасного ядра) |
| Денис | gateway, grafana_* (вся линейка — 100+ вызовов), nodes, cron, browser, web_search/fetch, wiki (все), sessions_, chrome-devtools (редко, но по делу) | delete_* (кроме grafana_delete_), create_user, image, video*, tts |
| python-dev | browser (265!), chrome-devtools* (~330!), image, web_search/fetch, sessions_*, wiki (все), cron | gateway, delete_, create_user, video, tts, grafana_* |
| Мила (cmo) | web_search/fetch, wiki (все, вкл. create/update), chrome-devtools* (ревью сайта), sessions_spawn/yield, eval-тулзы, dir_list | gateway, exec→оставить (178 вызовов — реально нужен), delete_, video, tts, canvas |
| Катя (hr) | sessions_list/spawn/yield (онбординг — топ её профиля), agents_list, wiki (все), browser, web_fetch, cron, gateway (3 вызова — решить: нужен ли) | delete_, create_user, chrome-devtools, image*, video*, grafana_* |
| Вера (valeria) | cron, project_status_report, get_statuses/types/priorities, list_* (вся отчётная линейка), wiki (все), sessions_* | gateway→спорно (3 вызова), delete_, chrome-devtools, image*, video*, grafana_* |
| CPO | run_eval/get_eval/list_evals (promptfoo — его инструмент), cron, web_fetch, browser, sessions_*, list_users | gateway, delete_, chrome-devtools, image*, video*, grafana_* |
| CTO | gateway, sessions_spawn/yield, web_search/fetch, wiki (все), browser, canvas (2), apply_patch | delete_, create_user, image, video*, tts, grafana_* |
| PM | delete_work_package, create_project, add_member_to_project, list_memberships, get_types, project_status_report, browser, web_search/fetch | gateway→спорно (2), chrome-devtools*, image*, video*, grafana_* |
| PE | skill_workshop, sessions_* (вся линейка), web_search/fetch, gateway (5), dir_list/fetch, browser, eval-тулзы | delete_, chrome-devtools, image*, video*, grafana_* |
| QA | sessions_spawn/yield, delete_work_package (13 — чистит тестовые WP), browser, chrome-devtools*, image, web_fetch, cron, grafana_health | gateway, create_user, video*, tts, russian-law__* (его тест закончен) |
| Дизайнер | bash (801 — его главный тул!), browser, apply_patch, image_generate (по роли; 0 вызовов за 60д — ревизия через квартал), web_search | gateway, delete_, chrome-devtools, video*, grafana_* |
| data-engineer | sessions_list/history, grafana_* (по роли), sql | gateway, delete_, chrome-devtools, image*, video* |
| ivan-sales | wiki-чтение, web_search (по роли) — 14 вызовов за 60д: агент почти спит, профиль минимальный | всё остальное |
Факты парка за 60 дней: video_generate — 0 вызовов, tts — 0,
canvas — 6, nodes — 4, image_generate — 0 → медиа-линейка
денится всем, кроме дизайнера, без потерь. exec — топ-1 почти у всех
ролей (в т.ч. «гуманитарных») — остаётся в BASE.
Оценка эффекта (по срезу Элис): −30–40% схем ≈ −6–8K токенов на
сессию у тяжёлых ролей; точная цифра — только замером /context detail
до/после (схемные размеры различаются между моделями/провайдерами).
Вместе с конвейером v3 (#1332), тем же порядком: Элис (при ретрофите
#1334) → HR → python-dev → PM → PE → остальные. Один агент = одна
задача OP с верификацией §4.5 и снимком до/после.
/context detail (урок Всеволода).MCP развёрнут (#1330 ✅), pre-flight пройден (#1329 ✅), QA протестировал
сервер (#1336 ✅ — вызовы russian-law__* видны в его логах), но
инструменты MCP не были добавлены в allow Всеволода → при непустом
allow они заблокированы. Поймано ДО первой боевой задачи (у Всеволода
за всё время 4 вызова — онбординг).
Фикс: добавить в allow Всеволода одну запись-wildcard russian-law__*
(через config.patch, Элис) + gateway restart + верификация §4.5.
Полные имена тулзов MCP (из теста QA): about, search_legislation,
get_provision, validate_citation, format_citation, check_currency,
list_sources, build_legal_stance, get_eu_basis, get_provision_eu_basis,
search_eu_implementations, get_russian_implementations,
validate_eu_compliance — все с префиксом russian-law__.
Заодно: убрать russian-law__* из доступа QA — его тест завершён.
Вывод: развёртывание инструмента и доступ агента к нему — две разные
проверки. Отсюда пункт про MCP в Pre-flight.
История: 1.0.0 — Claude + Роман, 17.07.2026