Полномочия¶
Слой полномочий — надстройка над правами инструментов. Право в нём выражается грантом «действие × цель» с эффектом «Разрешить», «Спросить» или «Запретить». Полномочия приходят контентом — пакетами расширений, — а не задаются вручную в интерфейсе.
Слой отвечает на вопрос «кому что можно через агента»: какие действия роли допустимы на каких целях. Он работает поверх обычных прав и режимов сессии, а не вместо них.
Слой только сужает права
Полномочия не могут разрешить то, что запрещено правами инструментов. Если правило прав говорит «запрет», грант «Разрешить» ничего не меняет: остаётся самый строгий из двух ответов.
Три режима¶
| Режим | Что происходит | Когда нужен |
|---|---|---|
| Выключен | слой не участвует в решениях | по умолчанию |
| «Только журнал» | решение считается и пишется в журнал, но не применяется | миграция: видно, что изменится |
| «Принуждение» | решение применяется к вызову инструмента | рабочий режим |
Включение¶
Режим задаётся только конфигурацией инстанса — переключателя в интерфейсе нет:
Те же значения — переменными окружения:
По умолчанию слой выключен. При включении он стартует в режиме «только журнал»: это безопасный первый шаг, при котором ничего не блокируется.
Изменения — после перезапуска
Политика читается снимком при старте инстанса. Правка конфигурации, установка пакета с новыми грантами и перевод в «Принуждение» действуют только после перезапуска: в текущем процессе остаётся прежний снимок.
Правила принуждения¶
- Запрет сильнее разрешения. Если хотя бы один источник говорит «Запретить», действие не выполняется.
- Нет гранта — нет права. Неизвестное действие или цель трактуются как отказ, а не как разрешение по умолчанию.
- «Спросить» не снимается. Режим YOLO отключает подтверждения прав, но не требование полномочий: подтверждение всё равно запрашивается.
- Субагент не получает больше родителя. Наследование идёт сверху вниз, как и у обычных прав.
Раздел «Полномочия» в админке¶
Настройки → Администрирование → «Полномочия» — раздел только для чтения. Он показывает, что действует сейчас, но не меняет политику:
- Режим слоя — ожидаемое состояние: «Принуждение», «Только журнал» или «Выключен».
- Политика инстанса — общие правила, пришедшие с контентом.
- Роли и гранты — по каждой роли: домен, гранты с бейджами эффекта «Разрешить / Спросить / Запретить» и источник, то есть пакет, который их поставил.
- Привязки агентов — какие роли закреплены за агентом и каков его потолок.
Откуда берутся полномочия¶
Роли, гранты и привязки — это контент. Их поставляет пакет расширения вместе с агентами, скиллами, MCP-серверами и пайплайнами: администратор подтверждает установку пакета, а не собирает политику вручную.
Поэтому в интерфейсе нет форм «добавить грант»: ручная правка разошлась бы с пакетом при следующем обновлении. Нужного гранта нет — значит, его должен принести пакет.
Типичный сценарий миграции¶
- Включите слой в режиме «только журнал»:
authority.enabled: true,authority.shadow: true. - Перезапустите инстанс и поработайте как обычно.
- Посмотрите журнал решений: что было бы запрещено и где потребовалось бы подтверждение.
- Выдайте недостающие гранты — пакетом расширения, а не правкой файлов.
- Перезапустите инстанс, чтобы новый контент попал в снимок политики.
- Переведите слой в «Принуждение»:
authority.shadow: false— и снова перезапустите.
Ограничения¶
- Только конфигурация. Runtime-настроек и API для смены режима нет.
- Раздел только для чтения. Интерфейс показывает состояние, но не управляет им.
- Снимок при старте. Новые гранты и роли видны после перезапуска.
- Роли сред — в планах. Часть возможностей слоя, связанная со средами, пока не реализована.
Что дальше¶
- Режимы и права — режимы сессии и правила инструментов.
- Безопасность — шлюз, аудит и защищённые пути.
- Плагины и пакеты — откуда приходит контент.
- Релиз 0.12.4 — что ещё появилось.