Права и подтверждения
Права задают, к каким файлам и к сети агент имеет доступ. Политика подтверждений задаёт, когда агент спрашивает разрешения у пользователя. Для новых сессий права и политика настраиваются в разделе Настройки → Ядро и диагностика, в блоках Права для новых сессий и Подтверждения для новых сессий. В открытой сессии режим меняется в меню у поля ввода или командой /permissions и действует сразу — см. подраздел «Когда действует новый режим» ниже.
Режим у поля ввода
Кнопка режима у поля ввода показывает текущий режим и открывает меню Режим. Каждый режим — готовое сочетание прав и политики подтверждений.
| Режим | Что может агент (описание в меню) | Права и подтверждения |
|---|---|---|
| Правки | Меняет файлы в рабочей папке, спросит при выходе за нее | Правки, С подтверждением |
| Чтение | Только читает, изменения по подтверждению | Чтение, С подтверждением |
| План | Сначала план, правки после вашего согласия | Правки, С подтверждением; агент сначала составляет план, а после Выполнить план режим сам меняется на Правки |
Полный доступ — отдельный переключатель внизу того же меню: на пункте написано Включить или, если полный доступ уже включён, Выключить. Полный доступ снимает ограничения песочницы и отключает запросы подтверждения (права Полный доступ, политика Без подтверждений): агент работает с правами вашей учётной записи ОС. Пока он включён, на кнопке режима написано Полный доступ и показан значок предупреждения. Выключение возвращает режим, который был выбран до включения. Включайте полный доступ только для задач, которым доверяете.
Пункт Авто с меткой Скоро в меню пока недоступен.
Меню одинаково для проекта и чата без проекта. В чате рабочая папка — папка этого чата (см. раздел «Чаты без проекта»), поэтому в режиме Правки агент может менять её файлы.
Новая сессия и новый чат начинаются с прав и политики из раздела Настройки → Ядро и диагностика; соответствующий режим отмечен в меню надписью По умолчанию. Права и политику там можно выбрать в сочетании, которого нет в меню, например Правки с политикой Без подтверждений или Полный доступ с политикой С подтверждением — тогда агент работает без песочницы, но спрашивает разрешения перед действиями, которые считает рискованными. При таком сочетании кнопка режима показывает ближайший режим: Полный доступ при правах Полный доступ, Чтение при правах Чтение, иначе Правки. Выбор режима в меню заменяет и права, и политику подтверждений значениями из таблицы.
Пока агент выполняет запрос, режим этой сессии изменить нельзя. Когда ход закончился, а работают только субагенты, режим меняется.
Файлы и сеть
| Права | Доступ внутри песочницы | Сеть для команд агента |
|---|---|---|
| Чтение | Чтение файлов и команды без записи | Отключена |
| Правки | Чтение файлов, запись в рабочей папке и во временных каталогах | Отключена |
| Полный доступ | Песочница отключена; действуют права вашей учётной записи ОС | Доступна, если её не ограничивают настройки компьютера или сети организации |
Так эти права называются в меню режима и в разделе Настройки → Ядро и диагностика. В сводке /status (строка Песочница) они названы иначе: Чтение — Только чтение, Правки — Запись в проект, Полный доступ — Полный доступ. В Windows к первым двум добавляется «без изоляции».
В режиме Правки в Linux и macOS агент может записывать, кроме рабочей папки, в /tmp и в каталог из переменной TMPDIR. Папки .git, .agents и .astracode в корне рабочей папки остаются доступными только для чтения: чтобы изменить их, агенту нужно разрешение. Проверяйте путь в запросе подтверждения.
Доверие к папке проекта включает её настройки, хуки и правила выполнения команд. Команду, которую разрешает правило проекта, агент выполняет без подтверждения и вне песочницы.
В Windows ядро не изолирует команды агента песочницей: в режиме Правки агент меняет файлы рабочей папки, но его команды выполняются с правами вашей учётной записи и могут менять файлы вне папки и выходить в сеть. Поэтому в Windows надписи не обещают песочницу: у режима Правки — «Меняет файлы в папке, но команды могут выйти за нее», в /status — «Запись в проект, без изоляции», в меню терминала — «Без песочницы». В режиме Чтение ядро в Windows спрашивает подтверждение перед каждой небезопасной командой.
Ограничение сети относится к командам агента. Подключение приложения к АСТРА ИИ [ХАБ] и к модели от него не зависит.
Подтверждения
| Политика | Описание в настройках и что происходит |
|---|---|
| С подтверждением | «Агент сам спрашивает, когда считает действие рискованным.» Перед действием за пределами прав агент показывает запрос подтверждения. Эта политика у всех режимов меню, кроме полного доступа |
| Без подтверждений | «Не запрашивать разрешения.» Действие за пределами прав завершается ошибкой; запроса подтверждения нет |
Политика При блокировке прежних версий убрана: сохранённая в настройках или в сессии, она действует как С подтверждением.
Например, для загрузки зависимости нужна сеть. В режиме Правки с политикой С подтверждением агент запросит разрешение выполнить такую команду вне песочницы. С политикой Без подтверждений команда завершится ошибкой.
Перед тем как разрешить запуск вне песочницы, проверьте команду, папку и аргументы: доступ расширяется для всей команды.
В карточке запроса подтверждения команды есть кнопки Разрешить, Отклонить и Ответить сообщением; ответ сообщением описан в разделе «Управление агентом».
Обычно ядро не позволяет отклонить команду отдельно, и тогда Отклонить вместе с командой останавливает ход — на кнопке подсказка «Команда не выполнится, а ход остановится». Если подсказки нет, отклоняется только команда и агент продолжает работу.
Остальные решения собраны в меню Еще. Набор пунктов зависит от запроса:
- Разрешать до конца сессии — есть только в запросе сетевого доступа: до конца сессии ядро не спрашивает снова про этот адрес;
- Разрешить и не спрашивать о таких командах — ядро запоминает правило для команд с тем же началом и больше не спрашивает о них, в том числе в других сессиях. Начало команды, к которому относится правило, показано в карточке в строке Больше не спрашивать про:;
- Всегда разрешать <адрес> или Всегда запрещать <адрес>, где вместо <адрес> указан сетевой адрес из запроса, — ядро запоминает решение для этого адреса;
- Остановить ход — отклонить команду и остановить выполнение запроса. Пункта нет, если ход уже останавливает кнопка Отклонить.
Запрос подтверждения от субагента выглядит так же, но в заголовке карточки после названия запроса указан субагент, например «Запрос на выполнение команды · субагент Einstein». Ответить субагенту сообщением нельзя. Кнопка Отклонить с подсказкой «Команда не выполнится, а ход субагента остановится» и пункт Остановить ход субагента останавливают только ход этого субагента.
Ручные команды с !
В сессии или на пустом экране новой сессии, когда агент не работает, введите:
!git status
Команда выполняется напрямую, без модели и песочницы, с правами вашей учётной записи ОС и доступом к сети.
Внимание. Команда с
!выполняется с правами вашей учётной записи даже в режиме Чтение.
Во время работы агента текст с ! встаёт в очередь как обычное сообщение и в оболочке не выполняется — см. раздел «Управление агентом». Чтобы выполнить команду вручную, дождитесь завершения запроса или остановите его.
Встроенный терминал
Кнопка Терминал в правом верхнем углу окна или Ctrl+J открывает терминал внизу правой колонки; командная оболочка для ваших команд запускается сама (см. раздел «Интерфейс и навигация»).
В Windows и Linux терминал работает без песочницы, с правами вашей учётной записи; в macOS — в песочнице ядра. Если требования организации запрещают полный доступ, в Linux терминал открывается в песочнице. В Linux в терминале работает управление заданиями: Ctrl+Z, fg и Ctrl+C. Режим у поля ввода на терминал не влияет, а права команд агента от терминала не меняются.
Фоновые процессы, которые запустил агент, продолжают работать и после остановки запроса. Список показывает команда /ps, остановить все такие процессы можно командой /stop.
Когда действует новый режим
Режим, выбранный в меню у поля ввода или командой /permissions, сохраняется в сессии и сразу передаётся ядру. С новым режимом выполняются следующий запрос, проверка изменений /review, команда /init и работа над целью, которую ядро продолжает само (см. раздел «Цели и субагенты»).
Если ядро не приняло новый режим, над полем ввода появляется сообщение «Ядро не приняло новые права. Права остались прежними, выберите их еще раз.», а кнопка режима возвращается к прежнему значению. Выберите режим ещё раз. Перед /review приложение передаёт режим повторно; если это не удалось, проверка не запускается и появляется сообщение «Не удалось передать ядру права сессии. Ревью не запущено, повторите.».
Агент, который выполняет /review, не показывает запросов подтверждения: действия за пределами текущих прав он не выполняет.
Другие ограничения перечислены в разделе «Известные ограничения».