Разрешения и безопасность
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, общий конфигурационный файл или соседний репозиторий, который находится вне проекта и разрешённых служебных каталогов.
- Откройте
Settings → Tools → Veai → Agent → File Access. - Включите
Allow unrestricted read access to file system. - Выполните задачу, для которой нужен внешний файл.
- После задачи выключите настройку, если постоянный доступ не нужен.
Риск: агент сможет прочитать любой доступный текущему пользователю локальный файл, включая документы, ключи и конфигурации с секретами. Настройка снимает ограничение по расположению файла;
.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 разрешает агенту создавать и изменять файлы в любом месте локальной файловой системы. Она нужна только для задачи, которая действительно должна менять внешний файл: например, обновить общий конфигурационный файл или согласованно внести правки в соседний репозиторий.
- Сначала включите
Allow unrestricted read access to file system: без неё настройка записи недоступна. - Включите
Allow unrestricted write access to file system. - До запуска задачи ограничьте постоянные запреты через
.writeignore, а текущую область правок — через Edit Scope, если внешние файлы добавлены в него. - Проверьте diff или содержимое каждого изменённого внешнего файла.
- После задачи выключите неограниченную запись. Если выключить неограниченное чтение, Veai автоматически выключит и неограниченную запись.
Риск: агент сможет перезаписать или создать любой файл, доступный текущему пользователю, в том числе файлы других проектов и пользовательские конфигурации. Такое изменение может не отображаться в обычном diff текущего репозитория и может повредить данные. Включайте настройку только на время конкретной задачи; для одного внешнего файла безопаснее перенести его в проект или выполнить правку вручную.
Команды и конфигурации IDE
Агент умеет выполнять команды в терминале. В меню Tools можно разрешить или запретить отдельные инструменты либо включить запрос подтверждения перед вызовом. Перед работой с незнакомым проектом проверьте эти настройки и запретите ненужные запуски.
Для тестов, сборок и приложений предпочтительны конфигурации IDE. Агент использует уже настроенный SDK и получает структурированный результат запуска. Сам факт использования конфигурации IDE не делает действие безвредным: приложение или тест могут менять базу данных, файлы либо внешние системы. Проверяйте, какую конфигурацию и в каком окружении предстоит запустить.
Подтверждения
Разделяйте два вида контроля:
- До действия ограничьте доступ через Edit Scope, ignore-файлы и разрешения инструментов.
- После изменения проверьте diff и результаты запусков.
Подтверждение настраивается для отдельных инструментов в меню Tools, а не одним общим переключателем для всех действий. Если действие опасно или необратимо, включите подтверждение либо запретите соответствующий инструмент. Не передавайте агенту доступ к продуктивным окружениям без принятых в вашей команде мер контроля.
Проверка и откат изменений
Agent Changes показывает файлы, изменённые в активном чате, и diff для каждого файла. В окне можно принять или отклонить отдельные правки, а также обработать несколько изменений сразу. Изменения разных чатов не смешиваются.
Проверяйте правки до коммита:
- Просмотрите каждый изменённый файл и убедитесь, что правки относятся к задаче.
- Отклоните лишние изменения в Agent Changes.
- Запустите подходящие тесты или сборку через конфигурацию IDE.
- Проверьте результат запуска, а не только текстовый отчёт агента.
Agent Changes относится к правкам файлов агента. Документация не гарантирует автоматический откат последствий выполненной команды, миграции, запроса к внешней системе или запуска приложения. Для таких действий заранее используйте тестовое окружение, резервные копии и штатный способ отката вашего проекта.
Минимальная настройка для первой задачи
Для безопасного знакомства начните с задачи только на чтение:
- выберите небольшой файл без секретов;
- попросите ничего не изменять и не запускать;
- проверьте объяснение через навигацию IDE;
- убедитесь, что Agent Changes пуст.
Пошаговый сценарий есть в Quickstart.