Параллельные задачи: запуск нескольких агентов Claude одновременно
📚 Навигация по серии: Предыдущая статья 40 Chrome: управление браузером с помощью AI научила вас подключать Claude к браузеру для автоматизации кликов и заполнения веб-форм. Эта статья переходит в другое измерение — вместо того чтобы заставлять одного Claude последовательно выполнять разные задачи, мы научимся запускать несколько параллельных потоков работы. Мы разберем изоляцию через git worktree, фоновые сессии и пакетный запуск в безголовом режиме (headless), а также ответим на главный вопрос: когда параллельная работа экономит время, а когда только вредит.
Стыдно признаться, но когда я впервые попытался организовать «параллельную работу», я сделал глупость: открыл два терминала, перешел в один и тот же каталог проекта и в одном окне попросил Claude изменить форму входа на фронтенде, а во втором — исправить баг в бэкенде.
Я думал: «Вот это эффективность, двойная скорость разработки!»
В итоге произошло следующее: обе сессии начали одновременно редактировать файл package.json. Изменения, внесенные в одном окне, были затерты и откачены изменениями из другого окна. Команда git status показала кашу в рабочей области, в которой невозможно было разобрать, какая строка кем была добавлена. В итоге я потратил больше времени на ручную сборку изменений, чем ушло бы на последовательное решение задач. Тогда я понял: параллельная работа — это не просто открытие нескольких терминалов, это обеспечение изоляции, чтобы процессы не мешали друг другу.
Для решения этой проблемы в Claude Code встроены инструменты: параметр --worktree создает изолированную копию проекта для каждой сессии, параметр --bg отправляет задачу выполняться в фоновый режим, а меню claude agents служит панелью управления для мониторинга процессов. В этой статье мы разберем эти инструменты и запустим параллельные задачи на практике.
Прочитав эту статью, вы получите:
- Ответ на вопрос «зачем нужна параллельная работа» и два её обязательных условия: независимость задач и отсутствие конфликтов за файлы.
- Сравнение четырех встроенных способов параллельного запуска (субагенты, консоль агентов, команды агентов, динамические воркфлоу) для правильного выбора инструмента.
- Инструкцию по изоляции рабочих директорий через
--worktreeдля предотвращения конфликтов изменений (с разбором файлов.worktreeincludeи правил очистки). - Способы использования
claude agentsи параметра--bgдля отправки задач в фон и мониторинга прогресса на одном экране с возможностью ручного вмешательства. - Правила написания скриптов для пакетного выполнения задач в безголовом режиме (headless) с помощью параметра
claude -pи оптимизации запуска через--bare. - Главное правило выбора: в каких случаях стоит запускать задачи параллельно, а когда это усложнит процесс.
01 Зачем нужна параллельная работа и её главное условие
Параллельный запуск решает задачу одновременного выполнения нескольких независимых задач без ожидания завершения каждой из них. Однако параллельная работа возможна только при соблюдении условия: задачи не должны изменять одни и те же файлы проекта.
Обычно мы ведем разработку в рамках одной сессии диалога с Claude, давая ему последовательные указания. Этого достаточно для 90% задач. Но в двух случаях последовательная работа замедляет процесс.
Первый случай: задачи независимы по своей природе. Например, «изменение стилей кнопки», «исправление бага в авторизации» и «написание тестов для модуля поиска» не связаны друг с другом. Но при последовательной работе вам придется ждать завершения верстки кнопки, прежде чем поручить исправление бага в авторизации. Вы вынуждены выполнять задачи последовательно, хотя они могли бы делаться одновременно.
Второй случай: масштабные изменения. Например, вам нужно переписать устаревший метод API во всем проекте, затрагивающем десятки файлов. Выполнение такой задачи в одном чате переполнит контекст диалога (рабочую память AI, статья 19), и Claude начнет путаться и забывать инструкции.
Аналогия: очереди на кассах в супермаркете. Если в магазине работает только одна касса, всем покупателям приходится стоять в одной длинной очереди и ждать, пока обслужат предыдущих — это последовательный процесс. Администрация магазина решает проблему открытием дополнительных касс: поток покупателей распределяется по нескольким кассирам, и общее время ожидания сокращается. Параллельный запуск задач — это открытие дополнительных касс: мы распределяем независимые задачи по разным сессиям Claude, выполняя их одновременно.
Но разделение покупателей по кассам работает только при условии, что каждая касса независима. Если три кассира начнут использовать один денежный ящик, одновременно пытаясь положить туда купюры и выдать сдачу, возникнет хаос. Это и произошло в моем неудачном эксперименте. Поэтому главное правило параллельной работы звучит так:
Если задачи затрагивают одинаковые файлы, используйте изоляцию через worktree.
Типичные примеры задач для параллельного выполнения:
- Исправление багов в независимых модулях — запускаем три отдельные сессии для исправления ошибок в разных папках.
- Очистка кодовой базы от неиспользуемого импорта — поручаем субагенту (статья 23) собрать список файлов, не перегружая контекст основного чата.
- Массовое изменение по шаблону — пишем скрипт безголового режима (headless) для пакетной обработки десятков файлов.
💡 Резюме в одной фразе: Параллельная работа позволяет выполнять независимые задачи одновременно, сокращая время ожидания. Главное условие безопасности — исключение конфликтов за файлы с помощью изоляции рабочих директорий.
02 Встроенные методы параллельного запуска
Claude Code предлагает несколько способов параллельного выполнения задач. Их различие заключается в том, кто именно координирует процесс: сам Claude в рамках диалога, вы управляете списком фоновых задач или логика прописана в скрипте автоматизации.
Сравним четыре встроенных метода параллельного запуска:
| Метод | Что из себя представляет | Кто координирует | Когда применять |
|---|---|---|---|
| Субагенты (Subagent) | Запуск вспомогательного агента из активного диалога для решения локальной задачи (статья 23) | Claude в диалоге | Когда нужно выполнить дочернюю задачу (например, прочитать лог или найти файл), не засоряя контекст основного чата |
| Консоль агентов (Agent view) | Интерактивный экран для управления и мониторинга нескольких фоновых сессий через claude agents | Вы управляете процессами вручную | Когда у вас есть несколько независимых задач, вы хотите запустить их в фоне и контролировать прогресс с возможностью вмешательства |
| Команды агентов (Agent teams) | Совместная работа нескольких сессий с общим списком задач и обменом сообщениями под руководством лидера (статья 29) | Claude выступает в роли координатора | Для декомпозиции крупной задачи на подзадачи с распределением по исполнителям и синхронизацией результатов |
| Динамические воркфлоу (Workflows) | Скрипт автоматизации, запускающий группу субагентов для выполнения и перекрестной проверки результатов | Сценарий автоматизации, а не ручной контроль | Для крупных рутинных операций (миграция кода, аудит безопасности сотен файлов) с программной проверкой результатов |
⚠️ Экспериментальный статус функций: Консоль агентов (agent view) и динамические воркфлоу (workflows) находятся на этапе тестирования (Research Preview), а команды агентов (agent teams) по умолчанию выключены в настройках. Интерфейс и команды могут измениться в будущих версиях. Проверяйте версию с помощью
claude --version. Субагенты являются стабильным инструментом.
Базовое различие: «кто управляет процессом». Если координацией занимается Claude в чате — это субагенты; если вы контролируете фоновые задачи — это консоль агентов; если Claude координирует группу исполнителей — это команды агентов; если процесс описан программно — это динамические воркфлоу.
Также есть вспомогательные инструменты для организации параллельной работы:
- Worktrees: механизм git для создания изолированных копий проекта, гарантирующий защиту файлов от конфликтов изменений. Подробнее в разделе 03.
- Команда
/batch: встроенный навык (skill), который автоматически разбивает крупную задачу на 5-30 изолированных через worktree субагентов с последующим созданием пул-реквестов. Это готовая связка «субагенты + worktree».
Работу с субагентами (статья 23) и командами агентов (статья 29) мы подробно разобрали ранее. В этой статье мы сосредоточимся на новых инструментах: изоляции через worktree, фоновом запуске и безголовом режиме (headless).
💡 Резюме в одной фразе: Выбор метода параллельного запуска зависит от того, кто координирует задачи: Claude в чате (субагенты), вы в консоли (фоновые сессии), команда агентов во главе с лидером или скрипт автоматизации (workflows).
03 Изоляция через worktree: каждому потоку своя копия кода
Этот раздел описывает решение проблемы конфликтов при изменении файлов и является ключевым при настройке параллельной работы.
Суть проблемы: если запустить две сессии в одной папке проекта, они начнут одновременно вносить правки в одни и те же файлы, перезаписывая результаты работы друг друга. Использование встроенного механизма git worktree решает эту проблему.
Аналогия: работа с копиями чертежа. Если выдать трем инженерам один исходный лист чертежа для внесения правок, они быстро испортят чертеж исправлениями поверх друг друга. Правильный подход — сделать три копии чертежа для каждого инженера. Они внесут правки в свои листы, а затем главный инженер объединит их на исходном чертеже. Механизм git worktree делает то же самое: он создает изолированные папки проекта с выбранными ветками на основе общего репозитория git, сохраняя единую историю коммитов. Изменения в одной папке никак не затрагивают файлы в другой.
Преимущества изоляции описаны в документации:
Запуск сессий Claude Code в отдельных worktree гарантирует, что изменения файлов в одном чате не затронут файлы другого. Вы можете поручить Claude написание новой функции в одном терминале и параллельно исправлять баг во втором.
Запуск изолированной сессии одной командой
Для автоматического создания изолированной папки и запуска в ней сессии Claude Code используйте флаг --worktree (или сокращенно -w) с указанием имени. Программа создаст временную рабочую копию и запустит в ней сессию. По умолчанию копия создается в папке .claude/worktrees/<имя>/, а рабочая ветка получит имя worktree-<имя>:
claude --worktree feature-authДля запуска второй независимой задачи откройте другое окно терминала и введите команду с новым именем:
claude --worktree bugfix-123Теперь сессии изолированы друг от друга, одна настраивает авторизацию, вторая правит баг, их файлы не пересекаются. Если не указывать имя, Claude сгенерирует его автоматически (например, bright-running-fox):
claude --worktreeПереключить активную сессию в режим изолированной копии можно и текстом во время диалога: просто напишите «перейди в режим worktree», и Claude воспользуется системным инструментом EnterWorktree.
При первом запуске флага
--worktreeв новом репозитории необходимо сначала запустить обычную командуclaudeв этой папке, чтобы подтвердить доверие к рабочему каталогу. Без этого предварительного подтверждения запуск--worktreeвернет ошибку. Это правило действует и для безголового режима-p.
Три проблемы при работе с worktree и их решение
Проблема 1: Мусор в git status. Папку .claude/worktrees/ необходимо добавить в файл .gitignore. В противном случае git будет видеть временные рабочие папки как огромное количество неотслеживаемых файлов в основном репозитории.
Проблема 2: Отсутствие неотслеживаемых файлов (например, .env). Создаваемая рабочая копия является чистым слепком репозитория git. Файлы, которые не добавлены в git (конфигурационные файлы .env, .env.local с паролями и ключами), в новую папку не копируются. В результате запущенное в worktree приложение не сможет подключиться к базе данных или упадет на старте. Для решения этой проблемы создайте в корне проекта файл .worktreeinclude и перечислите локальные файлы, которые нужно автоматически копировать в новые рабочие области (синтаксис аналогичен файлу .gitignore):
.env
.env.local
config/secrets.jsonЭта ошибка часто возникает на практике: вы запускаете сессию в изолированной копии, поручаете Claude изменить код бэкенда, но приложение при тестах выдает ошибку подключения к БД, так как файл .env с паролями не скопировался в изолированную директорию. Использование .worktreeinclude решает эту проблему.
Проблема 3: Удаление временных папок при выходе. Поведение системы очистки:
- Если в рабочей копии не было изменений (нет новых коммитов, неотслеживаемых файлов или измененного кода): папка worktree и её ветка удаляются автоматически при закрытии сессии. Если сессии было задано имя через флаг
--name, программа спросит, нужно ли сохранить файлы. - Если изменения были внесены: при выходе программа запросит подтверждение: сохранить или удалить рабочую область. При сохранении файлы и ветка останутся на диске для продолжения работы, при удалении — временная папка со всеми изменениями будет стерта.
- В неинтерактивном режиме (флаг
-p) автоматическая очистка не запускается, так как нет диалога с пользователем. Удалять старые рабочие копии нужно вручную командойgit worktree remove.
Ручное управление копиями через git
Если вы хотите полностью контролировать расположение папок и имена веток, создавайте рабочие копии командами git самостоятельно (подробнее о работе с git в статье 43):
# Создаем рабочую копию в соседней папке с новой веткой
git worktree add ../project-feature-a -b feature-a
# Переходим в созданную папку и запускаем сессию
cd ../project-feature-a && claude
# Просмотр списка активных рабочих областей
git worktree list
# Удаление рабочей копии после слияния изменений
git worktree remove ../project-feature-aВажный нюанс: поскольку рабочая копия создается в новой папке, вам потребуется заново установить зависимости (
npm install,pip install) и настроить виртуальное окружение в этой папке. Настройки из корня проекта автоматически не переносятся.
💡 Резюме в одной фразе: Механизм git worktree создает изолированные папки проекта для каждой сессии. Запуск выполняется командой
claude --worktree имя. Не забудьте прописать.claude/worktrees/в.gitignoreи настроить файл.worktreeincludeдля копирования конфигов.
04 Управление фоновыми сессиями через claude agents
Изоляция файлов настроена. Но как управлять несколькими запущенными сессиями, чтобы не переключаться между окнами терминалов? Для этого используется консоль агентов (agent view).
Аналогия: пульт управления полетами в аэропорту. Диспетчер не смотрит на каждый самолет в бинокль — перед ним экран радара, на котором отображаются все рейсы: их высота, курс и статус. Диспетчер видит общую картину и вмешивается в управление конкретным бортом только при необходимости. Команда claude agents открывает аналогичный экран: список всех фоновых задач, их текущий статус с возможностью перехвата управления в нужный момент.
Функция Agent view является экспериментальной (Research Preview) и требует актуальной версии Claude Code. Интерфейс и возможности могут меняться в обновлениях.
Отправка задачи в фоновый режим
Фоновые задачи не привязаны к текущей консоли: они продолжают выполняться, даже если вы закроете терминал или запустите параллельный интерактивный чат. Запустить задачу в фоне можно несколькими способами.
Способ 1: Запуск из терминала OS с флагом --bg:
claude --bg "Найди причину падения интеграционного теста SettingsChangeDetector"После запуска программа выведет короткий ID задачи и список управляющих команд:
backgrounded · 7c5dcf5d
claude agents список активных сессий
claude attach 7c5dcf5d подключиться к сессии в этом терминале
claude logs 7c5dcf5d показать последние логи
claude stop 7c5dcf5d остановить выполнение задачиСпособ 2: Отправка из активного диалога с помощью команды /bg (сокращение от /background). Текущий разговор свернется в фон, освободив терминал.
Консоль управления claude agents
Для просмотра состояния всех фоновых задач запустите команду:
claude agentsОткроется интерактивная панель управления (Agent view).
Интерфейс панели отображает список задач:
- ID задачи (например,
7c5dcf5d). - Имя задачи (заданное флагом
--nameили сгенерированное по смыслу). - Текущий статус:
running(выполняется),waiting for input(требует подтверждения прав или ответа пользователя),completed(успешно завершена) илиfailed(завершилась с ошибкой). - Используемые ресурсы и время работы.
Управление в интерактивном меню:
- Стрелки вверх/вниз — перемещение по списку задач.
- Клавиша Enter или
a(attach) — подключение к выбранной задаче. Вы вернетесь в интерактивный режим общения с этой сессией, а терминал заблокируется до её завершения или повторной отправки в фон через/bg. - Клавиша
l(logs) — просмотр последних логов выполнения без блокировки консоли. - Клавиша
s(stop) — принудительная остановка задачи (убийство процесса). - Клавиша
q— выход из панели управления обратно в консоль OS. Фоновые процессы при этом продолжат выполняться.
Если задача в фоне дойдет до этапа изменения файлов или выполнения опасной команды, требующих подтверждения, её статус сменится на waiting for input. Вы увидите это на экране claude agents, сможете подключиться через attach, подтвердить действие и снова свернуть задачу в фон. Это избавляет от необходимости постоянно держать открытыми несколько вкладок терминала.
💡 Резюме в одной фразе: Запуск фоновой задачи выполняется с флагом
claude --bg "запрос", а управление процессами — через интерактивную консольclaude agents, позволяющую просматривать логи, останавливать задачи и подключаться к ним для ручного подтверждения.
05 Безголовый режим (headless) для пакетного выполнения задач
Если вам нужно запустить однотипные изменения на множестве файлов или встроить Claude Code в скрипты автоматизации (например, CI/CD), интерактивный интерфейс не подходит, так как он требует ручного ввода. Для таких сценариев предназначен безголовый режим (headless).
Аналогия: конвейер автоматической сборки. Вместо того чтобы вручную подносить каждую деталь к мастеру и подтверждать приклеивание, вы настраиваете робота, который по программе обрабатывает детали одну за другой. Безголовый режим — это и есть такой конвейер: вы передаете Claude задачу параметром командной строки, он выполняет её автономно и завершает работу.
Параметр запуска -p (prompt)
Для выполнения разовой задачи без открытия чата используйте флаг -p (или --prompt) с текстом запроса:
claude -p "Проверь форматирование кода в файле src/auth.ts и исправь ошибки линтера"Программа запустится, прочитает файл, внесет исправления, закоммитит изменения (если это разрешено правилами) и закроет сессию. Команда вернет код управления консоли OS.
Для ускорения запуска безголовых задач используйте флаг --bare. Он отключает вывод приветственных экранов, анимаций загрузки и форматирования интерфейса, возвращая только чистый текстовый результат работы. Это полезно при парсинге данных или встраивании в скрипты:
claude --bare -p "Собери список всех неиспользуемых импортов в папке src/"Настройка прав в неинтерактивном режиме
В безголовом режиме Claude не может задать вам вопрос «разрешить ли изменение файла» или «запустить ли команду». Если при выполнении задачи потребуется подтверждение прав, а вы работаете в неинтерактивном режиме, задача завершится ошибкой.
Поэтому при пакетном запуске важно правильно настроить права. Обычно используются параметры:
claude --permission-mode acceptEdits -p "Выполни рефакторинг методов в папке api/"Параметр --permission-mode acceptEdits (или запуск в изолированном контейнере с правами bypassPermissions, статья 21) разрешает Claude изменять файлы без вопросов.
Пример интеграции в скрипт автоматизации сборки (bash-скрипт):
#!/bin/bash
# Запуск рефакторинга файлов в изолированной копии
claude --worktree refactor-job --permission-mode acceptEdits -p "Обнови версию API в файлах конфигурации"
# Проверка результатов сборки
npm run buildИспользование безголового режима в связке с изолированными копиями worktree позволяет автоматизировать крупные рутинные задачи рефакторинга кодовой базы без участия разработчика.
💡 Резюме в одной фразе: Безголовый режим (headless) запускается флагом
claude -p "запрос", флаг--bareотключает оформление интерфейса для автоматизации, а для предотвращения ошибок из-за запросов прав используйте режим разрешений--permission-mode acceptEdits.
06 Когда стоит запускать задачи параллельно
Параллельный запуск — мощный инструмент, но его не стоит применять для любых задач. Иногда попытка распараллелить работу приводит к путанице и замедляет процесс.
Сформулируем правила выбора режима работы:
| Сценарий | Выбор режима | Почему |
|---|---|---|
| Разработка связанных модулей (например, изменение API и его вызова на фронтенде) | ❌ Последовательно | Изменения в одном месте должны сразу учитываться при написании кода в другом |
| Исправление независимых багов в разных папках проекта | ✅ Параллельно | Задачи не пересекаются по файлам, параллельный запуск сэкономит время |
| Проведение аудита безопасности или рефакторинга сотен файлов | ✅ Параллельно | Задача разбивается на пакеты и выполняется субагентами в изолированных worktree |
| Мелкие правки верстки или текста | ❌ Последовательно | Время на создание изолированных копий превысит пользу от параллельного запуска |
| Поиск архитектурного решения (исследование вариантов А и Б) | ✅ Параллельно | Запуск параллельных сессий в изолированных ветках позволяет сравнить варианты на практике |
Основной критерий: наличие зависимостей между задачами. Если результат работы шага А необходим для выполнения шага Б (например, нужно сначала написать метод получения данных, а потом использовать его в интерфейсе), параллельный запуск не имеет смысла — Claude во втором окне не будет знать структуру нового метода. Выполняйте такие задачи последовательно. Если задачи независимы, распараллеливание оправдано.
💡 Резюме в одной фразе: Распараллеливайте независимые задачи (разные баги, автотесты, рефакторинг каталогов) и поиск альтернативных решений. Задачи с взаимным влиянием файлов выполняйте последовательно в одной сессии.
07 Практика: запуск двух параллельных задач в изолированных worktree
Проверим работу параллельных сессий. Мы создадим две изолированные копии проекта и запустим в них параллельное выполнение задач: первая сессия будет изменять один файл, вторая — другой.
Шаг 1: Подготовка репозитория
Создадим тестовую папку и файлы (если не сделали этого в предыдущей статье):
mkdir ~/parallel-demo && cd ~/parallel-demo
git init
echo "print('hello from app')" > app.py
echo "print('hello from utils')" > utils.py
git add . && git commit -m "init: базовые файлы"Убедитесь, что первый интерактивный запуск claude в этой папке уже выполнялся, чтобы подтвердить доверие каталогу.
Шаг 2: Запускаем первую задачу в фоне в изолированном worktree
В первом окне терминала запустим изменение файла app.py в фоновом режиме с изоляцией:
claude --worktree job-app --bg "Измени текст приветствия в файле app.py на 'hello from modified app'"Ожидаемый результат: программа создаст изолированную копию
.claude/worktrees/job-app/, создаст веткуworktree-job-app, отправит задачу в фон и выведет её ID.
Шаг 3: Запускаем вторую задачу параллельно
В том же или новом окне терминала запустим изменение файла utils.py во второй изолированной копии:
claude --worktree job-utils --bg "Измени текст в файле utils.py на 'hello from modified utils'"Ожидаемый результат: создастся вторая изолированная копия в папке
job-utils, запустится параллельный процесс изменения файлаutils.py, консоль выведет ID второй задачи.
Шаг 4: Проверяем статус задач через консоль управления
Запустим интерактивный монитор:
claude agentsОжидаемый результат: откроется экран со списком двух задач (
job-appиjob-utils). Статус задач должен указывать на выполнение (running) или ожидание подтверждения прав (waiting for input). Подключитесь к задачам поочередно через клавишу Enter для подтверждения изменений в diff (если не был указан автоматический режим разрешений), после чего вернитесь в консоль.
Шаг 5: Проверяем слияние результатов в основном репозитории
После того как обе задачи завершатся (статус completed), закройте консоль agents клавишей q. Проверьте ветки в репозитории:
git branch -aВы увидите ветки worktree-job-app и worktree-job-utils. При слиянии этих веток в основную ветку (main) изменения объединятся без конфликтов, так как сессии работали в изолированных папках и изменяли разные файлы.
Пройдя эти шаги, вы на практике настроили параллельное выполнение задач с изоляцией файлов.
💡 Резюме в одной фразе: Практический тест подтверждает: запуск задач с флагами
--worktreeи--bgвыполняет изменения параллельно в изолированных папках, а консольclaude agentsпозволяет контролировать статус процессов на одном экране.
08 Заключение
Мы разобрали инструменты параллельного выполнения задач в Claude Code, правила изоляции файлов через worktree и автоматизацию процессов.
Резюмируем ключевые выводы статьи:
| Задача | Инструмент | Описание |
|---|---|---|
| Исключить конфликты при редактировании файлов | Флаг --worktree (или -w) | Создает изолированную копию репозитория для сессии. Защищает файлы от перезаписи |
| Настроить копирование локальных файлов в worktree | Файл .worktreeinclude | Содержит список неотслеживаемых файлов (например, .env), копируемых в новые области |
| Запустить задачу в фоновом режиме | Флаг --bg или команда /bg | Выполняет задачу в фоне без блокировки терминала пользователя |
| Мониторить фоновые процессы | Команда claude agents | Открывает панель управления (Agent view) для контроля статусов, чтения логов и подключения к задачам |
| Выполнить задачу без запуска чата (headless) | Флаг -p "запрос" | Запускает разовое выполнение инструкции с автоматическим закрытием сессии |
| Убрать оформление интерфейса в скриптах | Флаг --bare | Возвращает только чистый текстовый результат работы для автоматизации |
Использование параллельного запуска в связке с изоляцией файлов и фоновым мониторингом позволяет значительно повысить скорость работы на крупных проектах, распределяя независимые задачи по нескольким сессиям Claude.
In next статье 42 «Переменные окружения» мы разберем настройки среды выполнения. Как управлять поведением Claude Code на системном уровне? Мы изучим список поддерживаемых переменных окружения (env vars) для тонкой настройки лимитов контекста, параметров сети, путей логирования и безопасности.