Перейти к контенту
Neaptidestudio
блог

Несколько агентов в одном проекте: как работать с Git worktree

Neaptide · 20 сентября 2026 г. · 8 мин чтения · Обновлено: 3 октября 2026 г.

Как разделить задачи ИИ-агентов через Git worktree: рабочие каталоги, ветки, окружение, проверка и объединение изменений.

В этой статье
Два отдельных рабочих места на ветвях одного проекта.

Два агента в одной рабочей папке мешают друг другу. Один чинит форму, второй перестраивает компонент, а тесты тем временем проверяют смесь недоделанных правок. Git worktree разводит файлы: у каждой задачи появляется своя папка и своя ветка.

Worktree — дополнительная рабочая копия того же Git-репозитория. История у копий общая, ветка и рабочие файлы у каждой свои, поэтому несколько изменений можно вести одновременно. Как это устроено и какие есть команды, описано в руководстве Git.

Какие задачи можно распараллелить

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

Какие изменения можно выполнять параллельно
Подходит для двух задачЛучше определить порядок заранее
Исправление формы и текст документацииИзменение API и зависящий от него интерфейс
Тесты разных независимых модулейДва рефакторинга одного компонента
Исследование ошибки и отдельная правка текстаМиграция данных и код для новой схемы

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

Создаём две рабочие копии

Для примера нужен репозиторий, в котором есть хотя бы один коммит. Команды выполняйте из его основной папки. Веток и соседних каталогов с такими именами ещё быть не должно.

git status --short
git worktree add -b ai/form-fix ../project-form HEAD
git worktree add -b ai/docs-update ../project-docs HEAD
git worktree list

Обе копии начинаются с текущего коммита HEAD. Незакоммиченные изменения из исходной папки в них не попадут. Если они нужны обеим задачам, сначала подготовьте согласованную исходную версию. Только не коммитьте чужую недоделанную работу ради этой инструкции.

Откройте два терминала, в каждом перейдите в свой каталог и запустите агента. Для Claude Code:

cd ../project-form
claude

Во втором терминале откройте `../project-docs`. Claude Code умеет и сам создавать рабочую копию при запуске: `claude --worktree <имя>` кладёт её в `.claude/worktrees/` внутри репозитория. Подробности есть в инструкции по параллельным сессиям. Ручной способ хорош тем, что папки и ветки видны независимо от клиента.

Что сообщить каждому агенту

Укажите ожидаемый результат и файлы, которые можно менять. Для первого агента подойдёт такой запрос:

Исправь сообщение об ошибке отправки заявки. Работай в текущем worktree. Найди форму и её тесты, сохрани успешную отправку. Не меняй структуру API и документацию. Покажи diff и результаты проверок. Не объединяй ветки.

Второму поручите обновить справку и отдельно оговорите, что код формы трогать нельзя. Задания здесь учебные. Пути, команды и критерии проверки возьмите из своего проекта.

Проверьте окружение каждой копии. Зависимости, скорее всего, придётся ставить заново, а личные конфигурационные файлы, которых нет в Git (тот же `.env`), копировать вручную. Двум серверам разработки нужны разные порты. Если оба работают с одной тестовой базой, разделите данные или не запускайте одновременно сценарии, которые её меняют.

Как принять результат

Diff каждой задачи смотрите отдельно. Сначала сверьте его с поручением, потом загляните в результаты тестов. Проверенные изменения закоммитьте, каждое в своей ветке.

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

Если возникли конфликты, сначала решите, какое поведение должно остаться. Не просите агента механически принять все изменения одной стороны: так легко потерять кусок другой задачи.

Когда удалять worktree

Сначала убедитесь, что нужные изменения сохранены и приняты, а в папке нет несохранённых файлов. Затем из основной рабочей копии выполните:

git worktree remove ../project-form
git worktree remove ../project-docs

Без `--force` Git откажется удалять worktree, в котором остались незакоммиченные изменения или неотслеживаемые файлы. Не добавляйте флаг только затем, чтобы ошибка исчезла. Ветки после удаления рабочих копий остаются на месте. Что делать с ними, решайте отдельно.

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

Коротко о главном

Worktree защищает от любых действий другого агента?

Нет. Worktree лишь разводит рабочие копии по папкам, изолированной виртуальной машины он не создаёт. Общие сервисы, ресурсы компьютера и доступные пути нужно контролировать отдельно.

Сколько агентов запускать одновременно?

Начните с двух. Если готовые изменения копятся быстрее, чем вы успеваете их проверять, третий агент только удлинит очередь на ревью. Смотрите на время до принятого результата. Число открытых сессий ни о чём не говорит.

Что делать с общими правилами проекта?

Храните командные инструкции в репозитории, например в CLAUDE.md (/ru/blog/claude-md-guide). Тогда новые рабочие копии получат ту версию правил, которая была в исходном коммите.