# Параллельные агенты Claude Code 2026: git worktrees и субагенты

Одна задача в Claude Code – это спокойно. Две задачи в одной сессии – это уже риск: агент правит один и тот же файл под две разные цели, ветки путаются, а через час вы разбираете, где чей код. Ответ – не героически удерживать всё в голове, а физически развести задачи по отдельным папкам и веткам. Ровно для этого в git есть worktrees, а в Claude Code – субагенты и отдельные сессии.

Ниже – рабочая схема: как запустить несколько задач разом так, чтобы правки не сталкивались и проект оставался рабочим. Все команды проверены на git 2.39.5 и официальной документации Claude Code.

## Зачем вообще параллелить

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

- Пишете большую фичу в одной ветке, но прилетел срочный хотфикс – его нельзя мешать с недоделанной фичей.
- Один агент реализует, второй в это же время исследует кодбазу или пишет тесты – они не должны драться за одни файлы.
- Хотите попробовать два подхода к одной задаче и сравнить, не теряя первый вариант.

Наивное решение – открыть два Claude Code в одной папке – ломается сразу: обе сессии видят одну рабочую директорию, одну ветку и перетирают правки друг друга. Нужна изоляция. Дальше – три уровня, от самого надёжного к самому лёгкому. Базовые команды и режимы — в [обзоре Claude Code](/claude-code/).

## Шаг 1: git worktree – отдельная папка под каждую ветку

`git worktree` – встроенная фича git (с версии 2.5, 2015 год). Она даёт несколько рабочих директорий из одного репозитория: каждая на своей ветке, но все делят единую базу объектов – один клон, несколько рабочих папок. Никакого повторного `git clone`.

Базовая команда – добавить worktree на существующую ветку:

```bash
git worktree add ../wt-featurex feature-x
```

Это создаёт новую папку `../wt-featurex` рядом с проектом и checkout-ит туда существующую ветку `feature-x`. Если ветку надо создать с нуля прямо здесь – флаг `-b`:

```bash
git worktree add -b hotfix ../wt-hotfix HEAD
```

Создаётся новая ветка `hotfix` от текущего `HEAD` и сразу checkout-ится в папку `../wt-hotfix`. А если опустить и имя ветки, и `-b`, git создаст ветку по имени папки:

```bash
git worktree add ../feature-login
```

Здесь появится новая ветка `feature-login` (имя = basename папки) от `HEAD`. Посмотреть все worktrees – главный идёт первым, дальше связанные:

```bash
git worktree list
```

Что важно понять сразу: **одну и ту же ветку нельзя держать в двух worktrees одновременно**. Git это блокирует специально:

```bash
git worktree add ../wt-dup feature-x
# fatal: 'feature-x' is already checked out at '.../wt-featurex'
```

Это защита, а не каприз: две папки на одной ветке привели бы к рассинхрону индекса. Каждой задаче – своя ветка. (Обойти через `--force` можно, но не нужно – это путь к тем самым конфликтам, от которых мы уходим.)

## Шаг 2: запустить Claude Code в каждом worktree

Теперь самое главное – в каждой папке-ветке поднимаем свою сессию Claude Code. Заходите в первый worktree в одном терминале, во второй – в другом, и запускаете `claude` в каждом:

```bash
# Терминал 1
cd ../wt-featurex && claude

# Терминал 2
cd ../wt-hotfix && claude
```

Две независимые сессии, каждая видит только свою рабочую директорию и свою ветку. Агент в первом окне строит фичу, агент во втором чинит баг – их правки физически не пересекаются, потому что это разные папки. Это и есть та изоляция, ради которой всё затевалось.

Claude Code умеет управлять worktrees и сам. Флаг `--worktree` создаёт worktree и запускает сессию в нём одной командой:

```bash
claude --worktree feature-auth
```

Claude заведёт связанный worktree (по умолчанию внутри `.claude/worktrees/`) и стартует там. В другом терминале так же поднимаете вторую задачу – `claude --worktree bugfix-123`. Официальная рекомендация Claude Code ровно об этом: работать над фичей в одном терминале, пока Claude чинит баг в другом, «без коллизий правок».

Если предпочитаете видеть все команды git явно (полезно, когда только осваиваетесь) – держите под рукой [гайд по командам Claude Code](/guides/claude-code-commands/), там разобраны слэш-команды и приёмы работы в сессии, включая `/resume` для переключения между параллельными задачами.

## Шаг 3: субагенты – параллельность внутри одной сессии

Worktrees разводят *задачи*. Внутри одной задачи параллелить помогают **субагенты** – специализированные ассистенты, каждый со своим контекстным окном. Смысл: побочная работа (поиск по коду, чтение логов, прогон тестов) уходит субагенту, он делает её в своём контексте и возвращает только итог – основной диалог не захламляется.

Субагент описывается файлом в `.claude/agents/`. Минимальный вид:

```markdown
---
name: test-runner
description: Прогоняет тесты и чинит падения. Используй после изменений кода.
tools: Read, Grep, Glob, Bash
model: sonnet
---

Ты прогоняешь тесты проекта. Найди падающие тесты, определи причину
и предложи конкретные правки. Возвращай краткий итог, а не сырые логи.
```

Поля `name` и `description` обязательны – по `description` Claude решает, когда делегировать задачу этому субагенту. `tools` и `model` опциональны: без `tools` субагент наследует все инструменты, `model` задаёт модель (сильную – на архитектуру, экономную – на массовую работу). Запустить можно явно: `@agent-test-runner прогони тесты` – или Claude сам делегирует по описанию.

Спавнит субагентов инструмент **Agent** (в версии 2.1.63 бывший `Task` переименован в `Agent`, старые ссылки работают как алиас). Для независимых исследований можно поднять несколько субагентов, чтобы они работали одновременно, а Claude потом сведёт результаты. Жёсткого лимита на число одновременных субагентов в документации нет – ограничивают токены и здравый смысл; глубина вложенности фиксирована (субагент на пятом уровне уже не может спавнить дальше).

Если субагенты правят код (а не только читают), их тоже стоит изолировать worktree. В Claude Code это делается флагом в описании субагента:

```markdown
---
name: feature-builder
description: Реализует фичу в изоляции
isolation: worktree
---
```

С `isolation: worktree` каждый запуск субагента получает временный worktree, который автоудаляется, если правок не осталось. Как устроена память и слои workspace, из которых субагенты читают контекст, – в отдельном разборе [архитектуры памяти агента](/guides/memory-architecture/).

## Грабли: где параллельность ломает проект

- **Две задачи трогают один файл.** Главный источник боли. Правило жёсткое: каждая параллельная задача владеет своим набором файлов. Два агента, редактирующие один файл, гарантированно перетрут правки друг друга – никакой git это задним числом не спасёт. Разбивайте работу по границам файлов, а не по «интересности».
- **Одна ветка в двух worktrees.** Не пытайтесь. Git блокирует не зря – заведите отдельную ветку под каждую задачу.
- **Забытые worktrees копятся.** После merge чистите: `git worktree remove ../wt-featurex` (чистый – удалится сразу; с незакоммиченными правками попросит `--force`). Если папку удалили руками – `git worktree prune` уберёт мёртвые метаданные.
- **Секреты не переносятся.** `.env` и прочие gitignored-файлы в новый worktree не копируются. Claude Code решает это файлом `.worktreeinclude` (синтаксис `.gitignore`) – перечислите там, что подтянуть в новые worktrees.
- **Токены масштабируются.** Каждый субагент и каждая сессия жрут контекст и лимиты отдельно. Параллельность – это скорость за деньги, а не бесплатный обед. На платных тарифах держите расход под контролем.

## FAQ

### Чем субагенты отличаются от параллельных сессий?
Субагенты живут внутри одной сессии: каждый в своём контекстном окне, но итог возвращается в основной диалог, которым управляет главный агент. Отдельные сессии (`claude` в разных worktrees) – это полностью независимые процессы в разных папках-ветках, которые вообще не знают друг о друге. Субагенты – для параллельных кусков одной задачи; отдельные сессии – для параллельных разных задач.

### Можно просто открыть два Claude Code в одной папке?
Технически да, но это прямой путь к сломанному проекту: обе сессии делят одну рабочую директорию и одну ветку, поэтому их правки перетирают друг друга. Именно для изоляции и нужны worktrees – каждая сессия получает свою папку и ветку.

### Нужна ли отдельная ветка под каждый worktree?
Да. Git не даст держать одну ветку в двух worktrees одновременно – это защита от рассинхрона. Создавайте ветку под каждую задачу: либо заранее, либо флагом `-b` прямо в `git worktree add -b <ветка> <папка>`.

### Сколько субагентов можно запустить параллельно?
Жёсткого числа в документации нет. Практический потолок задают токены (каждый субагент тратит контекст отдельно) и координация. Глубина вложенности ограничена: субагент на пятом уровне уже не спавнит дальше, и это не настраивается.

### Как убрать worktree после слияния?
`git worktree remove <папка>` для чистого worktree. Если внутри незакоммиченные или неотслеживаемые файлы – git попросит `--force`. Worktrees, которые Claude Code завёл для субагентов, чистятся автоматически, если в них нет незакоммиченных правок.

## Что дальше

Параллельная работа – это навык масштабирования: он окупается, когда задач становится больше, чем одна голова успевает вести последовательно. Начните с малого – разведите две реальные задачи по worktrees, поднимите в каждой свою сессию и почувствуйте разницу. Дальше добавляйте субагентов под рутину и настраивайте изоляцию.

Если хотите разбирать такие связки не в одиночку, а с командой, которая уже прошла эти грабли, – в сообществе EdgeLab мы собираем рабочие схемы параллельной разработки на Claude Code, делимся конфигами субагентов и разбираем реальные проекты участников. Приходите – быстрее выйдете на поток, где несколько задач идут разом и ничего не ломается.
