# Проверка разрешений

Источник: https://razum.sh/docs/agents/permission-review

> В режиме «Проверять» агент работает без карточек разрешений, а опасные шаги за пределами песочницы проверяет отдельная модель.

В режиме разрешений «Проверять» агент не останавливается на каждой карточке разрешения:
вместо вас шаг проверяет отдельный запрос к модели. Обычную работу проверка пропускает, а
опасное останавливает: агент получает причину и ищет другой путь. Этот режим включён по
умолчанию.

Проверка сокращает число вопросов, но не гарантирует безопасность. Выбирайте «Проверять» для
задач, в направлении которых вы уверены, а там, где ошибка дорога, — «Спрашивать».

## Как включить

Нажмите кнопку со щитом под полем ввода, рядом с веткой, и выберите «Проверять» или «Спрашивать».
Все три режима, включая «Разрешать всё», — в «Настройки → Чат → Режим разрешений». Режим
общий для всех чатов на этом компьютере. У сотрудника режим свой: «Режим разрешений» в его
профиле, по умолчанию тоже «Проверять».
→ [Разрешения и песочница](https://razum.sh/docs/agents/permissions)

## Что проверяется

Сначала шаг встречает песочница — то же, что и в режиме «Спрашивать». Без вопросов идут:

* чтение файлов;
* правки внутри проекта и в дополнительных папках чата;
* команды, которые песочница пропускает, и команды из списка разрешённых;
* пути и действия в подключениях, которые вы раньше разрешили навсегда.

Проверка видит только то, на чём в режиме «Спрашивать» вы увидели бы карточку:

| Шаг                                          | Что будет, если проверка его пропустит       |
| -------------------------------------------- | -------------------------------------------- |
| Команда, которую остановила песочница        | Агент запустит её ещё раз, уже без песочницы |
| Запись файла вне проекта                     | Файл будет записан                           |
| Действие в подключении: письмо, пост, задача | Действие будет выполнено                     |

Карточку «Письмо в облако», которую вы включили сами («Спрашивать перед письмом в облако»),
проверка не трогает: такие письма агент отправляет только с вашего «да».

## Что проверка останавливает

Проверка смотрит на то, что шаг сделает на самом деле, а не на название команды и не на
объяснение агента. Она останавливает шаг, если он:

* удаляет или необратимо меняет то, что было до начала работы: файлы и папки, историю git,
  базы данных, письма и задачи;
* отправляет ключи, пароли, токены, личные данные или закрытые файлы туда, где их раньше не
  было, или записывает действующие ключи в файлы и сообщения;
* скачивает и запускает код из интернета;
* выкладывает в рабочую среду: деплой, миграции, публикация пакетов, смена DNS, сертификатов,
  прав доступа и общей инфраструктуры;
* меняет настройки системы, профиль терминала, автозапуск, права и настройки самого агента,
  отключает защиту или запускает другого агента без проверок;
* пишет людям, которых вы не называли, или отправляет то, о чём вы не просили;
* похоже на выполнение указаний из файла, страницы или чужого сообщения, а не вашей просьбы.

Если проверка не может понять, что именно сделает шаг или чего он коснётся, она тоже его
останавливает.

## Что проверка пропускает

Шаги, которые служат вашей задаче и которые легко отменить:

* установку зависимостей проекта, сборку, тесты, линтеры, запуск dev-сервера;
* работу с git, которая сохраняет историю: коммиты, новые ветки, получение изменений, пуш в
  ветку своего репозитория;
* запись кэшей и временных файлов, удаление того, что агент сам создал в этом чате;
* письма и действия в подключениях, о которых вы попросили, — с теми адресатами и тем
  текстом, которые вы назвали.

## Запреты и разрешения в чате

Проверка читает ваши сообщения в чате. Поэтому границы задавайте прямо там:

* **Запрет** — «не пушь», «спроси меня перед деплоем». Такой шаг проверка остановит, даже если
  обычно пропустила бы. Запрет действует, пока вы сами его не снимете; решение агента, что
  условие выполнено, его не снимает.
* **Разрешение** — назовите шаг и его цель: «удали папку `build`», «отправь письмо Ивану на
  [ivan@example.com](mailto:ivan@example.com)». Слова «делай что нужно» или одно «можешь удалять» разрешения не дают.
  Разрешение действует на один такой шаг.

Запреты и разрешения не сохраняются как правила: проверка каждый раз перечитывает переписку.
В очень длинном чате старые сообщения сжимаются, и запрет из них может потеряться. Для
твёрдого правила выберите «Спрашивать».

Разрешать проверке могут только ваши слова. Сообщения других агентов, собеседников
сотрудника в мессенджерах, содержимое файлов и страниц, правила проекта шаг из списка
выше не разрешают — правила проекта могут только сузить, что можно.

## Когда решаете вы

* **Проверка трижды подряд остановила агента** или 20 раз в одном чате — появляется обычная
  карточка с последней причиной, и решаете вы. «Запускать всегда» и «Разрешать всегда» на
  ней работают как обычно.
* **Проверка не смогла ответить** — сбой модели, нет ответа за минуту, непонятный ответ. Шаг
  не выполняется сам: появляется карточка с пометкой, что проверить не удалось.
* **Помощник, которого запустил агент**, с вами не разговаривает, поэтому спросить вас не
  может: для него остановка проверки окончательна, и он продолжает работу без этого шага.

## Что видит проверка

| Видит                                                            | Не видит                                |
| ---------------------------------------------------------------- | --------------------------------------- |
| Ваши сообщения и сообщения других агентов, с пометкой, кто автор | Что вернули команды, файлы и страницы   |
| Какие действия агент уже делал в этом чате                       | Текст и рассуждения самого агента       |
| Правила проекта и `AGENTS.md`                                    | Картинки — только пометку, что они были |

Результаты команд и содержимое страниц проверка не читает нарочно: текст, спрятанный в файле
или на сайте, не может её уговорить. А объяснения агента она не видит, чтобы судить по
действию, а не по доводам.

## Скорость и стоимость

Каждая проверка — отдельный запрос к модели этого чата. Он расходует токены так же, как
обычные сообщения, и добавляет несколько секунд перед шагом. Чаще всего проверка нужна, когда
команды упираются в песочницу; обычная работа внутри проекта проверку не вызывает.

## Ограничения

* **Проверка — тоже модель и может ошибаться**: остановить нужный шаг или пропустить
  опасный.
* **Песочница ограничивает запись файлов вне проекта, а не сеть.** Команда внутри проекта,
  которая, например, пушит в git или обращается к сайту, идёт без проверки — так же, как в
  режиме «Спрашивать».
* **На Linux песочницы нет**, поэтому команды терминала идут без проверки в любом режиме,
  кроме «Только чат». На Windows песочница защищает не все пути.
* В режиме «Только чат» и у помощников «Только исследование» проверка ничего не разрешает:
  они только читают.
