Перейти к содержимому

Кейс: worktrees + кодинг-агенты — primer Дэвида Гомеса

Дэвид Гомес — инженер Cursor, известный по публикациям о git и инструментах разработки. За 12 месяцев работы с кодинг-агентами он прошёл путь от полного игнорирования worktrees до рекомендации agent-generated модели как универсального решения. Его примикр от 28 августа 2026 — не документация и не обзор, а личный опыт: что сработало, что нет и почему облачные агенты не заменят worktrees полностью.

Эта статья — перевод-адаптация поста Гомеса. Для базового гайда по git worktree и агентам см. отдельный материал: Git worktrees и кодинг-агенты: параллельная работа без конфликтов.

Краткое напоминание: что такое worktree

Worktree — это связанная с репозиторием рабочая директория со своим HEAD, индексом и файлами на диске. От git clone отличается одним: общий каталог .git/ не дублируется (документация git-worktree).

Ключевые свойства:
Одна ветка — один worktree — попытка создать второй с той же веткой завершится ошибкой
Рабочее содержимое дублируетсяnode_modules/, .env, индекс — у каждого worktree свои
Конфиг, хуки и объекты — общие — доступны из всех worktree
Субмодули — отдельные в каждом worktree

Создание:

git worktree add ../hotfix hotfix-branch

Подробнее — в статье Git worktrees и кодинг-агенты, где разобраны пошаговая настройка, сценарии и автоматизация.

Почему worktree стали важны именно с агентами

До появления кодинг-агентов Гомес никогда не использовал worktrees — знал про них, но не видел смысла. Параллельная работа вручную требует переключения контекста между ветками, и git stash вполне хватает.

Кодинг-агенты изменили ситуацию: они автоматизируют написание кода, а значит, параллелизация задач становится естественным паттерном. Если вы можете запустить двух агентов на разных задачах одновременно — зачем ждать, пока один закончит?

«Раньше я никогда не использовал Git worktrees — слышал о них, но мне было всё равно. С кодинг-агентами всё изменилось.» — Дэвид Гомес, davidgomes.com

Вот почему: раньше два параллельных кодера в одном репозитории — редкость и источник конфликтов. Два параллельных агента — стандартный workflow.

Три модели организации worktree: разбор по Гомесу

Гомес описывает три подхода к тому, как агенты и их «оболочки» (harness) работают с worktrees. Это не теория — каждый подход он опробовал в продакшене.

Скриншот поста Дэвида Гомеса: секция «How do coding agents use worktrees?»
Скриншот раздела «How do coding agents use worktrees?» из поста Дэвида Гомеса (davidgomes.com, 28.08.2026), снят через Playwright.

1. Harness-managed — продукт управляет worktree

Продукт (Cursor, Codex) создаёт worktree при запуске новой задачи. Пользователь не думает о путях и ветках — продукт вычисляет их автоматически.

# Cursor запускает агента в отдельном worktree
cursor --worktree -p "Refactor Layout.tsx to use Radix UI"

В Cursor UI это выглядит как выбор опции «Open in new worktree» при запуске агента.

Скриншот: harness-managed worktrees в посте Гомеса
Скриншот раздела «Harness-managed worktrees» из поста Дэвида Гомеса. Виден пример вызова с параметром --worktree.

Плюсы: продукт отвечает за полный жизненный цикл — создание, установку зависимостей, очистку.

Минусы: ограниченная гибкость, не все продукты это поддерживают.

Cursor поддерживает настройку скрипта для worktree — при каждом создании зависимости ставятся автоматически (документация Cursor).

2. Agent-generated — агент создаёт worktree сам

Это самая интересная модель. Агент выполняет git worktree add через shell без какого-либо специального API. По наблюдениям Гомеса, модели начали делать это «инстинктивно» начиная с Opus 4.5, а после выхода GPT 5.5 это стало регулярным поведением.

Агент создаёт worktree когда:
— Пользователь просит выполнить две задачи и открыть PR для каждой
— Текущий чекаут «грязный» и агент не хочет портить незакоммиченные изменения
— Агент хочет попробовать два разных решения одной задачи параллельно

«Если бы я мог выбрать только один подход, я бы выбрал worktree, генерируемые агентом. Они гораздо более универсальны.» — Дэвид Гомес, davidgomes.com

В Cursor есть Multitask-режим (changelog 24.04.2026) — можно в одном чате запустить десятки задач, и каждый сабагент создаст свой worktree. По сути, это и есть agent-generated подход в продакшене.

Что не работает: модели «забывают» контекст worktree в длинных диалогах, создают worktree в неожиданном месте и не ставят зависимости автоматически. Для harness-продуктов это проблема — UI ломается, инструменты редактирования ограничены одной директорией.

Гомес описывает конкретные решения этих проблем:
CreateWorktree tool call — harness отслеживает worktree и чистит их
— Принудительный запуск setup-скрипта при обнаружении нового worktree
— Отслеживание изменений в UI для отображения работы в разных worktree

3. Явный вызов пользователем

Пользователь вручную создаёт worktree и запускает агента:

git worktree add ../task-auth -b feature-auth main
cd ../task-auth
claude -p "Add JWT authentication to the /api/login endpoint"

Самый предсказуемый вариант, но требует ручной настройки каждого worktree — установки зависимостей, конфигурации среды.

Какую модель выбрать

Гомес рекомендует agent-generated как универсальную, но признаёт, что harness-managed надёжнее на практике. Cursor в Agents Window использует harness-managed — именно потому, что модели пока «не достаточно умны» для стабильной работы с worktrees в долгих сессиях.

Подход Надёжность Гибкость Когда использовать
Harness-managed ★★★ ★★ Cursor, Codex — когда продукт поддерживает
Agent-generated ★★ ★★★ Любая модель, Multitask-режим, быстрые задачи
Явный вызов ★★★ Полный контроль, CI/CD, нестандартные среды

Когда cloud-агент, когда worktree: матрица решений

Вторая часть примикра Гомеса — честное сравнение облачных агентов и worktrees. Он работает в Cursor и профессионально использует Cloud Agents, но не считает worktrees мёртвыми.

Скриншот: раздел «A final word on Worktrees vs. Cloud Agents»
Скриншот раздела «A final word on Worktrees vs. Cloud Agents» из поста Дэвида Гомеса. Гомес работает в Cursor и использует cloud-агентов.
Сравнение: cloud-агент vs локальный worktree
Собственная схема сравнения cloud-агентов и локальных worktrees. Cloud лучше для параллелизации; worktree — для комплаенс-сценариев.

Когда облачные агенты лучше

Гомес отмечает: «Работа с телефона» — основная причина его перехода на cloud. Закрыл ноутбук — агент продолжает работать. Это не только удобство, но и реальная параллелизация: пока вы спите, три агента закрывают задачи.

Cloud-агенты не требуют worktree — каждый запуск работает в изолированном контейнере/VM. Нет конфликтов диска, нет дублирования node_modules/, нет ручной настройки.

Когда worktree необходимы

Гомес перечисляет причины, по которым команда остаётся на worktrees:

  • Стоимость облачной инфраструктуры — VM и контейнеры стоят денег
  • Lock-in к провайдеру — зависимость от платформы
  • Комплаенс и безопасность — env-переменные, секреты, юридические ограничения
  • Сложность настройки среды — некоторые проекты невозможно запустить в облачном контейнере

«Много компаний пытались (и в основном терпели неудачу) убедить разработчиков перенести среду разработки в облако за последнее десятилетие. Однако сейчас всё иначе — желание параллелизовать работу достигло очень высокого уровня.» — Дэвид Гомес, davidgomes.com

Cursor Worktree Skills: гибридный подход

Недавно Cursor выпустил «worktree skills» (документация) — позволяет управлять агентом через команды вроде /worktree и /best-of-n для запуска нескольких моделей на одну задачу. Это гибрид: harness-управление с элементами agent-generated.

В Agents Window Cursor отказался от worktree skills — там /worktree даёт harness-managed worktree. Причина: надёжность. Для VS Code-интерфейса skills работают хорошо.

Три модели организации: схема

Три модели организации worktree для агентов
Собственная схема: три модели работы агентов с worktrees по Дэвиду Гомесу — harness-managed, agent-generated и явный вызов.

Практические проблемы из 12 месяцев опыта

Гомес выделяет четыре ключевые проблемы agent-generated worktrees:

1. Агент создаёт worktree в неожиданном месте. UI ломается, EditFile-тулзы не работают, потому что ограничены одной директорией.

2. Диск заполняется worktree, о которых harness не знает. Решение: CreateWorktree tool call для отслеживания или принудительное создание worktree в фиксированной директории.

3. Зависимости не установлены. npm install не запускается автоматически. Cursor поддерживает setup-скрипт; для остальных агентов — пишите скрипт или включите установку в промпт.

4. Агент «забывает» контекст. В длинных сессиях (10+ итераций) модель может начать править файлы в основной директории вместо worktree. Проверяйте pwd после каждого крупного шага.

Cursor провёл исследование по автоматическому определению setup-скрипта для репозитория — пытались «отгадать» нужные команды (make, npm install). Решение не повезли в продакшен: сложность не оправдала выигрыша. Зато в cloud agents появился onboarding-фича, использующая часть этих наработок.

Честные ограничения

  • Worktree не заменяют CI-изоляцию. Агент в worktree работает на вашей машине с вашими правами. Если агент выполнит враждебную команду или подхватит prompt injection через файл в репо — последствия на вашей файловой системе. Для безопасного автономного кодинга используйте песочницы (подробнее — в статье «Песочницы для ИИ-агентов»).
  • Модели нестабильны с worktrees. Гомес прямо пишет: «LLMs просто недостаточно совершенны для этого. Это главная причина, по которой harness-managed worktrees — основной подход сегодня.»
  • Диск — конечный ресурс. Три worktree крупного проекта = три копии node_modules/. Регулярно удаляйте завершённые worktree.
  • Не все продукты корректно работают с worktree. Некоторые IDE теряют file watchers, ломают интеграцию с терминалом. Протестируйте перед тем, как полагаться на этот workflow.

Российские реалии

Git — локальный инструмент, git worktree работает из России без ограничений и VPN. Проблемы начинаются на уровне агентов.

  • Claude Code — вход через claude.ai или API-ключ Anthropic, оба недоступны из РФ без VPN; оплата подписки $20/мес или API-токенов — зарубежной картой. Способы оплаты — Mir/UnionPay/крипта.
  • Cursor — работает с локальными моделями без подписки; облачные функции требуют подписки ($20/мес Pro), оплата — зарубежной картой или криптой.
  • Aider — полностью локальный, работает с любым провайдером (включая Ollama), из РФ без ограничений.
  • OpenCodeбесплатные модели, работает из РФ без VPN. Локальные модели через Ollama разобраны в статье «Локальные нейросети для кодинга».

Русскоязычных материалов про git worktree в контексте ИИ-агентов на момент публикации нет. Основные источники — английскоязычные: документация Git, пост Гомеса и форум Cursor. В рунете git worktree освещается в контексте обычной разработки — на Habr и vc.ru, но без упоминания агентов.

Вывод

12 месяцев Дэвида Гомеса с worktrees и кодинг-агентами сводятся к трём пунктам:

  1. Агенты делают worktree релевантными. Без агентов параллелизация — редкость. С агентами — стандарт. Worktree из нишевой фичи Git стали инфраструктурным требованием.
  2. Agent-generated модель — универсальнее, но менее надёжна. Гомес выбрал бы её как единственную, если бы выбирал. Но harness-managed надёжнее для продакшена — Cursor использует именно его.
  3. Cloud не заменит worktree полностью. Комплаенс, стоимость, lock-in — всё это держит worktree в игре. Гомес: «Worktree не умрут. В Silicon Valley их не будут использовать, но во всём мире — будут.»

Для базового гайда по настройке worktree с агентами — пошаговые инструкции, скрипты и сценарии — см. Git worktrees и кодинг-агенты. Дальше по теме: ИИ для Git: коммиты, PR и ревью, что такое агентный кодинг, автономные агенты: ночной прогон.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий

Adblock
detector