1.1.3
09 · Настольное приложение

Права и подтверждения

Права задают, к каким файлам и к сети агент имеет доступ. Политика подтверждений задаёт, когда агент спрашивает разрешения у пользователя. Для новых сессий права и политика настраиваются в разделе Настройки → Ядро и диагностика, в блоках Права для новых сессий и Подтверждения для новых сессий. В открытой сессии режим меняется в меню у поля ввода или командой /permissions и действует сразу — см. подраздел «Когда действует новый режим» ниже.

Режим у поля ввода

Кнопка режима у поля ввода показывает текущий режим и открывает меню Режим. Каждый режим — готовое сочетание прав и политики подтверждений.

Режим Что может агент (описание в меню) Права и подтверждения
Правки Меняет файлы в рабочей папке, спросит при выходе за нее Правки, С подтверждением
Чтение Только читает, изменения по подтверждению Чтение, С подтверждением
План Сначала план, правки после вашего согласия Правки, С подтверждением; агент сначала составляет план, а после Выполнить план режим сам меняется на Правки

Полный доступ — отдельный переключатель внизу того же меню: на пункте написано Включить или, если полный доступ уже включён, Выключить. Полный доступ снимает ограничения песочницы и отключает запросы подтверждения (права Полный доступ, политика Без подтверждений): агент работает с правами вашей учётной записи ОС. Пока он включён, на кнопке режима написано Полный доступ и показан значок предупреждения. Выключение возвращает режим, который был выбран до включения. Включайте полный доступ только для задач, которым доверяете.

Пункт Авто с меткой Скоро в меню пока недоступен.

Меню одинаково для проекта и чата без проекта. В чате рабочая папка — папка этого чата (см. раздел «Чаты без проекта»), поэтому в режиме Правки агент может менять её файлы.

Новая сессия и новый чат начинаются с прав и политики из раздела Настройки → Ядро и диагностика; соответствующий режим отмечен в меню надписью По умолчанию. Права и политику там можно выбрать в сочетании, которого нет в меню, например Правки с политикой Без подтверждений или Полный доступ с политикой С подтверждением — тогда агент работает без песочницы, но спрашивает разрешения перед действиями, которые считает рискованными. При таком сочетании кнопка режима показывает ближайший режим: Полный доступ при правах Полный доступ, Чтение при правах Чтение, иначе Правки. Выбор режима в меню заменяет и права, и политику подтверждений значениями из таблицы.

Пока агент выполняет запрос, режим этой сессии изменить нельзя. Когда ход закончился, а работают только субагенты, режим меняется.

Файлы и сеть

Права Доступ внутри песочницы Сеть для команд агента
Чтение Чтение файлов и команды без записи Отключена
Правки Чтение файлов, запись в рабочей папке и во временных каталогах Отключена
Полный доступ Песочница отключена; действуют права вашей учётной записи ОС Доступна, если её не ограничивают настройки компьютера или сети организации

Так эти права называются в меню режима и в разделе Настройки → Ядро и диагностика. В сводке /status (строка Песочница) они названы иначе: Чтение — Только чтение, Правки — Запись в проект, Полный доступ — Полный доступ. В Windows к первым двум добавляется «без изоляции».

В режиме Правки в Linux и macOS агент может записывать, кроме рабочей папки, в /tmp и в каталог из переменной TMPDIR. Папки .git, .agents и .astracode в корне рабочей папки остаются доступными только для чтения: чтобы изменить их, агенту нужно разрешение. Проверяйте путь в запросе подтверждения.

Доверие к папке проекта включает её настройки, хуки и правила выполнения команд. Команду, которую разрешает правило проекта, агент выполняет без подтверждения и вне песочницы.

В Windows ядро не изолирует команды агента песочницей: в режиме Правки агент меняет файлы рабочей папки, но его команды выполняются с правами вашей учётной записи и могут менять файлы вне папки и выходить в сеть. Поэтому в Windows надписи не обещают песочницу: у режима Правки — «Меняет файлы в папке, но команды могут выйти за нее», в /status — «Запись в проект, без изоляции», в меню терминала — «Без песочницы». В режиме Чтение ядро в Windows спрашивает подтверждение перед каждой небезопасной командой.

Ограничение сети относится к командам агента. Подключение приложения к АСТРА ИИ [ХАБ] и к модели от него не зависит.

Подтверждения

Политика Описание в настройках и что происходит
С подтверждением «Агент сам спрашивает, когда считает действие рискованным.» Перед действием за пределами прав агент показывает запрос подтверждения. Эта политика у всех режимов меню, кроме полного доступа
Без подтверждений «Не запрашивать разрешения.» Действие за пределами прав завершается ошибкой; запроса подтверждения нет

Политика При блокировке прежних версий убрана: сохранённая в настройках или в сессии, она действует как С подтверждением.

Например, для загрузки зависимости нужна сеть. В режиме Правки с политикой С подтверждением агент запросит разрешение выполнить такую команду вне песочницы. С политикой Без подтверждений команда завершится ошибкой.

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

В карточке запроса подтверждения команды есть кнопки Разрешить, Отклонить и Ответить сообщением; ответ сообщением описан в разделе «Управление агентом».

Обычно ядро не позволяет отклонить команду отдельно, и тогда Отклонить вместе с командой останавливает ход — на кнопке подсказка «Команда не выполнится, а ход остановится». Если подсказки нет, отклоняется только команда и агент продолжает работу.

Остальные решения собраны в меню Еще. Набор пунктов зависит от запроса:

  • Разрешать до конца сессии — есть только в запросе сетевого доступа: до конца сессии ядро не спрашивает снова про этот адрес;
  • Разрешить и не спрашивать о таких командах — ядро запоминает правило для команд с тем же началом и больше не спрашивает о них, в том числе в других сессиях. Начало команды, к которому относится правило, показано в карточке в строке Больше не спрашивать про:;
  • Всегда разрешать <адрес> или Всегда запрещать <адрес>, где вместо <адрес> указан сетевой адрес из запроса, — ядро запоминает решение для этого адреса;
  • Остановить ход — отклонить команду и остановить выполнение запроса. Пункта нет, если ход уже останавливает кнопка Отклонить.

Запрос подтверждения от субагента выглядит так же, но в заголовке карточки после названия запроса указан субагент, например «Запрос на выполнение команды · субагент Einstein». Ответить субагенту сообщением нельзя. Кнопка Отклонить с подсказкой «Команда не выполнится, а ход субагента остановится» и пункт Остановить ход субагента останавливают только ход этого субагента.

Ручные команды с !

В сессии или на пустом экране новой сессии, когда агент не работает, введите:

text
!git status

Команда выполняется напрямую, без модели и песочницы, с правами вашей учётной записи ОС и доступом к сети.

Внимание. Команда с ! выполняется с правами вашей учётной записи даже в режиме Чтение.

Во время работы агента текст с ! встаёт в очередь как обычное сообщение и в оболочке не выполняется — см. раздел «Управление агентом». Чтобы выполнить команду вручную, дождитесь завершения запроса или остановите его.

Встроенный терминал

Кнопка Терминал в правом верхнем углу окна или Ctrl+J открывает терминал внизу правой колонки; командная оболочка для ваших команд запускается сама (см. раздел «Интерфейс и навигация»).

В Windows и Linux терминал работает без песочницы, с правами вашей учётной записи; в macOS — в песочнице ядра. Если требования организации запрещают полный доступ, в Linux терминал открывается в песочнице. В Linux в терминале работает управление заданиями: Ctrl+Z, fg и Ctrl+C. Режим у поля ввода на терминал не влияет, а права команд агента от терминала не меняются.

Фоновые процессы, которые запустил агент, продолжают работать и после остановки запроса. Список показывает команда /ps, остановить все такие процессы можно командой /stop.

Когда действует новый режим

Режим, выбранный в меню у поля ввода или командой /permissions, сохраняется в сессии и сразу передаётся ядру. С новым режимом выполняются следующий запрос, проверка изменений /review, команда /init и работа над целью, которую ядро продолжает само (см. раздел «Цели и субагенты»).

Если ядро не приняло новый режим, над полем ввода появляется сообщение «Ядро не приняло новые права. Права остались прежними, выберите их еще раз.», а кнопка режима возвращается к прежнему значению. Выберите режим ещё раз. Перед /review приложение передаёт режим повторно; если это не удалось, проверка не запускается и появляется сообщение «Не удалось передать ядру права сессии. Ревью не запущено, повторите.».

Агент, который выполняет /review, не показывает запросов подтверждения: действия за пределами текущих прав он не выполняет.

Другие ограничения перечислены в разделе «Известные ограничения».