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

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

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

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

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

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

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

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

Без проверки идут шаги, которые ничего не меняют или легко отменяются:

* чтение и поиск по файлам;
* правки внутри проекта и в дополнительных папках чата;
* команды, которые только читают: `ls`, `cat`, `grep`, `git status`, `git log`, `git diff`;
* чтение сайтов документации: MDN, Python, Node.js, PostgreSQL и других популярных;
* пути и действия в подключениях, которые вы раньше разрешили навсегда.

Всё остальное проверка видит до того, как шаг выполнится:

| Шаг                                                                                       | Что будет, если проверка его пропустит                                               |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Любая другая команда терминала                                                            | Команда запустится; на Mac и у сотрудников — без доступа к сайтам, кроме разрешённых |
| Команде нужен закрытый сайт                                                               | Команда запустится или повторится с этим сайтом                                      |
| Команда, которая упёрлась в ограничения                                                   | Агент запустит её ещё раз, уже с полным доступом                                     |
| Команда, которой агент просит полный доступ: `ssh`, `docker`, деплой                      | Команда запустится с полным доступом к файлам и сети                                 |
| Запрос любой другой страницы из интернета                                                 | Агент откроет страницу                                                               |
| Действие в подключении: письмо, пост, задача                                              | Действие будет выполнено                                                             |
| Запуск агента, который может что-то менять                                                | Агент начнёт работу; его шаги проверка увидит по одному                              |
| Запись файла вне проекта                                                                  | Файл будет записан                                                                   |
| Запись в настройки инструментов проекта: `.git`, `.svedum`, `.vscode`, `.husky`, `.npmrc` | Файл будет записан                                                                   |
| Рутина сотрудника со скриптом                                                             | Рутина сохранится и будет запускать скрипт по расписанию                             |

Список разрешённых команд в этом режиме не действует, он для «Спрашивать». Разрешённая
команда вроде `bun test` запускает код проекта, который агент мог перед этим переписать, и
прошла бы мимо проверки. Поэтому все команды, кроме чтения, проверка смотрит каждый раз.
На Mac и у сотрудников такой код к тому же заперт без сети: если проверка пропустит
команду, отправить данные наружу он всё равно не сможет.
Какие команды считаются чтением, видно в «Настройки → Чат» под списком разрешённых команд.

Два вида шагов решаете только вы, проверка их не трогает. Первый — запись в файлы, которые
приложение само запускает: подключения и хуки проекта в `.svedum`, настройки и хуки git.
Второй — карточка «Письмо в облако», если вы включили «Спрашивать перед письмом в облако».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проверку вызывает почти каждая команда терминала: сборка, тесты, коммит. Чтение и правки файлов в проекте её не вызывают. Проверку ведёт быстрая недорогая модель DeepSeek Flash, какую бы модель
вы ни выбрали в чате; с собственным ключом (BYOK) — модель чата. Сначала она отвечает одним
словом. Только если шаг показался ей подозрительным, она разбирает его подробно, и шаг ждёт
ещё несколько секунд.

Сколько было проверок у сотрудника, сколько они стоили и сколько шаги их ждали, видно в
«Настройки → Тариф и использование», в его строке «Бюджетов сотрудников». В скобках — доля от всех запросов
к моделям в деньгах и во времени. С собственным ключом модели
(BYOK) эти цифры не показываются.

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

* **Проверка — тоже модель и может ошибаться**: остановить нужный шаг или пропустить
  опасный.
* **Код проекта, который запускает команда, проверка не разбирает.** Если агент вписал в
  тест отправку данных, на Mac отправка не пройдёт: сайт закрыт, и выйти к нему можно
  только через карточку или проверку; у сотрудника — его закрытая сеть. На Windows сеть
  открыта, и `bun test` такой код выполнит. Ключи и токены из домашней папки ему недоступны, а код проекта и
  `.env` в нём — доступны.
* **Локальные сервисы без пароля** — база данных, Ollama на localhost — командам агента
  доступны. Закрыты только прокси вашей системы.
* **У сотрудников запись файлов не ограничена папкой проекта.** Все команды, кроме чтения, проходят проверку.
  Сеть команд сотрудника закрыта: только сайты, открытые ему навсегда, и то, что откроют
  карточкой.
  На Windows ограничения защищают не все пути, а сеть открыта.
* В режиме «Только чат» и у помощников «Только исследование» проверка ничего не разрешает:
  они только читают.
