- Главная
- Искусственный интелект
- Права агента: настройка разрешений в проекте
Права агента: настройка разрешений в проекте
Вы уже можете контролировать запуск Bash-команд, но каждый раз решать вручную утомительно, а разрешать всё подряд — опасно. Разрешения (permissions) — это система правил, которая решает за вас: какие действия агент выполняет без вопросов, а какие останавливает и ждёт вашего согласия. В этом уроке разберём, как устроены права агента, из чего состоит грамотная настройка и как найти баланс между скоростью и безопасностью.
Что такое разрешения
Если право есть — действие выполняется сразу, если нет — агент останавливается и спрашивает вас. Такую модель называют permission-запрос: действие не запускается, пока вы его не одобрите.
Разрешения — это средний уровень управления между двумя крайностями: полным автопилотом и ручным контролем каждой мелочи. На автопилоте агент работает быстро, но вы не видите, что он делает. При ручном контроле вы видите всё, но каждый запуск теста превращается в диалог. Правильно настроенные разрешения дают скорость автопилота и безопасность ручного контроля одновременно.
Спектр разрешений
Права агента удобно представлять как спектр — от полной свободы до полного запрета. Понимание этого спектра помогает осознанно выбирать политику для каждого типа действий, а не настраивать всё «на глаз».
- Разрешено всегда. Действия выполняются без вопросов — обычно безопасные и частые: чтение файлов, git status, запуск тестов.
- Спрашивать каждый раз. Действие останавливается и ждёт одобрения — для команд, которые меняют состояние: установка пакетов, запись в файлы, git-коммиты.
- Спрашивать с предупреждением. Агент выполняет действие, но помечает его как рискованное — для операций, которые обычно безопасны, но могут быть опасны.
- Запрещено. Действие отклоняется автоматически, агент даже не пробует его выполнить.
Спектр применяется не к агенту в целом, а к отдельным категориям действий. Один агент может иметь право запускать тесты без вопросов, спрашивать перед git push и не иметь права удалять файлы.
Чем точнее вы разложите действия по этому спектру, тем меньше лишних вопросов и меньше рисков.
Что подлежит разрешению
Разрешения покрывают не только команды оболочки, но и другие способы воздействия агента на систему. Если собрать их вместе, получается полная карта того, что агент может сделать в вашем проекте, — и по ней удобно проверять свою конфигурацию.
| Категория | Что попадает под разрешение |
|---|---|
| Команды оболочки | Запуск bash-команд, включая установку пакетов и git-операции |
| Файлы | Создание, изменение, переименование и удаление файлов |
| Сеть | HTTP-запросы, загрузка файлов, обращение к внешним API |
| Переменные окружения | Чтение и изменение переменных, доступ к секретам |
| Система | Действия за пределами проекта: права, сервисы, глобальные установки |
Категорий может быть больше, а их границы зависят от harness. Полезно один раз посмотреть, какие категории поддерживает ваш инструмент, и решить по каждой: что агенту действительно нужно, а что лучше запретить. Принцип «минимум прав» здесь работает так же, как в безопасности вообще: агент получает ровно столько прав, сколько нужно для задачи, и ни граммом больше.
Как выглядит запрос разрешения
Когда действие требует одобрения, агент останавливается и показывает вам запрос. Важно понимать, что вы видите не абстрактное «разрешить?», а конкретную информацию, по которой можно принять решение.
Агент хочет выполнить: npm install express
Правило: установка пакетов → спрашивать
Ваш выбор: Разрешить / Отклонить / Разрешить всегда
В запросе обычно есть три части: само действие, причина его появления и варианты ответа. Кнопка «Разрешить всегда» особенно ценна: она не только пропускает текущее действие, но и создаёт правило на будущее. Один раз разрешив безопасную команду «навсегда», вы убираете её из будущих вопросов — это главный механизм постепенной настройки прав.
Перед тем как нажать «Разрешить», задайте себе вопрос: «что будет, если действие выполнится не так, как задумано?» Если ответ не нравится — отклоните или попросите изменить команду. Отказ — не тупик: вы можете объяснить агенту, что именно вас смущает, и он предложит безопасный вариант.
Что разрешать, а что нет
Универсального «правильного» набора правил не существует, но есть устойчивые закономерности. Частые безопасные операции стоит разрешать сразу — иначе диалог с агентом превратится в бесконечные подтверждения. А вот действия с необратимыми последствиями должны оставаться под контролем.
| Обычно можно разрешить | Лучше оставить под контролем |
|---|---|
| Чтение файлов и поиск по проекту | Удаление файлов и папок |
git status, git diff, git log |
git push, git reset --hard, force-операции |
| Запуск тестов и линтеров | Установка и обновление пакетов |
| Сборка и проверка кода | Команды sudo и изменения вне проекта |
| Мелкая работа с файлами внутри проекта | HTTP-запросы и загрузка файлов из сети |
Начинайте с жёстких настроек и ослабляйте их по мере роста доверия, а не наоборот. Первые сессии с новым агентом ведите с максимальными вопросами, наблюдайте, какие команды он реально запускает, и только потом разрешайте частые безопасные из них «навсегда». Так вы строите правила на основе фактов, а не предположений, и не пропустите неожиданное поведение на старте.
Заметьте закономерность: разрешать стоит то, что можно безопасно повторить и легко откатить через откат изменений. Чтение, тесты, просмотр статуса — безобидны в любом количестве. Удаление и push необратимы или затрагивают других — они всегда должны быть заметны. Если сомневаетесь в команде — оставьте её под вопросом.
Как настраивать правила
Правила разрешений обычно задаются в конфигурационном файле или через интерфейс harness. Хорошая конфигурация читается как инструкция: по ней сразу видно, что агент делает сам, а что согласовывает с вами. Часто правила можно разделить на глобальные — для всех проектов, и локальные — для конкретного проекта.
Разрешать без вопросов:
– чтение файлов в проекте
– git status, git diff, git log
– запуск тестов и линтеров
Спрашивать:
– запись и изменение файлов
– установка пакетов
– git commit и git push
Запрещено:
– удаление файлов за пределами проекта
– команды с sudo
При настройке помните про контекст сессии: чем меньше лишних подтверждений, тем быстрее агент работает, но каждый вопрос — это ваше внимание и время. Идеальная конфигурация — та, в которой вы почти не видите запросов, но при этом спокойны за опасные операции. Если запросы идут постоянно — вы слишком много запретили; если агент молча делает что-то тревожное — слишком много разрешили.
Диагностика проблем с разрешениями
Неправильная настройка прав проявляется двумя типичными симптомами, и оба легко распознать. Первый — агент «вязнет»: на каждый чих спрашивает разрешения, работа стоит, сессия раздражает. Второй — агент «летит»: делает всё сам, а вы узнаёте о его действиях постфактум. Обе крайности лечатся пересмотром правил, а не «силой воли».
- Вязнет. Слишком много вопросов — разрешите частые безопасные действия «навсегда».
- Летит. Нет вопросов вообще — верните под контроль действия с необратимыми последствиями.
- Повторяющиеся вопросы. Один и тот же запрос приходит снова — создайте для него постоянное правило.
- Неожиданный отказ. Агент не может сделать нужное — проверьте, не попало ли действие под запрет.
Периодический пересмотр правил — часть гигиены работы с агентом.
Раз в несколько сессий полезно открыть конфигурацию и спросить себя: какие из этих разрешений я реально использую, какие можно добавить, а какие пора убрать. Правила должны отражать вашу текущую работу, а не быть застывшим списком из прошлого месяца.
Используйте «Разрешить всегда» как приборную панель доверия: каждый раз, когда вы нажимаете эту кнопку, вы фактически добавляете правило. Через неделю откройте список правил и посмотрите на него, как на карту своих отношений с агентом: где вы ему доверяете, а где держите на коротком поводке. Это лучший способ заметить, что вы разрешили что-то по привычке, хотя давно пора убрать.
Итоги
Грамотная настройка — это спектр прав, разложенный по категориям действий, с минимумом прав по умолчанию и постепенным ослаблением под наблюдением. Проверяйте правила периодически, и агент будет работать быстро, но никогда не действовать «втихую».
В следующем уроке разберём ваш начальный контекст: что попадает в контекст при старте сессии, откуда агент берёт информацию о вас и проекте и как управлять этим первичным наполнением.
Глоссарий
- Разрешение (permission) — право, которое пользователь даёт агенту на конкретное действие.
- Permission-запрос — остановка агента перед действием для получения одобрения пользователя.
- Спектр разрешений — шкала прав от «разрешено всегда» до «запрещено».
- Разрешить всегда — вариант ответа, создающий постоянное правило для действия.
- Категория действий — группа операций (файлы, команды, сеть), к которой применяются правила.
- Минимум прав — принцип настройки, при котором агент получает ровно столько прав, сколько нужно.
- Глобальное правило — настройка, действующая во всех проектах.
- Локальное правило — настройка, действующая в конкретном проекте.
- Конфигурация разрешений — файл или набор настроек, описывающий права агента.
- Harness — программа-оболочка, через которую агент выполняет действия и управляется пользователем.