Skip to main content

Разрешения и безопасность

Veai может читать и изменять файлы, запускать команды в терминале и конфигурации IDE. Перед задачей определите, какие данные агенту можно видеть, что можно менять и какие действия можно выполнять. Эти ограничения задаются разными механизмами: одного общего переключателя для всех видов доступа нет.

Чтение файлов

Внутри проекта агент может читать код, тесты, ресурсы и конфигурации. Edit Scope не ограничивает чтение: он задаёт только область редактирования.

.veai/tools/.readignore запрещает агенту читать указанные файлы и папки. .veai/tools/.writeignore отдельно запрещает запись и создание файлов по указанным путям. Чтобы полностью закрыть путь и для чтения, и для записи, добавьте его в оба файла. Правила используют gitignore-подобные шаблоны, но поддержка всего синтаксиса .gitignore не гарантируется. Это подходит для файлов с API-ключами и другими данными, которые не должны попадать в контекст агента.

По умолчанию доступ за пределами проекта ограничен корнем проекта и служебными путями Veai: локальными кешами Maven и Gradle, каталогами логов, scratch-файлов и временных файлов IDE, системным временным каталогом и домашним каталогом агента. Для проекта в WSL также разрешён его каталог /tmp.

Неограниченное чтение файлов

Настройка Allow unrestricted read access to file system в Settings → Tools → Veai → Agent → File Access разрешает агенту читать файлы в любом месте локальной файловой системы. Она нужна, например, когда задача требует изучить исходники внешнего SDK, общий конфигурационный файл или соседний репозиторий, который находится вне проекта и разрешённых служебных каталогов.

  1. Откройте Settings → Tools → Veai → Agent → File Access.
  2. Включите Allow unrestricted read access to file system.
  3. Выполните задачу, для которой нужен внешний файл.
  4. После задачи выключите настройку, если постоянный доступ не нужен.

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

Подробнее: .readignore и .writeignore.

Запись и область изменений

Есть два независимых ограничения:

  • Edit Scope разрешает агенту предлагать и применять правки только в выбранных для текущей задачи файлах и папках. Остальной проект при этом остаётся доступным для чтения.
  • .veai/tools/.writeignore запрещает запись и создание файлов по указанным путям, но оставляет их доступными для чтения.

Edit Scope и .writeignore решают разные задачи. Первый задаёт рабочую область для конкретной задачи, второй запрещает запись по указанным путям во всём проекте. Для чувствительных данных добавьте путь и в .readignore, и в .writeignore.

Текстовая просьба «не меняй эти файлы» описывает намерение, но не настраивает Edit Scope или ignore-файлы. Для задачи с узкой областью задайте Edit Scope, а постоянные запреты храните в ignore-файлах.

Неограниченная запись файлов

Настройка Allow unrestricted write access to file system разрешает агенту создавать и изменять файлы в любом месте локальной файловой системы. Она нужна только для задачи, которая действительно должна менять внешний файл: например, обновить общий конфигурационный файл или согласованно внести правки в соседний репозиторий.

  1. Сначала включите Allow unrestricted read access to file system: без неё настройка записи недоступна.
  2. Включите Allow unrestricted write access to file system.
  3. До запуска задачи ограничьте постоянные запреты через .writeignore, а текущую область правок — через Edit Scope, если внешние файлы добавлены в него.
  4. Проверьте diff или содержимое каждого изменённого внешнего файла.
  5. После задачи выключите неограниченную запись. Если выключить неограниченное чтение, Veai автоматически выключит и неограниченную запись.

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

Команды и конфигурации IDE

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

Для тестов, сборок и приложений предпочтительны конфигурации IDE. Агент использует уже настроенный SDK и получает структурированный результат запуска. Сам факт использования конфигурации IDE не делает действие безвредным: приложение или тест могут менять базу данных, файлы либо внешние системы. Проверяйте, какую конфигурацию и в каком окружении предстоит запустить.

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

Разделяйте два вида контроля:

  1. До действия ограничьте доступ через Edit Scope, ignore-файлы и разрешения инструментов.
  2. После изменения проверьте diff и результаты запусков.

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

Проверка и откат изменений

Agent Changes показывает файлы, изменённые в активном чате, и diff для каждого файла. В окне можно принять или отклонить отдельные правки, а также обработать несколько изменений сразу. Изменения разных чатов не смешиваются.

Проверяйте правки до коммита:

  1. Просмотрите каждый изменённый файл и убедитесь, что правки относятся к задаче.
  2. Отклоните лишние изменения в Agent Changes.
  3. Запустите подходящие тесты или сборку через конфигурацию IDE.
  4. Проверьте результат запуска, а не только текстовый отчёт агента.

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

Минимальная настройка для первой задачи

Для безопасного знакомства начните с задачи только на чтение:

  • выберите небольшой файл без секретов;
  • попросите ничего не изменять и не запускать;
  • проверьте объяснение через навигацию IDE;
  • убедитесь, что Agent Changes пуст.

Пошаговый сценарий есть в Quickstart.