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

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

Neaptide · 20 сентября 2026 г. · 8 мин чтения

Как разделить задачи ИИ-агентов через 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 также поддерживает собственный запуск в worktree; подробности — в инструкции по параллельным сессиям. Ручной способ полезен тем, что папки и ветки видны независимо от клиента.

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

Ограничьте задачу результатом и местом изменений. Для первого агента подойдёт такой запрос:

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

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

Проверьте окружение каждой копии. Установка зависимостей и личные конфигурационные файлы могут потребовать отдельной подготовки. Два dev-сервера должны использовать разные порты. Если оба работают с одной тестовой базой, разделите данные или откажитесь от параллельного запуска сценариев, изменяющих её.

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

Просмотрите diff каждой задачи отдельно. Сначала оцените соответствие поручению, затем результаты тестов. После этого сохраните проверенные изменения коммитами в соответствующих ветках.

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

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

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

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

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

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

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

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

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

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

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

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

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

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