У Claude Code несколько механизмов параллельной работы, и это не разные названия одной функции, а разные модели с разной ценой и назначением. Субагент работает в дочернем контексте одной сессии и возвращает результат родителю; background-субагент - то же, но результат позже. Agent view координирует несколько независимых сессий. Agent team - это teammates, которые общаются и делят список задач. Workflow - декларативная оркестрация из нескольких шагов. Путать их - значит выбрать не тот инструмент под задачу.
Полезно один раз свести эти механизмы в таблицу по контексту, способу общения, работе с файлами и лучшему сценарию. Ниже такая карта - от субагента до workflow. К ней возвращаются, решая, как распараллелить работу: для исследования и specialist-review хватает субагента, для множества независимых задач - agent view с отдельными worktrees, для взаимозависимой работы - team, а для повторяемого процесса - workflow. Выбор механизма важнее самого факта параллелизма.
| Механизм | Контекст | Files | Лучший сценарий |
|---|---|---|---|
| subagent | Дочерний в одной сессии | Общий tree или worktree | Исследование, specialist review |
| background subagent | Дочерний, result позже | Зависит от isolation | Долгий тест, независимый поиск |
| agent view | Несколько независимых сессий | Отдельные worktrees | Много независимых задач |
| agent team | Teammates с координацией | Явное разделение ownership | Взаимозависимая работа |
| workflow | Декларативная оркестрация | Задаётся workflow | Повторяемый процесс |
Agent view запускается как отдельный интерфейс управления сессиями: у каждой своя история, permission mode, модель, effort и часто свой worktree. Это лучший выбор, когда задачи не должны делить контекст - каждая идёт сама по себе, а оператор координирует. Agent teams, наоборот, нужны, когда участникам необходимо координироваться между собой, но они увеличивают расход токенов и операционную сложность, поэтому берут их только там, где взаимодействие действительно требуется.
Ключевое правило teams - заранее назначать ownership файлов. Два агента на одном модуле создают не ускорение, а merge-конфликт: каждый исходит из своей картины, и результаты не сходятся. Workflows выражают устойчивый процесс - исследование, реализация, тесты, независимый review, - но их вводят только после того, как ручная процедура стала стабильной и измеримой. Иначе автоматизируется неопределённость, а не порядок.
Безопасная декомпозиция задаёт каждому worker минимальный контекст, определение готовности, ограничения инструментов и ожидаемый выход. Полезно один раз увидеть такую раскладку: две read-only задачи на исследование границы API и test harness, одна задача реализации с ownership на свой каталог в изолированном worktree и одна независимая read-only задача review финального diff. Результаты принимают только после общего интеграционного теста, а не по отдельности от каждого worker.
Контроль стоимости - обязательная часть параллельности. У каждой сессии и субагента свой контекст и свои вызовы модели, поэтому параллельность уменьшает wall-clock time, но обычно увеличивает суммарный расход токенов. Более дешёвую модель на ограниченные lookups направляют только после того, как качество измерено; и не дробят на агентов задачу, которая решается одним rg и чтением пары файлов. Стая агентов - это множитель расхода, и запускать её без нужды дороже и глупее, чем один проход.
Инженерный вывод про параллельность прост и практичен: параллелить стоит независимые области знания или ownership, а не последовательные стадии одного изменения. Стадии одного изменения по определению зависят друг от друга, и разносить их по агентам - значит плодить рассинхронизацию. Самый предсказуемый первый шаг - два read-only исследователя и один owner реализации: исследование идёт параллельно и дёшево, а меняет файлы только один, и конфликтов не возникает.
Типичные провалы параллельности предсказуемы. Два агента на одном модуле, дающие merge-конфликт вместо ускорения. Team там, где хватило бы независимых сессий, - лишний расход и сложность. Workflow поверх ещё не стабильной ручной процедуры - автоматизированная неопределённость. И дробление на агентов того, что решается одним проходом. Выбирайте механизм под задачу, назначайте ownership заранее, принимайте результаты после интеграционного теста и параллельте независимое, а не стадии одного изменения.
# Безопасная декомпозиция: минимальный контекст и output на worker
Task A: исследовать API boundary -> карта callers (read-only)
Task B: исследовать test harness -> команды и fixtures (read-only)
Task C: реализовать module X, ownership = src/x/**, isolated worktree
Task D: независимый review финального diff (read-only)
# merge/accept - только после общего integration test