Перейти к содержимому

Руководство

Разрешения ИИ-агентов для программирования и YOLO mode: более безопасная настройка

Режимы разрешений в Claude Code, Codex и Cursor: что на деле пропускают режимы «пропустить всё», что может изменить репозиторий и какие настройки агентов не коммитить.

· 8 мин чтения · Команда vetkit

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

Режимы разрешений в трёх инструментах

Каждый ИИ-агент для программирования балансирует между двумя вещами: как часто он вас прерывает и сколько может сделать, не спрашивая. В каждом инструменте настройки называются по-разному, но устроены одинаково: режим, который спрашивает, режим, в котором решает автоматический ревьюер, и режим, который пропускает всё и который неформально называют YOLO mode.

Режимы разрешений в Claude Code, Codex и Cursor
ИнструментРежимы согласно документацииНастройка «пропустить всё»
Claude CodeManual, auto (действия проверяет классификатор; стартовый режим для интерактивных сессий), acceptEdits, plan, dontAskbypassPermissions, также включается флагом --dangerously-skip-permissions
OpenAI CodexРежимы песочницы read-only, workspace-write, danger-full-access в сочетании с политикой подтверждений, например on-request или never--dangerously-bypass-approvals-and-sandbox, алиас --yolo
CursorAuto-review (рекомендуемый по умолчанию), AllowlistRun Everything

Что на самом деле пропускают режимы «пропустить всё»

Режимы «пропустить всё» убирают не только запросы. В Codex этот флаг отключает и подтверждения, и песочницу. Cursor описывает Run Everything как автоматический запуск каждого вызова инструмента без песочницы и без ревьюера. Режим bypass в Claude Code также пропускает запросы на запись в собственный каталог .claude и в .git.

Вендоры единодушны в том, где этим режимам место: Claude Code советует использовать режим bypass только в изолированных средах, таких как контейнеры или виртуальные машины, а Codex помечает свой флаг как повышенный риск и не рекомендует его. Даже в контейнере всё, что в него смонтировано, например облачные учётные данные или SSH-агент, становится лёгкой добычей. В руководстве о том, к чему агенты имеют доступ перечислено, что туда обычно входит.

Что может изменить репозиторий

Конфигурация агентов всё чаще живёт в репозитории рядом с кодом: настройки .claude/, .codex/config.toml, .cursor/mcp.json, определения хуков и файлы инструкций вроде AGENTS.md и CLAUDE.md. Для команд это удобно, но это значит, что git clone может изменить поведение агента.

  • Проверка доверия помогает. Codex загружает слой .codex/ проекта только после того, как вы отметили проект как доверенный. Claude Code применяет правила allow из репозитория только после того, как каждый участник команды отметит папку как доверенную, и игнорирует bypassPermissions в качестве режима по умолчанию в настройках проекта.
  • Не всё защищено одинаково. Хуки, определения MCP-серверов и файлы инструкций по-прежнему приезжают вместе с репозиторием; у MCP-серверов есть собственный запрос на подтверждение, а workspace trust в Cursor выключен, пока вы его не включите.
  • Старые версии ведут себя иначе. Настройку, которую текущие релизы игнорируют, всё ещё может учитывать более старый клиент на чьей-то машине, а само её наличие говорит о том, что проект рассчитывает на работу агентов без присмотра.

Настройки агентов, которые не стоит коммитить

Вот паттерны, которые стоит поймать на ревью, прежде чем они попадут в основную ветку:

  • Отключённые подтверждения: bypassPermissions как режим по умолчанию, субагент с permissionMode: bypassPermissions или скрипт в package.json, запускающий агента с --dangerously-skip-permissions или --dangerously-bypass-approvals-and-sandbox.
  • Правила allow, заранее разрешающие что угодно: Bash(*) или wildcard-ы для оболочек, интерпретаторов, раннеров пакетов и сетевых инструментов, например Bash(curl:*) или Bash(npx:*).
  • Хуки, которые скачивают и запускают скрипт, например передают вывод curl в shell через пайп.
  • Незакреплённые MCP-серверы, запускаемые из удалённого скрипта, доступные по обычному HTTP или настроенные с захардкоженными учётными данными.
  • Скрытый текст в файлах инструкций: HTML-комментарии или невидимые символы Unicode в AGENTS.md или CLAUDE.md, которые ревьюер не видит, а агент читает.
.claude/settings.json, который стоит пометить на ревью
{  "permissions": {    "defaultMode": "bypassPermissions",    "allow": ["Bash(*)", "Bash(curl:*)", "Bash(npx:*)"]  }}

Более безопасная базовая конфигурация

  1. На ноутбуках оставляйте режим по умолчанию или auto; режимы «пропустить всё» приберегите для одноразовых сред.
  2. Коммитьте узкие правила allow для конкретных команд, которые запускает ваш проект, и запрещайте чтение секретов.
  3. Закрепляйте версии MCP-серверов и храните их учётные данные в переменных окружения, а не в файле.
  4. Включайте песочницу там, где она опциональна, и ограничивайте сетевой доступ allowlist-ом.
  5. Считайте изменения конфигурации агентов и файлов инструкций значимыми для безопасности на ревью.
Более узкий .claude/settings.json
{  "permissions": {    "allow": ["Bash(npm run test:*)", "Bash(npm run lint)"],    "deny": ["Read(./.env)", "Read(./secrets/**)"]  }}

Правила allow, заканчивающиеся wildcard-ом, безопасны ровно настолько, насколько безопасна команда перед ним: правило для npm run test узкое, правило для node или curl — нет.

Где здесь vetkit

Аудит репозитория vetkit проверяет закоммиченную конфигурацию агентов в рамках набора AI code risks: настройки и флаги обхода подтверждений, правила allow, заранее разрешающие произвольные shell- или сетевые команды, хуки, запускающие удалённые скрипты, незакреплённые или запускаемые удалённо MCP-серверы, MCP-серверы по обычному HTTP или с захардкоженными учётными данными, а также скрытые комментарии или Unicode в файлах инструкций агентов. Те же правила используются сервером @vetkit/mcp и Agent Watch, который сообщает, что агенты на самом деле делают на машинах команды; эту сторону описывает руководство по мониторингу.

Источники

Утверждения о каждом инструменте мы взяли из его собственной документации :

Названия продуктов являются товарными знаками соответствующих владельцев. vetkit не связан с ними, не одобрен и не спонсируется ими. Заметили устаревшие сведения? Напишите на contact@vetkit.dev, и мы всё исправим.

Запросить ранний доступ

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

Мы используем эти данные только для ответа на ваш запрос. Политика конфиденциальности