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

← Все статьи блога

Claude Code: вы ждали изоляции в скриптах — а помощник САМ открыл форк с полной перепиской

Автор: Алексей Доронин

Робот-программист за светящимся экраном раздваивается и передает копию всего разговора фоновому помощнику.

Когда разработчики запускают Claude Code в скриптах через параметр -p или встраивают его в свои сервисы с помощью Agent SDK, они обычно рассчитывают на предсказуемую изоляцию: если помощнику поручают фоновую подзадачу, дополнительный агент стартует с чистого листа. В обновлении 2.1.302 от 16 октября 2026 года разработчики тихо изменили это поведение по умолчанию. Теперь система сама запускает форк-субагентов — боковых помощников, которые мгновенно получают полную копию всей текущей переписки, системный промпт и доступ ко всем инструментам основной сессии. Если в разговоре уже фигурировали закрытые сведения или приватные детали проекта, о чистом старте можно забыть.

Что такое форк и почему он перестал быть тихим экспериментом

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

Главная причина такого решения со стороны создателей инструмента — экономия времени и вычислительных ресурсов. Поскольку системные инструкции и набор доступных инструментов у форка в точности совпадают с основной сессией, его первый запрос автоматически переиспользует серверный кэш родительского процесса. Агенту не приходится повторно прогревать контекст, что снижает расход токенов на старте. До сих пор этот режим работал по умолчанию исключительно в интерактивном терминале, начиная с версии 2.1.232. Однако в релизе 2.1.302 разработчики включили форки без предупреждения и во всех остальных окружениях: в автоматических скриптах, приложении для рабочего стола, расширении для VS Code и библиотеке Agent SDK.

claude-code-fork-subagenty-vklyucheny-sami-official-01 Claude Code: вы ждали изоляции в скриптах — а помощник САМ открыл форк с полной перепиской
Журнал изменений Claude Code 2.1.302: форки теперь активны из коробки не только в терминале, но и в скриптах claude -p, SDK и VS Code
claude-code-fork-subagenty-vklyucheny-sami-inline-01 Claude Code: вы ждали изоляции в скриптах — а помощник САМ открыл форк с полной перепиской
Схема различий между изолированным субагентом с чистым контекстом и форком, копирующим всю переписку родителя

Ловушка с изоляцией и забытая документация

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

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

claude-code-fork-subagenty-vklyucheny-sami-official-02 Claude Code: вы ждали изоляции в скриптах — а помощник САМ открыл форк с полной перепиской
Страница документации о субагентах: в тексте всё ещё указано, что в скриптах и SDK режим форка отключён по умолчанию

Разборы неочевидных изменений в кодовых агентах и проверенные сценарии автоматизации мы регулярно публикуем в нашем Telegram-канале.

Как вернуть контроль и выключить лишнее

Если вашим скриптам или конвейерам непрерывной интеграции требуется строгая изоляция, поведение помощника придется скорректировать вручную. Разработчики оставили единый глобальный выключатель. Достаточно задать переменную окружения CLAUDE_CODE_FORK_SUBAGENT=0, чтобы полностью деактивировать автоматический запуск форков во всех интерфейсах — от терминала и VS Code до сторонних приложений на базе Agent SDK.

Что делать тем, кто хочет сохранить пользу от вспомогательных агентов, но категорически не готов отдавать им историю основного диалога? Для этого предусмотрена точечная настройка прав. Вы можете оставить вызовы субагентов активными, но запретить конкретно механизм форка через правило для инструмента Agent(fork). В таком случае система продолжит делегировать рутинные задачи изолированным агентам с чистым контекстом, не создавая теневых клонов текущей сессии.

При этом существует одно важное исключение, которого нововведение не коснулось вовсе. При запуске через команду claude mcp serve режим форка не предлагается ни при каких обстоятельствах. А если вам однажды понадобится запустить форк вручную в сессии, где режим выключен по умолчанию, достаточно вызвать встроенную команду /subtask, которая в ранних сборках называлась /fork.

Фоновые процессы и новый порядок в редакторах

Вместе с повсеместным запуском форков обновление 2.1.302 навело порядок и в том, как вспомогательные агенты делят внимание пользователя. Теперь в настольном приложении и расширении для VS Code субагенты основного разговора всегда уходят в фоновый режим точно так же, как это изначально происходило в терминале. Сама модель больше не выбирает, где ей работать, избавляя пользователя от неожиданных пауз в интерфейсе.

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

С каждым крупным обновлением инструменты автоматизации разработки стремятся сэкономить секунды отклика и сократить счета за повторные запросы к модели. Однако за оптимизацией кэша часто скрываются изменения в архитектуре безопасности и изоляции процессов. Если ваши сценарии на Claude Code начали вести себя иначе или передавать между шагами лишний контекст, проверьте номер версии: вполне вероятно, что ваши субагенты уже знают обо всем разговоре гораздо больше, чем вы планировали им доверить.

Telegram