accessGroups и указываете в списках разрешённых отправителей каналов с помощью accessGroup:<name>.
Используйте их, когда одним и тем же людям нужно разрешить доступ в нескольких каналах сообщений или когда один доверенный набор должен применяться как к личным сообщениям, так и к авторизации отправителей в группах.
Сама по себе группа ничего не разрешает. Она действует только там, где на неё ссылается поле списка разрешённых отправителей.
Статические группы отправителей сообщений
Статические группы отправителей используютtype: "message.senders". members индексируется по идентификатору канала сообщений, а "*" используется для записей, общих для всех каналов:
Записи сопоставляются по обычным правилам
allowFrom целевого канала. OpenClaw не преобразует идентификаторы отправителей между каналами: если у Алисы есть идентификатор Telegram и идентификатор Discord, укажите оба идентификатора в соответствующих ключах каналов.
Ссылки на группы из списков разрешённых отправителей
Указывайте группу с помощьюaccessGroup:<name> в любом месте пути канала сообщений, где поддерживаются списки разрешённых отправителей.
Пример списка разрешённых отправителей личных сообщений:
Поддерживаемые пути каналов сообщений
Группы доступа работают в общих путях авторизации каналов сообщений:- списки разрешённых отправителей личных сообщений, например
channels.<channel>.allowFrom - списки разрешённых отправителей групп, например
channels.<channel>.groupAllowFrom - списки разрешённых отправителей для отдельных комнат конкретного канала, использующие те же правила сопоставления отправителей (например,
groups.<space>.usersGoogle Chat) - пути авторизации команд, повторно использующие списки разрешённых отправителей каналов сообщений
message.senders не зависят от канала, поэтому новые каналы сообщений получают их поддержку, если используют общие вспомогательные функции входящей обработки из SDK плагинов вместо собственной логики раскрытия списков разрешённых отправителей.
Аудитории каналов Discord
Discord также поддерживает динамический тип группы доступа:discord.channelAudience означает «разрешить отправителей личных сообщений Discord, которые в данный момент могут просматривать этот канал сервера». OpenClaw проверяет отправителя через Discord во время авторизации и применяет правила разрешений Discord ViewChannel. membership является необязательным и по умолчанию имеет значение canViewChannel.
Используйте это, когда канал Discord уже является источником достоверных данных о команде, например #maintainers или #on-call.
Требования и поведение при сбоях:
- Боту необходим доступ к серверу и каналу.
- Для бота в Discord Developer Portal требуется Server Members Intent.
- Группа доступа запрещает доступ при сбое, если Discord возвращает
Missing Access, отправителя невозможно определить как участника сервера или канал принадлежит другому серверу.
Диагностика плагинов
Авторы плагинов могут проверять структурированное состояние группы доступа, не преобразуя его обратно в плоский список разрешённых отправителей:expandAllowFromWithAccessGroups(...) только для путей совместимости, которые всё ещё ожидают плоский массив allowFrom.
Примечания по безопасности
- Группы доступа — это псевдонимы списков разрешённых отправителей, а не роли. Сами по себе они не создают владельцев, не одобряют запросы на сопряжение и не предоставляют разрешения на использование инструментов.
dmPolicy: "open"по-прежнему требует наличия"*"в действующем списке разрешённых отправителей личных сообщений. Ссылка на группу доступа не равнозначна публичному доступу.- Отсутствующие имена групп приводят к запрету доступа. Если
allowFromсодержитaccessGroup:operators, аaccessGroups.operatorsотсутствует, эта запись никого не авторизует. - Используйте стабильные идентификаторы каналов. Если канал поддерживает оба варианта, предпочитайте числовые идентификаторы или идентификаторы пользователей отображаемым именам.
Устранение неполадок
Если отправитель должен соответствовать условию, но заблокирован:- Убедитесь, что поле списка разрешённых отправителей содержит точную ссылку
accessGroup:<name>. - Убедитесь, что
accessGroups.<name>.typeуказан правильно. - Убедитесь, что идентификатор отправителя указан в соответствующем ключе канала или в
"*". - Убедитесь, что запись использует обычный синтаксис списка разрешённых отправителей этого канала.
- Для аудиторий каналов Discord убедитесь, что бот видит канал сервера и что Server Members Intent включён.
openclaw doctor. Эта команда обнаруживает многие недопустимые сочетания списков разрешённых отправителей и политик до запуска.