Несколько агентов в одном проекте: как работать с 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.