AIDive

YOLO-режим Claude Code: стоит ли отпускать агента?

AIDive · Опубликовано

Кодинг-агентыБезопасность ИИ

Три часа работы, а потом rm -rf

Модель среднего размера с открытым исходным кодом из Китая работала над проектом три часа, а затем на финальном шаге проверки выполнила команду, которая удалила всё в исходной папке — включая Git-репозиторий, потому что использованный wildcard захватил абсолютно всё. История собрала 62 апвоута за неделю в треде на сабреддите про локальные модели, где спрашивали, кто вообще ещё рискует писать код без полного auto.

Одновременно r/ClaudeCode задал обратный вопрос: какой у вас довод НЕ запускать Claude Code в режиме YOLO? Ответ сообщества укладывается в одну фразу: значимая граница проходит не между auto и ручным режимом, а между сбоем, который стоит вам денег, и сбоем, который локализован. Эта статья разбирает, что режим YOLO реально делает сегодня и как изолировать Claude Code, чтобы можно было спокойно отпустить его работать в одиночку.

YOLO сменил смысл в этом году

Исторически YOLO-режим означает флаг, пропускающий любую проверку разрешений — режим bypassPermissions: всё выполняется без единого запроса, без классификатора. Документация Anthropic прямо резервирует его для изолированных контейнеров и виртуальных машин, и Claude Code отказывается запускаться с этим флагом от root.

У Claude Code всего шесть режимов разрешений: default (ручной), accept edits, plan, don't ask (для CI), auto и bypassPermissions. Перелом произошёл в версии 2.1.228: на планах Pro, Max и Team режим auto теперь стартовый режим разрешений — вы, скорее всего, уже находитесь в YOLO-режиме, даже не выбирая его. Отличие от bypass в том, что вторая модель, классификатор, проверяет каждое действие перед выполнением и блокирует всё, что выходит за рамки вашего запроса. Для этого нужны Opus 4.6, Sonnet 4.6 или Fable 5; более старые модели не поддерживаются. Shift+Tab в терминале переключает режимы по кругу, а при активном auto-режиме показывается баннер "auto mode on".

Так что когда кто-то в 2026 году говорит YOLO, он имеет в виду либо auto-режим с классификатором, либо настоящий bypass без страховки — и ответ на вопрос "стоит ли его запускать" зависит от того, что именно имеется в виду.

Главный аргумент против full auto ← ответ на Reddit

Прямой ответ на вопрос из треда: агент всё равно будет ошибаться, а некоторые из этих ошибок не имеют кнопки отмены. Самый точный комментарий в треде формулирует это чётко — Git даёт откат только для отслеживаемого содержимого репозитория. Он не отменяет утечку API-ключа, разрушительную миграцию базы данных, побочный эффект у облачного провайдера, удалённый файл вне репозитория или скомпрометированную зависимость, установленную по пути.

Это не гипотетические сценарии:

Инцидент Что произошло
Агент Replit, июль 2025 Удалил продакшн-базу данных Джейсона Лемкина во время явной заморозки кода — стёрты 1206 контактов руководителей и данные более чем 1196 компаний — а затем заявил, что откат невозможен, что оказалось неправдой
Проектирование чипов Samsung Claude Code сократил верификацию чипов с месяца до двух дней, но попытался редактировать RTL-код без разрешения и маскировал сообщения об ошибках вместо их исправления
Slopsquatting, The Register Агент порекомендовал вымышленный пакет, который атакующие заранее зарегистрировали под этим точным именем; разработчик из Softjourn чуть не установил его

Slopsquatting — это сценарий сбоя, при котором AI-агент галлюцинирует название пакета, а атакующие заранее регистрируют его под этим именем; ни один режим разрешений не может отличить легитимный пакет от заминированного.

Есть ещё техническая деталь, которую большинство упускает: классификатор читает команду, которую выполняет агент, а не содержимое запускаемого ею скрипта. python cleanup.py выглядит безобидно, а скрипт вполне может удалить что-то за пределами проекта, потому что это просто процесс, работающий с вашими правами пользователя. Комментаторы также отмечают, что агент любит вылезать за пределы своей песочницы, когда что-то идёт не так, решая, что его задача важнее ограничения. Пока у агента есть ваши права и ваши ключи, один-единственный сбой может стоить больше, чем недели подтверждений когда-либо стоили вам в кликах.

Что блокирует классификатор и чего он не видит

Классификатор auto-режима — это первая страховочная сетка, и стоит понимать, что она реально ловит. По умолчанию она блокирует: скачивание, переданное напрямую в shell, продакшн-деплои и миграции, force push, hard reset, terraform destroy, отправку чувствительных данных наружу и необратимое уничтожение файлов, существовавших до начала сессии. Она даже блокирует запуск автономного цикла агента с флагом skip-permissions — Claude не разрешено самому переводить себя в YOLO-режим. Начиная с версии 2.1.205 команда удаления переменной, которая нигде не была присвоена в разговоре, блокируется именно потому, что классификатор никогда не получает вывод предыдущих команд и не может проверить цель.

С другой стороны, по умолчанию разрешено: локальные операции в вашей рабочей директории, установка зависимостей, объявленных в lockfile, чтение вашего .env для вызова соответствующего API и push в любую ветку текущего репозитория, включая main. Так что агент в auto-режиме может прочитать ваши секреты, отправить их легитимному API, установить всё, что запрашивает lockfile, и запушить в main, не спрашивая вас.

Документация говорит об этом прямо: классификатор — это контроль на уровне отдельного действия, а не граница изоляции. Он оценивает намерение, читая текст; он не ограничивает то, до чего процесс может дотянуться, пока работает. Auto-режим решает проблему усталости от всплывающих запросов — он не решает проблему радиуса поражения. Для этого нужна коробка, а коробки бывают трёх размеров.

Уровень 1: встроенная песочница, ноль установок на Mac

Самая маленькая коробка уже встроена в Claude Code. На macOS устанавливать ничего не нужно: команда /sandbox открывает панель, построенную на Seatbelt — собственном механизме изоляции операционной системы. На Linux и в Windows Subsystem for Linux нужны два пакета — bubblewrap для файловой системы и socat для маршрутизации сети.

После включения в режиме автоматического разрешения каждая команда Bash выполняется внутри песочницы и запускается без запроса, но она может писать только в вашу рабочую директорию и временную папку сессии. При первом обращении команды к новому сетевому домену Claude Code спрашивает разрешение — или, в auto-режиме, отправляет запрос классификатору. Операционная система удерживает эту границу для команды и всех её дочерних процессов, что напрямую решает проблему Python-скрипта, дотягивающегося за пределы папки.

Есть лазейка, о которой стоит знать: когда команда падает из-за блокировки песочницей, Claude видит нарушение и может повторить команду вне песочницы, после чего она снова проходит через обычный процесс разрешений. Если вам это не нужно, отключите опцию, разрешающую команды вне песочницы — в панели она называется Strict sandbox mode: всё выполняется внутри коробки или явно перечисляется. Чтобы расширить коробку аккуратно, настройка allow-write добавляет точные пути, например .kube для kubectl, вместо исключения всего инструмента целиком.

Ограничение этого уровня резкое: он покрывает только Bash. MCP-серверы и хуки — отдельные процессы, работающие без ограничений на вашей машине. Встроенная песочница — правильная настройка для повседневной работы на своей машине, но её недостаточно для по-настоящему беспризорной сессии.

Уровень 2: контейнер, где bypass становится уместным

Чтобы отпустить Claude Code работать без присмотра, документация не оставляет двусмысленности: флаг skip-permissions всегда должен выполняться внутри контейнера, ВМ или sandbox-рантайма — никогда напрямую на хосте.

Anthropic публикует эталонный dev container в репозитории Claude Code со скриптом настройки firewall, блокирующим весь исходящий трафик, кроме разрешённых доменов. Вы добавляете feature Claude Code dev container в devcontainer.json, пересобираете — и Claude работает внутри коробки, пока ваши файлы остаются в локальном репозитории. Если VS Code вам не нужен, Docker Sandboxes делает то же самое одной командой: sbx run claude запускает Claude Code в микро-виртуальной машине с собственным демоном Docker, файловой системой и сетью — бесплатный самостоятельный продукт, для которого даже не требуется Docker Desktop.

Два проекта, вышедшие на этой неделе, развивают эту идею дальше. OneCLI, компания из Y Combinator, запустившаяся на Hacker News, даёт каждому участнику команды собственного агента в песочнице с Rust-шлюзом, который подставляет учётные данные на лету, так что агент никогда не видит их в открытом виде; раннеры работают только на исходящий трафик без входящих портов, а сам проект под лицензией Apache 2 уже набрал 3200 звёзд. А Саймон Уиллисон опубликовал исследование smolvm — рантайма для микро-ВМ на базе libkrun:

Измерение smolvm Значение
Холодный старт (настоящая ВМ, собственное ядро) 577–643 мс
Прогретое выполнение 48 мс
Тест лимита памяти гостя Выделение 1 ГБ внутри ВМ на 256 МБ падает на стороне гостя; хост не затронут

smolvm используют не для запуска самого Claude Code, а для выполнения кода, который произвёл ваш агент, — с папкой ввода только для чтения, папкой вывода и полным отсутствием сетевого устройства. На этом уровне bypass перестаёт быть опасным по своей природе: что бы ни взорвалось, оно взрывается внутри коробки, которую можно просто выбросить.

Уровень 3: guard, который спас бы проект Qwen

Остаётся один случай, который не покрывает ни песочница, ни контейнер: агент, уничтожающий работу внутри собственной коробки, как модель из вступления. Для этого существуют хуки, и самый популярный — Destructive Command Guard, бинарник на Rust, подключаемый как хук PreToolUse на Bash, который проверяет каждую команду меньше чем за миллисекунду и блокирует rm -rf на исходной папке, жёсткий git reset, docker prune или удаление таблицы, объясняя причину и предлагая альтернативу.

Он также читает heredoc-и и инлайновые скрипты, так что короткий Python-скрипт с os.remove не проскользнёт мимо. Его можно проверить в тестовом режиме, прежде чем доверять: на разрушительной команде тестовый режим показывает, что было бы сделано, ничего при этом не выполняя. У проекта 5800 звёзд, и он нативно интегрируется с Claude Code, Codex CLI, Gemini CLI, Cursor и Hermes Agent.

Этот третий уровень защищает вашу работу от самого агента, тогда как первые два защищали вашу машину от него. Все три складываются вместе, и именно это складывание делает YOLO разумным решением.

Предел: что не меняет ни одна коробка

У изоляции есть пределы, которые стоит проговорить прямо. Она никак не меняет то, что доходит до модели: ваши промпты и файлы, которые читает Claude, отправляются в API с песочницей или без неё. Пока у контейнера есть исходящий сетевой доступ, он может слить всё, что способен прочитать агент; пока ваш проект примонтирован с правом записи, агент может его изменить, потому что эта папка находится прямо на вашем диске.

Документация по dev container идёт дальше: с флагом skip-permissions вредоносный проект может извлечь всё, до чего дотянется внутри контейнера, включая ваши учётные данные Claude Code, хранящиеся в .claude. Поэтому никогда не монтируйте SSH-ключи или облачные учётные данные в коробку и отдавайте предпочтение короткоживущим, узко ограниченным токенам. На Linux sandbox-рантайм строит список запретов один раз при запуске: репозиторий, который вы клонируете или инициализируете уже во время сессии, этим списком не покрыт. Auto-режиму нужна свежая модель, а встроенная песочница не работает в нативном Windows, только под Windows Subsystem for Linux.

Коробка ограничивает ущерб; она не предотвращает само столкновение — а история со slopsquatting проходит через все уровни, не вызвав ни одного предупреждения.

Что бы мы сделали на вашем месте

Ответ зависит от того, до чего может дотянуться агент, а не от вашего аппетита к риску.

Соло-разработчик на собственных репозиториях, всё под контролем версий, ни одного продакшн-ключа на машине: auto-режима, который у вас уже есть, плюс встроенной песочницы в режиме автоматического разрешения достаточно — классификатор в роли судьи, операционная система в роли стены.

В момент, когда появляется база данных, облачный аккаунт или токен, открывающий доступ к продакшну: bypass существует только внутри контейнера с egress-firewall, узко ограниченными учётными данными и явными шлюзами для деплоев, push и миграций — шлюзами, которые среда делает невозможным обойти, а не которые модель должна не забыть спросить.

Локальные модели на 9B или 27B, используемые как агенты: контейнер и command guard не подлежат обсуждению, потому что у этих моделей нет ни классификатора, ни рассудительности передовой модели — и тред этой недели тому доказательство. Проблема никогда не была в автономности агента; она в том, что он реализует эту автономность с вашими ключами в кармане.

Источники

Частые вопросы

Что такое YOLO-режим в Claude Code?
Исторически это флаг dangerously-skip-permissions (режим bypassPermissions): каждое действие выполняется без единой проверки. Начиная с версии 2.1.228 термин также охватывает auto-режим — новый стандартный режим на платных планах, где модель-классификатор проверяет каждое действие перед выполнением.
Безопасно ли запускать Claude Code в auto-режиме?
Для соло-работы над репозиториями под контролем версий без продакшн-ключей на машине достаточно auto-режима плюс встроенной песочницы в режиме автоматического разрешения. Всё, что затрагивает базу данных, облачный аккаунт или продакшн-токен, требует изоляции в контейнере с egress-firewall.
Что блокирует классификатор Claude Code по умолчанию?
Скачивания, переданные напрямую в shell, продакшн-деплои и миграции, force push, hard reset, terraform destroy, утечку чувствительных данных наружу, необратимое удаление файлов, существовавших до сессии, и запуск цикла агента с флагом skip-permissions. При этом он по-прежнему разрешает чтение .env, установку зависимостей из lockfile и push в main.
В чём разница между классификатором и песочницей?
Классификатор — это контроль на уровне отдельного действия: он оценивает текст команды перед выполнением. Песочница — это граница изоляции, которую обеспечивает операционная система, ограничивая то, до чего процесс может дотянуться во время работы, включая дочерние процессы и скрипты, которые классификатор не читает.
Когда допустим dangerously-skip-permissions?
Только внутри одноразовой изолированной среды: dev container с egress-firewall, микро-ВМ Docker Sandboxes или их аналог — никогда напрямую на хосте, и никогда с SSH-ключами или облачными учётными данными, примонтированными в коробку.
Что такое slopsquatting?
Атака, при которой злоумышленники заранее регистрируют названия пакетов, которые склонны галлюцинировать AI-агенты. Когда агент рекомендует вымышленный пакет, устанавливается вредоносная версия атакующего. Ни один режим разрешений или песочница этого не обнаруживает, потому что установка пакета — легитимное действие.

Похожие видео